转http://www.cnblogs.com/zlslch/p/5854669.html
步骤流程(本博文):
1、 搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 分配1G及以上的状况)
2 、搭建一个5节点的hadoop分布式小集群--预备工作(djt11、djt12、djt13、djt14、djt15的网络连接、ip地址静态、拍照)
3、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 远程)
4、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 主机规划、软件规划、目录规划)
补充: 若是用户规划和目录规划,执行反了,则出现什么结果呢?请看---强烈建议不要这样干
5、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的环境检查 )
6 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的SSH免密码通信配置)
7 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的jdk安装)
8 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的djt11脚本工具的使用)
9 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的Zookeeper安装)
10、 搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的hadoop集群环境搭建)继续
1 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 分配1G及以上的状况)
对于这步,基础得看,
3
主机名称表(拷贝到所有的机器中)以及修改主机名
[hadoop@centos65-template ~]$ sudo vi /etc/hosts
[hadoop@centos65-template ~]$ sudo vi /etc/sysconfig/network
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.11 djt11
192.168.0.12 djt12
192.168.0.13 djt13
192.168.0.14 djt14
192.168.0.15 djt15
所以,记住,先是用户规划,再目录规划!!!
用户规划
每个节点的hadoop用户组和用户需要大家自己创建,单节点已经讲过,这里就不耽误大家时间。
依次,对djt11、djt12、djt13、djt14、 djt15进行用户规划,hadoop用户组,hadoop用户。
目录规划
所有软件目录: /home/hadoop/app
所有数据和日志目录:/home/hadoop/data
4、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 主机规划、软件规划、目录规划)
若是条件有限。则就只搭建3个吧。最开始啊,namenode是存在单点故障问题。从hadoop2.0之后,就设置了热备,防止宕机。
这里我们使用5 台主机来配置Hadoop集群。
Journalnode和ZooKeeper保持奇数个,这点大家要有个概念,最少不少于 3 个节点。
软件规划
这里啊,我们实现namenode热备和resourcemanger热备。在hadoop2.0之前啊,是没有实现这个功能。hadoop2.2.0只实现namenode热备。在hadoop2.4.0实现了namenode热备和resourcemanger热备,但是不是很稳定,所以,我们这里啊,就使用hadoop2.6.0。
用户规划
依次,对djt11、djt12、djt13、djt14、 djt15进行用户规划,hadoop用户组,hadoop用户。
5、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的环境检查 )
集群安装前的环境检查
在集群安装之前,我们需要一个对其环境的一个检查。
时钟同步
所有节点的系统时间要与当前时间保持一致,查看当前系统时间。
如果系统时间与当前时间不一致,进行以下操作。
设置时间格式
[hadoop@djt12 ~]$ date
[hadoop@djt12 ~]$ cd /usr/share/zoneinfo/Asia
[hadoop@djt12 Asia]$ sudo cp Shanghai /etc/localtime
安装ntp
[hadoop@djt12 Asia]$ sudo yum install -y ntp
[hadoop@djt12 Asia]$ sudo ntpdate pool.ntp.org
禁用防火墙
所有节点的防火墙都要关闭。
依次,对djt11、djt12、djt13、djt14、 djt15进行禁用防火墙。
创建脚本文件
djt11,all,namenode,zookeeper,resourcemanager,
djt12,all,slave,namenode,zookeeper,resourcemanager,
djt13,all,slave,datanode,zookeeper,
djt14,all,slave,datanode,zookeeper,
djt15,all,slave,datanode,zookeeper,
deploy.sh脚本
#!/bin/bash
if [ $# -lt 3 ]
then
echo "Usage: ./deploy.sh srcFile(or dir) descfile(or dest) MacheineTag"
echo "Usage: ./deploy.sh srcFile(or dir) descfile(or dest) MacheineTag confFile"
exit
fi
src=$1
dest=$2
echo $dest
tag=$3
if [ 'a'$4'a' == 'aa' ]
then
confFile=/home/hadoop/tools/deploy.conf
else
confFile=$4
fi
if [ -f $confFile ]
then
if [ -f $src ]
then
for server in `cat $confFile | grep -v '^#' | grep ','$tag',' | awk -F ',' '{print $1}'`
do
scp -r $src "hadoop"@$server":"${dest}
done
else
echo 'Error: No source file exist'
fi
else
echo "error: please assign config file or run deploy.sh"
fi
runCommandLine
#!/bin/bash
if [ $# -lt 2 ]
then
echo "Usage:./runRemoteCmd.sh Command MachineTag"
echo "Usage:./runRemoteCmd.sh Command MachineTag confFile"
exit
fi
cmd=$1
tag=$2
if [ 'a'$3'a' == 'aa' ]
then
confFile=/home/hadoop/tools/deploy.conf
else
confFile=$3
fi
if [ -f $confFile ]
then
for server in `cat $confFile| grep -v '^#'|grep ','$tag','|awk -F ',' '{print $1}'`
do
echo "**********$server*******"
ssh $server "source /etc/profile; $cmd"
done
fi
安装文件上传下载lrzsz包
[hadoop@djt11 src]$ sudo yum install -y lrzsz
上传jdk-8u121-linux-x64.tar.gz到所有的服务器中
[hadoop@djt11 tools]$ ./deploy.sh deploy.conf /home/hadoop/app/src/ all
[hadoop@djt11 tools]$ ./runRemoteCmd.sh 'mv /home/hadoop/app/src/jdk1.8.0_121/ /home/hadoop/app/java8' all
[hadoop@djt11 tools]$ ./runRemoteCmd.sh "echo JAVA_HOME=/home/hadoop/app/java8 >> ~/.bash_profile; echo 'PATH=$JAVA_HOME/bin:$PATH' >> ~/.bash_profile;echo 'CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> ~/.bash_profile;echo export CLASSPATH JAVA_HOME PATH >> ~/.bash_profile" all
[hadoop@djt11 tools]$ ./runRemoteCmd.sh "source ~/.bash_profile" all
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
9 、搭建一个5节点的hadoop分布式小集群--预备工作(对djt11、djt12、djt13、djt14、djt15 集群安装前的Zookeeper安装)
Zookeeper安装
1、将本地下载好的zookeeper-3.4.6.tar.gz安装包,上传至djt11节点下的/home/hadoop/app目录下。
[hadoop@djt11 tools]$ ./deploy.sh ~/app/src/hadoop-2.6.5.tar.gz ~/app/src/hadoop-2.6.5.tar.gz slave [hadoop@djt11 tools]$ ./runRemoteCmd.sh 'cd ~/app/src;tar -zxvf hadoop-2.6.5.tar.gz' all
[hadoop@djt11 tools]$ ./runRemoteCmd.sh 'cd ~/app/src;mv hadoop-2.6.5 ../hadoop' all
[hadoop@djt11 tools]$ ./deploy.sh ~/.bash_profile ~/.bash_profile slave
[hadoop@djt11 tools]$ ./runRemoteCmd.sh "source ~/.bash_profile" all