hadoop 学习日记(初探)
Java 环境
sh
yum install java java-devel
vim ~/.bashrc ## 配置JAVA_HOME和hadoop中的bin环境变量
source ~/.bashrc
SSH 无密码登陆
可参考我另一篇博文。保证个节点机器是可以免密互通的。
配置 hadoop
这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
修改 slaves
ini
192.168.0.121
192.168.0.113
192.168.0.238
修改 core-site.xml
xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.121:9000</value>
<!-- 指向Master -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
修改 hdfs-site.xml
xml
<configuration>
<property>
<name>dfs.http.address</name>
<value>192.168.0.121:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.0.121:50090</value>
</property>
<property>
<!-- 副本数量 -->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/root/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/root/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
</configuration>
修改 mapred-site.xml
xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.0.121:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.0.121:19888</value>
</property>
</configuration>
修改 yarn-site.xml
xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.0.121</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
将 Master
上的 hadoop
文件夹复制到各个节点上。
关闭防火墙(centos7)
sh
systemctl stop firewalld.service ## 关闭firewall
systemctl disable firewalld.service ## 禁止firewall开机启动
sh
hdfs namenode -format ## 首次运行需要执行初始化,之后不需要
接着可以启动 hadoop 了,启动需要在 Master 节点上进行:
sh
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
通过命令 jps
可以查看各个节点所启动的进程。正确的话,在 Master
节点上可以看到如下进程:
- NameNode
- ResourceManager
- SecondrryNameNode
- JobHistoryServer
还需要在 Master
节点上通过命令
sh
hdfs dfsadmin -report
查看 DataNode
是否正常启动,如果 Live datanodes
不为 0
,则说明集群启动成功。
所以如果集群以前能启动,但后来启动不了,特别是 DataNode
无法启动,不妨试着删除所有节点(包括 Slave
节点)上的 /usr/local/hadoop/tmp
文件夹,再重新执行一次
sh
hdfs namenode -format
再次启动试试。