Hadoop学习二

本文详细介绍Hadoop集群的部署规划、配置流程及启动步骤,包括核心配置文件、HDFS、YARN、MapReduce等关键组件的配置,以及通过脚本实现配置文件分发和集群初始化。

一、集群配置

1.    集群部署规划

 hadoop101hadoop102hadoop103
HDFS

NameNode

DataNode

DataNode

SecondaryNamaNode

DataNode

YARNNodeManager

ResourceManager

NodeManager

NodeManager

2.    配置集群

(1)核心配置文件

配置core-site.xml

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim core-site.xml

在该文件中编写如下配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<!-- 指定HDFS中NameNode的地址 hostname -s看到的名字-->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/yoyo/hadoop-2.7.2/tmp</value>
</property>
</configuration>
                   

(2)HDFS配置文件

修改hadoop-env.sh

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim hadoop-env.sh
export JAVA_HOME=/home/yoyo/jdk1.8.0_131

配置hdfs-site.xml

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim hdfs-site.xml 

在该文件中编写如下配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>


<configuration>
<!-- 第一个property配不配都行,因为默认就是3-->
<property>
		<name>dfs.replication</name>
		<value>3</value>
</property>


<!-- 指定Hadoop辅助名称节点主机配置 表示可以通过hadoop103:50090访问secondary -->
<property>
      <name>dfs.namenode.secondary.http-address</name>
      <value>hadoop103:50090</value>
</property>

</configuration>

配置yarn-site.xml

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim yarn-site.xml

配置如下

<?xml version="1.0"?>

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- Reducer获取数据的方式 -->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>hadoop102</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>

</configuration>

(4)MapReduce配置文件

配置mapred-site.xml

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim mapred-site.xml

配置如下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
<!-- 指定MR运行在YARN上 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop1:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop1:19888</value>
</property>

</configuration>

3.在集群上分发配置好的Hadoop配置文件

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ bash xsync hadoop-2.7.2/

xsync脚本为

#!/bin/bash

#检测脚本参数是否合法
# $#表示参数的个数
if(($#==0))
then
	echo "参数非法,请传入需要分发的文件!"
	exit;
fi
#获取绝对路径
filename=`basename $1`
#$1是传递给该shell脚本的第一个参数
dirname=$(cd `dirname $1`; pwd -P)
#-P是因为可能是因为执行bash xsync脚本命令的工作目录是软连接
echo "要传输的文件路径是:$dirname/$filename"

#获取当前用户名
user=`whoami`
#将当前文件循环分发到集群的所有主技
for((host=101;host<=103;host++))
do
	echo "-------hadoop$host---------"
	rsync -rvlt $dirname/$filename $user@hadoop$host:$dirname
done

二、群起集群

1.    配置slaves(在一个主机上配置就行)

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ vim slaves 
编辑如下:
hadoop101
hadoop102
hadoop103

2.    启动集群

1)如果集群是第一次启动,需要格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenodedatanode进程,然后再删除tmplog数据)

 xcall rm -rf /home/yoyo/hadoop-2.7.2/tmp/

 xcall rm -rf /home/yoyo/hadoop-2.7.2/logs/
xcall脚本如下

#!/bin/bash

#检测脚本参数是否合法
# $#表示参数的个数
if(($#==0))
then
        echo "参数非法,请传入需要分发的命令!"
        exit;
fi

echo "要执行的命令是:$@"

#获取当前用户名
user=`whoami`
#将当前文件循环分发到集群的所有主技
for((host=101;host<=103;host++))
do
        echo "-------hadoop$host---------"
        ssh hadoop$host $@
done

格式化namenode

yoyo@hadoop101:~/hadoop-2.7.2/etc/hadoop$ hdfs namenode -format

2)启动集群

yoyo@hadoop102:~/hadoop-2.7.2$ start-all.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。https://www.iteye.com/blog/qi20088-2248386

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值