基本流程:
- 准备3台客户机(关闭防火墙、静态ip、主机名称)
- 安装jdk
- 配置环境变量
- 安装hadoop
- 配置环境变量
- ssh免密登录(注意,也需要给本机设立免密)
- 配置集群
- 启动测试集群
一、集群分发脚本xsync
1.在/usr/local/bin目录下创建xsync文件,文件内容如下:
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=102; host<103; host++)); do
#echo $pdir/$fname $user@hadoop$host:$pdir
echo --------------- hadoop$host ----------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
2.修改脚本 xsync 具有执行权限
[root@hadoop102 bin]# chmod a+x xsync
3.调用脚本形式
xsync 文件名称
二、分发脚本xcall
1.在/usr/local/bin目录下创建xcall文件,文件内容如下:
#!/bin/bash
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
echo -------------localhost----------
$@
for((host=101; host<=103; host++)); do
echo ----------hadoop$host---------
ssh hadoop$host $@
done
2.修改脚本 xcall 具有执行权限
[root@hadoop101 bin]# chmod a+x xcall
3.调用脚本形式: xcall 操作命令
[root@hadoop101 ~]# xcall mkdir /opt/moudle/test
三、配置集群:
1.集群部署规划:
hadoop101 | hadoop102 | hadoop103 | |
---|---|---|---|
HDFS | NameNode/DataNode | DataNode | SecondaryNameNode/DataNode |
YARN | NodeManager | ResourceManager/NodeManager | NodeManager |
2.配置文件
1)core-site.xml
fs.defaultFS
hdfs://hadoop101:9000
hadoop.tmp.dir
/opt/module/hadoop-2.7.2/data/tmp
2)HDFS
hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
hdfs-site.xml
dfs.replication
3
dfs.namenode.secondary.http-address
hadoop103:50090
slaves
hadoop101
hadoop102
hadoop103
3)yarn
yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.hostname
hadoop102
yarn.log-aggregation-enable
true
yarn.log-aggregation.retain-seconds
604800
4)mapreduce
mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.7.0_79
mapred-site.xml
mapreduce.framework.name
yarn
mapreduce.jobhistory.address
hadoop101:10020
mapreduce.jobhistory.webapp.address
hadoop101:19888
3.在集群上分发以上所有文件
cd /opt/module/hadoop-2.7.2/etc/hadoop
xsync /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
xsync /opt/module/hadoop-2.7.2/etc/hadoop/slaves
4.查看文件分发情况
xcall cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves
四、集群启动及测试
1.启动集群
1)如果集群是第一次启动,需要格式化namenode
[root@hadoop101 hadoop-2.7.2]# bin/hdfs namenode -format
2)启动HDFS
[root@hadoop101 hadoop-2.7.2]# sbin/start-dfs.sh
[root@hadoop101 hadoop-2.7.2]# jps
4166 NameNode
4482 Jps
4263 DataNode
[root@hadoop102 hadoop-2.7.2]# jps
3218 DataNode
3288 Jps
[root@hadoop103 hadoop-2.7.2]# jps
3221 DataNode
3283 SecondaryNameNode
3364 Jps
3)启动yarn
[root@hadoop102 hadoop-2.7.2]# sbin/start-yarn.sh
#注意:Namenode和ResourceManger如果不是同一台机器,
#不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。
4)启动history历史服务器
[root@hadoop101 hadoop-2.7.2]# sbin/mr-jobhistory-daemon.sh start historyserver
2.网页查看
- hdfs:http://hadoop101:50070/dfshealth.html#tab-datanode
- yarn:http://hadoop102:8088/cluster
- jobhistory:http://hadoop101:19888/jobhistory
3.集群基本测试
1)上传文件到集群
- 上传小文件
[honey@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/honey/tmp/conf
[honey@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -put etc/hadoop/*-site.xml /user/honey/tmp/conf
- 上传大文件
[honey@hadoop101 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz /user/honey/input
2)上传文件后查看文件存放在什么位置
- 文件存储路径
[honey@hadoop101 subdir0]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0
- 查看文件内容
[honey@hadoop101 subdir0]$ cat blk_1073741825
hadoop
honey
honey
3)拼接
-rw-rw-r--. 1 honey honey 134217728 5月 23 16:01 blk_1073741836
-rw-rw-r--. 1 honey honey 1048583 5月 23 16:01 blk_1073741836_1012.meta
-rw-rw-r--. 1 honey honey 63439959 5月 23 16:01 blk_1073741837
-rw-rw-r--. 1 honey honey 495635 5月 23 16:01 blk_1073741837_1013.meta
[honey@hadoop102 subdir0]$ cat blk_1073741836>>tmp.file
[honey@hadoop102 subdir0]$ cat blk_1073741837>>tmp.file
[honey@hadoop102 subdir0]$ tar -zxvf tmp.file
4)下载
[honey@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -get /user/honey/input/hadoop-2.7.2.tar.gz
五、Hadoop启动停止方式
1.各个服务组件逐一启动
1)分别启动hdfs组件
hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
2)启动yarn
yarn-daemon.sh start|stop resourcemanager|nodemanager
2.各个模块分开启动(配置ssh是前提)(常用)
(1)整体启动/停止hdfs
start-dfs.sh
stop-dfs.sh
(2)整体启动/停止yarn
start-yarn.sh
stop-yarn.sh
3.全部启动(不建议使用)
start-all.sh
stop-all.sh