Hadoop集群搭建

前言

学习Hadoop,集群搭建是极为重要的一步,本人初学在此踩了不少坑。
个人认为要想一次就成功简单搭建好集群,需要明白这些东西。
Hadoop有哪些配置文件?启动后会产生哪些进程?这些进程和配置文件有什么关系?数据存储在哪里?需要在哪里配置?可以访问哪些页面?

然后就是做集群规划,是单独启动dfs,还是单独启动yarn,还是两个一起启动。
这里是两个一起启动。一般学习集群,要求2~4台机器。有的人图简单两个机器,这里我选择4台机器,便于把每个进程均匀对应于一台机器。
s240 NameNode ResourceManager
s241 DataNode NodeManager
s242 DataNode NodeManager
s243 SecondaryNameNode
NameNode,SecondaryNameNode是比较耗费资源的,所以各自占据一台机器,不建议放在一起。
ResouceManager一般放在第一台机器上,和NameNode一起。
DataNode和NodeManager相伴相生。

拿hadoop2.7.2为例:
具体安装配置可以参见Hadoop运行环境的简单搭建

1. 启动dfs

启动dfs,需要修改hadoop-env.sh、core-site.xml、hdfs-site.xml和slaves四个文件。
hadoop-env.sh,修改JAVA_HOME

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://s240:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/opt/module/hadoop/tmp/hadoop-${user.name}</value>
	</property>
</configuration>

最核心配置:fs.defaultFS。因为NameNode就配置在这台服务器上,后面的DataNode也要连接到这台服务器,到NameNode查找文件的位置。为了防止NameNode这台机器dump掉,要备份NameNode到SecondaryNameNode。因为一旦NameNode出现问题,DataNode存再多数据,都无法查找,这也意味着集群不可用了。

参照core-default.xml,我们知道hadoop所有的临时文件都存储在/tmp目录下,而这个目录不稳定。其里面的数据极有可能在磁盘空间不足或服务器重启时自动被linux清理,风险极大。
这里我们重新配置下存储目录:

hadoop.tmp.dir=/opt/module/hadoop/tmp/hadoop-${user.name}

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>${hadoop.tmp.dir}/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>${hadoop.tmp.dir}/dfs/data</value>
	</property>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>s243:50090</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
</configuration>

核心配置是文件存储目录,也就是NameNode,DataNode各自把数据存储在hdfs的哪个位置。

dfs.namenode.name.dir=${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir=${hadoop.tmp.dir}/dfs/data

顺便交代下,SecondaryNameNode在哪台机器上。

dfs.namenode.secondary.http-address=s243:50090

DataNode数据需要放在几台机器上,这里是两台

dfs.replication=2

slaves

s241
s242

交代下具体是哪两个副本dfs.replication=2
分别在s241和s242上
至此、hdfs配置好了。
然后xsync、启动、xcall。

2. 启动yarn

yarn-env.sh、修改JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64

yarn-site.xml

<?xml version="1.0"?>
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>s240</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

mapred-env.sh、修改JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64

mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>

到这里和启动dfs一样。

fdsfds

ddd
dddd

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值