Hadoop(3)
Hadoop伪分布式的搭建和重复格式化namenode的问题解决
文章目录
Hadoop伪分布式
Hadoop伪分布式介绍
伪分布式指只有一个节点,模拟了Hadoop的分布式搭建
Hadoop伪分布式的搭建
HDFS伪分布式搭建
- 修改配置文件 hadoop-env.sh,配置Java路径,这一步与本地模式一样
vim <Hadoop安装目录>/etc/hadoop/hadoop-env.sh
找到export JAVA_HOME=${JAVA_HOME},大约在25行
然后将自己的Java安装路径填上
export JAVA_HOME=<自己的Java安装路径>
- 修改配置文件core-site.xml
vim <Hadoop安装目录>/etc/hadoop/core-site.xml
找到<configuration>标签,在里面添加以下内容
<!-- 指定HDFS中NameNode的地址,这里同时指定了文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://<当前主机名>:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.7/data/tmp</value>
</property>
注意
如果不指定文件系统,则默认是本地的文件系统(Linux系统下一般是xfs或者ext4
- 修改配置文件hdfs-site.xml
vim <Hadoop安装目录>/etc/hadoop/hdfs-site.xml
同上,在<configuration>标签,在里面添加以下内容
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
注意
因为这是伪分布式,只有一个节点,所以HDFS的副本数量只能为1,即便是指定了多个副本,在伪分布模式下依然没有效果
- 格式化hdfs系统
<Hadoop安装目录>/bin/hdfs namenode -format
如果出现以下内容说明格式化成功

注意
只有在第一次启动Hadoop时,才必须格式化,格式化成功之后,以后启动Hadoop就不需要在此格式化了
- 启动NameNode
sbin/hadoop-daemon.sh start namenode
- 启动datanode
sbin/hadoop-daemon.sh start datanode
- 使用
jps命令,查看namenode和datanode是否启动成功
jps
注意
jps是jdk里的命令,不是Linux自带的命令,作用是查看所有的java进程,如果没有安装jdk,则无法使用jps命令
如果出现namenode和datanode,说明启动成功
如果启动失败,检查一下配置是否正确
如果配置正确但是没有namenode,在hosts文件里添加上域名绑定:
sudo vim /etc/hosts
添加以下内容:
<你的主机名> <IP地址>
例如我的是:
host01 192.168.8.101
- 打开浏览器,访问namenode的50070端口
<namenode的IP>:50070
如果出现Hadoop的页面说明name主机可以访问,如果namenode启动成功但是无法访问,检查一下防火墙是否关闭
- 关闭namenode和datanode
sbin/hadoop-daemon.sh stop namenode
sbin/hadoop-daemon.sh stop datanode
yarn伪分布式搭建
- 修改配置文件 hadoop-env.sh,配置Java路径,这一步与本地模式一样,如果之前做过可以跳过
vim <Hadoop安装目录>/etc/hadoop/hadoop-env.sh
找到export JAVA_HOME=${JAVA_HOME},大约在25行
然后将自己的Java安装路径填上
export JAVA_HOME=<自己的Java安装路径>
- 修改配置文件yarn-site.xml
同HDFS的配置一样,在<configuration>标签里添加
<!--Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定yarn的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value><当前主机名></value>
</property>
- 修改配置文件mapred-env.sh,配置其中的
JAVA_HOME,大约在16行左右,需要将前面的注释去掉
export JAVA_HOME=/opt/module/jdk1.8.0_11
- 复制一份<Hadoop安装目录>/etc/hadoop/mapred-site.xml.template,命名为 mapred-site.xml
cp <Hadoop安装路径>/etc/hadoop/mapred-site.xml.template <Hadoop安装路径>/etc/hadoop/mapred-site.xml
修改mapred-site.xml,同上在<configuration>中添加:
<!--指定mapreduce运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 启动yarn
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
- 在浏览器上访问Yarn的8088端口,如果出现Hadoop的资源调度页面,说明访问成功,同HDFS,如果resourcemanager和nodemanager都启动成功,但是访问失败,检查防火墙是否关闭
重复格式化namenode产生的问题及其解决方法
格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据.所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode
rm -rf <Hadoop安装路径>/data/tmp/dfs/data
这个路径是我们刚刚在配置文件core-site.xml里配置的路径
格式化namenode产生的问题及其解决方法
格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据.所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode
rm -rf <Hadoop安装路径>/data/tmp/dfs/data
这个路径是我们刚刚在配置文件core-site.xml里配置的路径
然后重新启动datanode即可

本文详细介绍了Hadoop伪分布式环境的搭建过程,包括HDFS和YARN的配置,并着重讨论了重复格式化NameNode导致的问题及解决方法,强调了在格式化前清除数据的重要性。
2321

被折叠的 条评论
为什么被折叠?



