Hadoop的部署
伪分布部署
在一个节点上启动不同的进程,模拟多节点
Hadoop配置
修改hadoop-env.sh
# 修改JAVA_HOME 地址
export JAVA_HOME=/opt/module/jdk1.8.0_201
修改 core-site.xml
<configuration>
<!-- 修改Hadoop的NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 指定Hadoop运行时候的产生文件的临时存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.6/data</value>
</property>
</configuration>
修改hdfs-site.xml
<configuration>
<!-- 指定hdfs副本的数量,默认值3,保存数据的副本,防止数据丢失 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置和启动HDFS
第一次启动需要格式化,以后不需要再格式化,需要关闭服务,删除data
和logs
文件夹再次格式化。
原因:格式化namenode
会产生新的集群id,导致和datanode
不一致。
# 格式化namenode
$ hdfs namenode -format
# 启动namenode
$ sbin/hadoop-daemon.sh start namenode
# 启动datanode
$ sbin/hadoop-daemon.sh start datanode
# 查看是否启动
$ jps
# 结果
7634 NameNode
7690 DataNode
7770 Jps
查看控制面板,端口号为50070
注意:若打不开,请查看防火墙
HDFS的简单操作
例1:创建文件夹
# 创建文件夹
$ hdfs dfs -mkdir -p /user/fanl/input
# 创建完查看目录,已经存在路径,和linux命令是一致的 其中,bin/hdfs dfs 是固定的写法
例2:复制本地文件到HDFS
$ hdfs dfs -put input/fanl.txt /user/fanl/input
例3:执行wordcount
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/fanl/input/ /user/fanl/output
# 查看结果
$ hdfs dfs -cat /user/fanl/output/*
配置和启动YARN
配置YARN
修改yarn-env.sh
# 修改JAVA_HOME地址
export JAVA_HOME=/opt/module/jdk1.8.0_201
修改yarn-site.xml
<configuration>
<!-- MapReduce获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- YARN的resourcemanager的地址 -->
<property>
<name>yarn.resourcemanager.hoastname</name>
<value>fanl01</value>
</property>
</configuration>
配置MapReduce
修改mapred-env.sh
# 修改JAVA_HOME地址
export JAVA_HOME=/opt/module/jdk1.8.0_201
修改mapred-site.xml
<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
启动yarn
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/yarn-daemon.sh start nodemanager
# 查看启动
8272 ResourceManager
7634 NameNode
8322 NodeManager
7690 DataNode
8397 Jps
查看控制面板,端口号为 8088
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /user/fanl/input/ /user/fanl/output
# 并且查看控制面板
配置和启动历史服务器
修改mapred-site.xml
<configuration>
<!--历史服务器地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>fanl01:10020</value>
</property>
<!--历史服务器地址WEB地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>fanl01:19888</value>
</property>
</configuration>
启动历史服务器historyserver
$ sbin/mr-jobhistory-daemon.sh start historyserver
配置日志聚集
修改yarn-site.xml
,若启动中,需要重启yarn和historyserver。
<configuration>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志聚集保留时间 30天,实际可以是180 -->
<property>
<name>yarn.log-aggregation.retain-seconds</