Hadoop安装-单节点伪集群

来源:互联网 发布:ubuntu安装emacs25 编辑:程序博客网 时间:2024/06/05 15:20

本文介绍如何配置和安装单节点的Hadoop伪集群,在单节点的集群上,同样可以操作Hadoop分布式文件系统(HDFS),以及执行Hadoop MapReduce。

运行环境:
通过VMware创建的虚拟机
RAM:2G
IP:192.168.117.200
HOSTNAME:NODE1
os:Red Hat Enterprise Linux Server release 6.3

依赖的软件
1.JDK,推荐sun JDK1.7及以上(JDK的安装,之前文章以及相关资料很多,在此不再累述)。本文环境为:
java version “1.8.0_121”
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

2.ssh服务(如无法运行ssh命令,请自行安装ssh),ssh用于到集群中的给台主机上启动守护进程,因此需要确保用户能够ssh到各主机,并且可以不输入密码。对于单个节点的伪集群,需要确保ssh localhost 是成功的,否则,需要通过ssh-keygen创建相关的密钥。如下,可以创建口令为空的密钥:
ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa //生成口令为空的ssh密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //将公钥加入已认证的密钥中

Hadoop安装
下载hadoop安装包,本文版本为hadoop-2.7.3.tar.gz,假设Hadoop将安装于/home目录下。

#tar -zxvf hadoop-2.7.3.tar.gz #ln -sf hadoop-2.7.3 hadoop

修改环境变量,新增PATH(或者在原PATH后追加)

vim ~/.bash_profile HADOOP_HOME=/home/hadoopPATH=$PATH:$HOME/bin:/usr/local/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport PATH HADOOP_HOME

保存后,执行 source ~/.bash_profile 来使新增的环境变量生效

配置hadoop和yarn脚本的执行环境
echo $JAVA_HOME //查看jdk安装目录
/home/jdk1.8.0_121

$HADOOP_HOME/etc/hadoop/hadoop-env.sh,配置jdk路径# The java implementation to use.#export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=/home/jdk1.8.0_121$HADOOP_HOME/etc/hadoop/yarn-env.sh,配置jdk路径# some Java parameters# export JAVA_HOME=/home/y/libexec/jdk1.6.0/export JAVA_HOME=/home/jdk1.8.0_121

配置Hadoop守护进程的相关属性
$HADOOP_HOME/etc/hadoop/core-site.xml:

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://localhost:9000</value>         <description>HDFS文件系统的URI,localhost为主机的hostname,也可以填写IP地址;9000为namenode监听RPC端口,默认为8020</description>    </property>    <property>        <name>hadoop.tmp.dir</name>        <value>/usr/hadoop/tmp</value>        <description>namenode上本地的hadoop临时文件夹</description>    </property></configuration>

$HADOOP_HOME/etc/hadoop/hdfs-site.xml:

<configuration>    <property>        <name>dfs.namenode.name.dir</name>        <value>/usr/hadoop/hdfs/name</value>        <description>namenode上存储hdfs名字空间元数据</description>     </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>/usr/hadoop/hdfs/data</value>        <description>datanode上数据块的物理存储位置</description>    </property>    <property>        <name>dfs.replication</name>        <value>1</value>        <description>副本个数,配置默认是3,应小于datanode机器数量</description>    </property></configuration>

dfs.replication,默认为3,由于是单节点的集群,若不改为1的话,那么HDFS无法将块复制到其他datanode,会持续出现块不足的警告。

单节点的YARN配置
如果仅是在本地执行一个MapReduce任务,则可跳过本段。
在一个单节点的伪集群中,可以通过YRAN运行MapReduce任务,YRAN还提供了资源管理和节点管理的守护。
$HADOOP_HOME/etc/hadoop/mapred-site.xml:

<configuration>    <property>        <name>mapreduce.framework.name</name>        <value>yarn</value>    </property></configuration>

$HADOOP_HOME/etc/hadoop/yarn-site.xml:

<configuration>    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property>    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>192.168.117.200:8099</value>    </property></configuration>

启动Hadoop
1.格式化文件系统
hdfs namenode -format
2.启动Nodenode,DataNode守护
start-dfs.sh
3.启动ResourceManager,NodeManager守护
start-yarn.sh

停止守护
stop-dfs.sh
stop-yarn.sh

简单测试:
1.创建文件夹

#hadoop fs -ls /import/data#hadoop fs -ls /Found 1 itemsdrwxr-xr-x   - root supergroup          0 2017-07-08 02:32 /import#hadoop fs -ls /importFound 1 itemsdrwxr-xr-x   - root supergroup          0 2017-07-08 02:32 /import/data

2.上传本地文件到HDFS,并查看

# hadoop fs -copyFromLocal core-site.xml /import/data# hadoop fs -ls /import/dataFound 1 items-rw-r--r--   1 root supergroup       1126 2017-07-11 01:26 /import/data/core-site.xml# hadoop fs -cat /import/data/core-site.xml...

3.管理页面
NameNode管理页面
http://192.168.117.200:50070
ResourceManager管理页面
http://192.168.117.200:8099

原创粉丝点击