伪分布式
与完全分布式的区别是配置和完全分布式一样,但是它只运行一台服务器
配置HDFS并运行MapReduce
配置HDFS
配置JAVA_HOME,路径为:etc/hadoop/hadoop-env.sh,将JAVA_HOME目录修改成本地JAVA_HOME具体目录
export JAVA_HOME=/opt/module/jdk1.8.0_144
etc/hadoop/core-site.xml
<!-- 指定 HDFS 中 NameNode 的地址 -->
<!-- 默认值为file:/// 为本地模式,也就是说不配置的话默认使用本地文件系统 -->
<!-- 配置了hdfs:// 之后本地模式则不能使用了 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop112:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生文件的存储目录 -->
<!-- 默认存储到/tmp/hadoop-${user.name}中 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
etc/hadoop/hdfs-site.xml
<!-- 指定 HDFS 副本的数量,副本的概念是在x台服务器上存储了相同的数据,容错 -->
<!-- 伪分布式设置为1,默认为3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
启动集群
## 格式化NameNode,第一次启动时格式化,以后不要总格式化,格式化就是把数据清空
bin/hdfs namenode -format
## 启动NameNode
sbin/hadoop-daemon.sh start namenode
## 启动DataNode
sbin/hadoop-daemon.sh start datanode
查看是否启动成功
可以使用jps命令来查看是否启动成功
或者访问该ip的50070端口的web界面,如果访问不了在所有配置文件均正常的情况下,查看防火墙是否关闭
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvq6tYdr-1622785968116)(/home/lxj/.config/Typora/typora-user-images/1622713541198.png)]
一些文件操作
## 在hdfs上创建目录/user/bd/input
hdfs dfs -mkdir -p /user/bd/input
## 查看/目录内容
hdfs dfs -ls /
## 将本地文件上传到hdfs
hdfs dfs -put wcinput/wc.input /user/bd/input
## 查看文件内容
hdfs dfs -cat /user/bd/output/p*
## 删除文件夹
hdfs dfs -rm -r /user/bd/output
NameNode已有数据的格式化
1、先将对应进程关掉;
2、将产生的日志log目录删除;
3、将产生的数据删除;即etc/hadoop/core-site.xml中配置的hadoop.tmp.dir目录;
格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据,也会导致NameNode和DataNode启动异常。所以,格式 NameNode 时,一定要先删除data 数据和 log 日志,然后再格式化 NameNode。
正常情况下NameNode和DataNode有相同的集群Id(clusterID)
配置YARN并运行MapReduce
配置YARN
配置JAVA_HOME,路径为:etc/hadoop/yarn-env.sh和mapred-env.sh,将JAVA_HOME目录修改成本地JAVA_HOME具体目录
export JAVA_HOME=/opt/module/jdk1.8.0_144
etc/hadoop/yarn-site.xml
<!-- Reducer 获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop112</value>
</property>
etc/hadoop/mapred-site.xml, 先对 mapred-site.xml.template 重新命名为)mapred-site.xml
<!-- 指定 MR 运行在 YARN 上 -->
<!-- 默认是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
启动集群
## 启动ResourceManager
sbin/yarn-daemon.sh start resourcemanager
## 启动NodeManager
sbin/yarn-daemon.sh start nodemanager
查看是否启动成功
可以使用jps命令来查看是否启动成功;
或者通过访问8088端口的web服务
配置历史服务器
配置
etc/mapred-site.xml
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop112:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop112:19888</value>
</property>
启动
## 启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
查看是否启动成功
可以使用jps命令来查看是否启动成功;
或者通过访问19888端口的web服务
特别注意的是使用ip的话,无法直接从yarn-web服务通过History直接跳转到历史服务器。
配置日志的聚集
日志聚集的概念:应用运行完成后,将程序运行日志信息上传到HDFS系统上。
注意:开启日志聚集功能,需要重新启动NodeManager,ResourceManager和HistoryManager.
## 退出历史服务器
sbin/mr-jobhistory-daemon.sh stop historyserver
## 退出NodeManger
sbin/yarn-daemon.sh stop nodemanager
## 退出ResourceManager
sbin/yarn-daemon.sh stop resourcemanager
配置
etc/hadoop/yarn-site.xml
<!-- 日志聚集功能使能,默认是false -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置 7 天,单位s,默认-1为不保存 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
启动以上停用服务
## 启动ResourceManager
sbin/yarn-daemon.sh start resourcemanager
## 启动NodeManger
sbin/yarn-daemon.sh start nodemanager
## 启动历史服务器
sbin/mr-jobhistory-daemon.sh start historyserver
配置文件说明
对应的自定义配置文件分别是core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml。