Hadoop(3) Hadoop伪分布式的搭建和重复格式化namenode的问题解决

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

Hadoop(3)
Hadoop伪分布式的搭建和重复格式化namenode的问题解决

Hadoop伪分布式

Hadoop伪分布式介绍

伪分布式指只有一个节点,模拟了Hadoop的分布式搭建

Hadoop伪分布式的搭建
HDFS伪分布式搭建
  1. 修改配置文件 hadoop-env.sh,配置Java路径,这一步与本地模式一样
vim <Hadoop安装目录>/etc/hadoop/hadoop-env.sh

找到export JAVA_HOME=${JAVA_HOME},大约在25行

然后将自己的Java安装路径填上

export JAVA_HOME=<自己的Java安装路径>
  1. 修改配置文件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

  1. 修改配置文件hdfs-site.xml
vim <Hadoop安装目录>/etc/hadoop/hdfs-site.xml

同上,在<configuration>标签,在里面添加以下内容

<!-- 指定HDFS副本的数量 -->
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

注意

因为这是伪分布式,只有一个节点,所以HDFS的副本数量只能为1,即便是指定了多个副本,在伪分布模式下依然没有效果

  1. 格式化hdfs系统
<Hadoop安装目录>/bin/hdfs namenode -format

如果出现以下内容说明格式化成功
在这里插入图片描述

注意

只有在第一次启动Hadoop时,才必须格式化,格式化成功之后,以后启动Hadoop就不需要在此格式化了

  1. 启动NameNode
sbin/hadoop-daemon.sh start namenode
  1. 启动datanode
sbin/hadoop-daemon.sh start datanode
  1. 使用jps命令,查看namenode和datanode是否启动成功
jps

注意

jps是jdk里的命令,不是Linux自带的命令,作用是查看所有的java进程,如果没有安装jdk,则无法使用jps命令

如果出现namenodedatanode,说明启动成功

如果启动失败,检查一下配置是否正确

如果配置正确但是没有namenode,在hosts文件里添加上域名绑定:

sudo vim /etc/hosts

添加以下内容:

<你的主机名> <IP地址>

例如我的是:

host01 192.168.8.101
  1. 打开浏览器,访问namenode的50070端口
<namenode的IP>:50070

如果出现Hadoop的页面说明name主机可以访问,如果namenode启动成功但是无法访问,检查一下防火墙是否关闭

  1. 关闭namenode和datanode
sbin/hadoop-daemon.sh stop namenode
sbin/hadoop-daemon.sh stop datanode
yarn伪分布式搭建
  1. 修改配置文件 hadoop-env.sh,配置Java路径,这一步与本地模式一样,如果之前做过可以跳过
vim <Hadoop安装目录>/etc/hadoop/hadoop-env.sh

找到export JAVA_HOME=${JAVA_HOME},大约在25行

然后将自己的Java安装路径填上

export JAVA_HOME=<自己的Java安装路径>
  1. 修改配置文件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>
  1. 修改配置文件mapred-env.sh,配置其中的JAVA_HOME,大约在16行左右,需要将前面的注释去掉
export JAVA_HOME=/opt/module/jdk1.8.0_11
  1. 复制一份<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>
  1. 启动yarn
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
  1. 在浏览器上访问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即可

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值