hadoop-2.7.2集群的搭建过程
安装环境:
3节点集群,1个Master,2个Slave。
3个节点的局域网ip分别是10.30.30.128、10.30.30.129、10.30.30.130。
0. 准备工作:
在Master节点上安装好hadoop-2.7.2伪分布模式。
接下来主要对Slave节点进行安装配置。
1. Slave节点基本环境的安装和配置
首先需要在Slave节点上进行一些基本环境的安装和配置,步骤均与伪分布模式相同。
1) 创建hadoop用户
2) 安装ssh
3) 安装Java环境
2. 配置网络连接
将主节点的hostname改为Master,两个从节点分别改为Slave1和Slave2。
sudo nano /etc/hostname
将所有节点的hosts文件都改为如下内容:
127.0.0.1 localhost
10.30.30.128 Master
10.30.30.129 Slave1
10.30.30.130 Slave2
3. 配置节点间ssh无密码登录
删除Slave节点.ssh目录中的所有文件(若存在文件):
rm ~/.ssh/*
进入Master节点的~/.ssh文件夹,将id_rsa 和id_rsa.pub两个文件复制到Slave节点对应的目录下:
scp ~/.ssh/id* hadoop@Slave1:/home/hadoop/.ssh/
然后在Slave节点上执行命令:
cat ./id_rsa.pub >> ./authorized_keys
将公钥加入授权,即可实现节点间无密码登录。
4. Slave节点hadoop的安装
将Master节点中hadoop的安装目录打包,发送给各Slave节点,注意必须先打包再发送,否则该目录下的link文件将失效。
cd /usr/lib
sudo tar –cvf hadoop.tar hadoop/
scp hadoop.tar hadoop@Slave1:/home/hadoop/
登录Slave节点,将文件解压到对应的路径:
sudo tar xvf hadoop.tar /usr/local
设置文件夹权限:
sudo chown -R hadoop:hadoop /usr/local/hadoop
在Slave节点中配置hadoop环境变量,请参照Master节点。
5. 修改配置文件
一共需要修改5个配置文件,分别是hadoop/etc/hadoop目录下的core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml和slaves文件,注意,所有节点均需修改。
core-site.xml:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> <description>Abasefor other temporary directories.</description> </property> <property> <name>fs.defaultFS</name> <value>hdfs://Master:9000</value> </property> </configuration>
hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/tmp/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/tmp/hadoop/dfs/data</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>Master:50090</value> </property> </configuration>
mapred-site.xml:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>Master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>Master:19888</value> </property> </configuration>
yarn-site.xml:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>cit128</value> </property> </configuration>
slaves:
Slave1 Slave2
6. 启动Hadoop集群
登录Master节点,启动hadoop守护进程和yarn进程:
start-dfs.sh
start-yarn.sh
或者使用start-all.sh命令代替二者也行。
启动历史服务进程:
mr-jobhistory-daemon.sh start historyserver
启动后,Master节点上运行的进程有:
NameNode
SecondaryNameNode
JobHistoryServer
ResourceManager
Slave节点上运行的进程有:
DataNode
NodeManager
7. 运行hadoop分布式实例
创建用户目录:
hdfs dfs -mkdir -p /user/hadoop
创建输入目录和输入文件:
hdfs dfs -mkdir input
hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
运行mapreduce作业:
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount input output
等待mapreduce作业运行结束,查看运行结果:
hdfs dfs -cat output/*