这里的集群只是一个单点登陆的集群,没有作到正真的HA高可用,只是一个namenode节点多个datanode节点html
我这里准备用三个节点机做演示,使用hadoop-2.9.0版本java
hadoop是java语言写的,运行hadoop依赖jvm,须要先安装jdk,配置环境变量JAVA_HOME
,三个节点上环境和安装目录需一致node
[root@localhost hadoop]# echo $JAVA_HOME /data/software/jdk1.8.0_121
http://hadoop.apache.org/rele...,将安装包上传到10.100.101.127机器上,解压shell
# 使用secureCRT客户端工具上传 rz -bye tar -zxvf hadoop-2.9.0.tar.gz
修改配置文件(6个),配置文件在$HADOOP_HOME/etc/hadoop/文件夹下apache
export JAVA_HOME=/data/software/jdk1.8.0_121
``` <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://172.18.113.120:9000</value> </property> </configuration> ```
``` <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <!-- 默认为true,经过主机名配置,若是是经过ip配置,这里须要配置false --> <name>dfs.namenode.datanode.registration.ip-hostname-check</name> <value>false</value> </property> </configuration> ```
``` <configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>10.100.101.127</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ```
``` # 这个配置文件默认没有,可是有个模板能够参考 [root@localhost hadoop]# cp mapred-site.xml.template mapred-site.xml ``` ``` <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ```
这里配置的是datanode节点,一个节点占一行,hadoop将这个文件改为了`workers` ``` 10.100.101.127 10.100.102.127 10.100.103.127 ```
配置ssh免登陆ssh
经过namenode自动启动datanote,因此要配置namenode经过ssh链接datanode不须要密码,若是namenode节点同时担任一个datanode节点,那么也要配置namenode在ssh本身的时候也要免密码登陆jvm
# 一路回车 ssh-keygen ssh-copy-id 10.100.102.127 ssh-copy-id 10.100.103.127 ssh-copy-id 10.100.101.127
复制文件给其余节点,启动集群工具
# 把配置好的hadoop给其余两个节点各复制一份,注意jdk环境要一致 scp -r hadoop-2.9.0 10.100.102.127:///home/ scp -r hadoop-2.9.0 10.100.103.127:///home/ # 首次启动须要先在 Master 节点执行 NameNode 的格式化,以后的启动不须要再去进行: bin/hdfs namenode -format # 启动dfs Default HTTP port is 50070 sbin/start-dfs.sh # 启动yarn Default HTTP port is 8088 sbin/start-yarn.sh # 启动jobhistory Default HTTP port is 19888. sbin/mr-jobhistory-daemon.sh start historyserve # 经过命令 hdfs dfsadmin -report 查看 DataNode 是否正常启动 bin/hdfs dfsadmin -report ... Live datanodes (3): ...
查看进程oop
# namenode上的进程数10.100.101.127 # jps 24496 DataNode 25107 NodeManager 24358 NameNode 24998 ResourceManager 25494 JobHistoryServer 24679 SecondaryNameNode 25591 Jps 22442 Bootstrap # datanode上的进程数10.100.102.127/10.100.103.127 # jps 24657 Jps 24338 DataNode 24518 NodeManager 23342 Bootstrap
关闭集群一样也是在Master节点上执行code
$stop-yarn.sh $stop-dfs.sh $mr-jobhistory-daemon.sh stop historyserver
参考文献: