前言
Hadoop基本环境已配置好,三大模式之本地运行模式已测试成功,详情请参考上一篇文章:Hadoop之本地运行模式基本环境配置
1 检查单服务器下的环境配置
vim /opt/module/hadoop-3.1.3/etc/hadoop/hadoop-env.sh
2 配置HDFS集群
2.1 配置/opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
在configuration标签中添加如下内容(注意修改主机名及目录!!!):
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop106:9820</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data/tmp</value>
</property>
2.2 配置/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml
在configuration标签中添加如下内容(注意修改主机名及目录!!!):
<!-- 指定HDFS副本的数量,默认为3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3 启动HDFS集群并测试
3.1 格式化NameNode
注意: HDFS配置成功后,首次启动HDFS仅且需要格式化NameNode一次,非必要情况下请勿二次格式化。
如果必须要重新格式化,请先删除/opt/module/hadoop-3.1.3/data目录和/opt/module/hadoop-3.1.3/logs目录,命令如下:
rm -rf /opt/module/hadoop-3.1.3/data/ /opt/module/hadoop-3.1.3/logs/
为了方便可以在当前目录下执行下列步骤
格式化NameNode:
hdfs namenode -format
格式化成功
3.2 启动NameNode
hdfs --daemon start namenode
或
hadoop --daemon start namenode
如果namenode总是启动一段时间后自动关闭,且hdfs的配置文件没有错误,请查看日志文件的末尾100行:
tail -n 100 logs/hadoop-Doctor-namenode-hadoop106.log
根据日志问题查看文章:解决NameNode启动后自行关闭
3.3 启动DataNode
hdfs --daemon start datanode
或
hadoop --daemon start datanode
3.4 查看集群进程
命令:
jps
或:http://hadoop106:9870
3.5 测试HDFS集群
3.5.1 在hdfs文件系统上创建input文件夹
hdfs dfs -mkdir -p /user/Doctor/input
3.5.2 从本地传输文件至hdfs文件系统上
hdfs dfs -put wcinput/wc.input /user/Doctor/input
3.5.3 查看上传结果
hdfs dfs -ls /user/Doctor/input/
3.5.4 运行mapreduce程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/Doctor/input/wc.input /user/Doctor/output
3.5.5 查看运行结果
hdfs dfs -cat /user/Doctor/output/*
3.5.6 删除输出结果
hdfs dfs -rm -r /user/Doctor/output
4 配置yarn集群
4.1 配置/opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml文件
vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml
在configuration标签中添加如下内容(注意修改主机名及目录!!!):
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop106</value>
</property>
<!-- 环境变量通过从NodeManagers的容器继承的环境属性, 对于mapreduce应用程序,除了默认值hadoop op_mapred_home应该被添加外。属性值还有如下 -->
<property>
<name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
4.2 配置/opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml
在configuration标签中添加如下内容(注意修改主机名及目录!!!):
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5 启动yarn集群并测试
5.1 提示:启动前必须保证NameNode和DataNode已经启动
5.2 启动ResourceManager
yarn --daemon start resourcemanager
5.3 启动NodeManager
yarn --daemon start nodemanager
5.4 查看yarn集群进程
使用命令:
jps
或浏览器查看
http://hadoop106:8088
5.5 测试yarn集群
5.5.1 执行 mapreduce程序
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/Doctor/input/wc.input /user/Doctor/output
5.5.2 查看运行结果
hdfs dfs -cat /user/Doctor/output/*
5.5.3 删除输出结果
hdfs dfs -rm -r /user/Doctor/output