搭建3个节点的分布式集群

 
 
 
 
第一步:时钟同步(为每个节点执行以下的步骤):
查看当前系统时间:
date
如果系统时间与当前时间不一致,执行以下的操作:
cd /usr/share/zoneinfo/
ls
cd Asia/
ls
cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime		
yum install ntp   //如果ntp命令不存在,在线安装ntp
ntpdate pool.ntp.org
date	
第二步:
所有节点的hosts文件都要配置静态ip与hostname之间的对应关系。

    
    
 
第三步:检查防火墙是否关闭
service iptables status
chkconfig iptables off
第四步:hadoop用户组的创建
第五步:ssh免密码登录(所有节点都要执行以下命令)
切换到hadoop用户组
su hadoop
cd	
cd .ssh 检查是否已经创建ssh
mkdir .ssh
生成密钥:
ssh-keygen -t rsa	(一直enter下去)
cd .ssh 	
ls(此处会有公钥,私钥)
将公钥保存到authorized_keys认证文件中:
cat id_rsa.pub >> authorized_keys
ls
cd ..
chmod 700 .ssh
chmod 600 .ssh/*
ssh djt11
ssh djt11	
将其余所有节点中的共钥id_ras.pub拷贝到djt11中的authorized_keys文件中
cat ~/.ssh/id_rsa.pub | ssh hadoop@djt11 'cat >> ~/.ssh/authorized_keys' 
然后将djt11中的authorized_keys文件分发到所有节点上面。
scp -r authorized_keys hadoop@djt12:~/.ssh/
scp -r authorized_keys hadoop@djt13:~/.ssh/
scp -r authorized_keys hadoop@djt14:~/.ssh/
scp -r authorized_keys hadoop@djt15:~/.ssh/
第六步:
扩展:脚本工具的使用
mkdir /home/hadoop/tools
cd /home/hadoop/tools

          
          
 如果我们想直接使用脚本,还需要给脚本添加执行权限:
chmod u+x deploy.sh
chmod u+x runRemoteCmd.sh
同时我们需要将/home/hadoop/tools目录配置到PATH路径中

              
              
 
source /etc/profile
su hadoop
第七步:

jdk安装

上传jdk
查看操作系统的位数
file /bin/ls
mkdir /home/hadoop/app
cd /home/hadoop/app
ls
rz jdk-7u79-linux-x64.tar.gz
ls
tar zxvf jdk-7u79-linux-x64.tar.gz 
ls
rm jdk-7u79-linux-x64.tar.gz
添加jdk环境变量
su root
vi /etc/profile
配置如下:
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
使配置文件生效:
source /etc/profile	
java -version	

             
             
 
其他从节点:
可以使用远程命令创建目录:
runRemoteCmd.sh "mkdir /home/hadoop/app" slave
cd /home/hadoop/app
复制jdk到其他节点上:
deploy.sh jdk1.7.0_79 /home/hadoop/app/ slave
记得,还要在各个节点中单独配置环境变量
su root
vi /etc/profile
配置如下:
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH
使配置文件生效:
source /etc/profile	
java -version	
runRemoteCmd.sh  "java -version" all
第八步:

Zookeeper安装

rz zookeeper-3.4.6.tar.gz
ls
tar zxvf zookeeper-3.4.6.tar.gz	
ls
rm zookeeper-3.4.6.tar.gz	
mv zookeeper-3.4.6 zookeeper	
修改Zookeeper中的配置文件:
cd /home/hadoop/app/zookeeper/conf/
ls
(cp zoo_sample.cfg zoo.cfg)
cd /home/hadoop/app
deploy.sh zookeeper /home/hadoop/app  slave
创建数据目录:
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdata" all
创建日志目录:
runRemoteCmd.sh "mkdir -p /home/hadoop/data/zookeeper/zkdatalog" all 	
然后分别在djt11、djt12、djt13、djt14、djt15上面,进入zkdata目录下,
创建文件myid,里面的内容分别填充为:1、2、3、4、5
su hadoop
ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:/home/hadoop/tools:$PATH
export JAVA_HOME CLASSPATH PATH ZOOKEEPER_HOME
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH ZOOKEEPER_HOME
单节点上面启动Zookeeper
如果一个节点为leader,另四个节点为follower,则说明Zookeeper安装成功
cd /home/hadoop/data/zookeeper/zkdata
vi myid
配置Zookeeper环境变量
su root
vi /etc/profile
(主节点上的配置:)
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
(从节点上的配置:)
cd /home/hadoop/app/zookeeper/
bin/zkServer.sh start
bin/zkServer.sh stop	
jps
使用runRemoteCmd.sh 脚本,启动所有节点上面的Zookeeper。
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper
查看所有节点上面的QuorumPeerMain进程是否启动。
runRemoteCmd.sh "jps" zookeeper
查看所有Zookeeper节点状态。
runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh status" zookeeper

第九步:

hadoop集群环境搭建

rz	
ls
tar zxvf hadoop-2.6.0.tar.gz	
ls
rm hadoop-2.6.0.tar.gz	
mv hadoop-2.6.0 hadoop	
切换到/home/hadoop/app/hadoop/etc/hadoop/目录下,修改配置文件
cd /home/hadoop/app/hadoop/etc/hadoop/
配置hadoop-env.sh,配置core-site.xml,配置hdfs-site.xml,配置 slave
cd /home/hadoop/app
deploy.sh hadoop /home/hadoop/app/ slave
配置下hadoop的环境变量
su root
vi /etc/profile
(主节点的配置:)
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79
ZOOKEEPER_HOME=/home/hadoop/app/zookeeper
HADOOP_HOME=/home/hadoop/app/hadoop
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:/home/hadoop/tools:$PATH
export JAVA_HOME CLASSPATH PATH ZOOKEEPER_HOME HADOOP_HOME
(其他节点的配置:)
JAVA_HOME=/home/hadoop/app/jdk1.7.0_79ZOOKEEPER_HOME=/home/hadoop/app/zookeeperHADOOP_HOME=/home/hadoop/app/hadoopCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH ZOOKEEPER_HOME HADOOP_HOME
向所有节点分发hadoop安装包:
deploy.sh hadoop /home/hadoop/app/ slave

hdfs配置完毕后启动顺序:

runRemoteCmd.sh "/home/hadoop/app/zookeeper/bin/zkServer.sh start" zookeeper
runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh start journalnode" all
在主节点上
 bin/hdfs namenode -format /
bin/hdfs zkfc -formatZK 
bin/hdfs namenode 
与此同时,需要在备节点(比如,djt12)上执行数据同步:
bin/hdfs namenode -bootstrapStandby	
djt12同步完数据后,紧接着在djt11节点上,按下ctrl+c来结束namenode进程。
		然后关闭所有节点上面的journalnode进程
 runRemoteCmd.sh "/home/hadoop/app/hadoop/sbin/hadoop-daemon.sh stop journalnode" all	
 sbin/start-dfs.sh

                   
                   
 

                   
                   
 

             
             
 
单独启动namenode的命令:

             
             
 
进行测试,上传文件到hdfs:
cd /home/hadoop/app/hadoop
hdfs dfs -ls /
hdfs dfs -mkdir /test
vi djt.txt
hdfs dfs -put djt.txt /test
启动YARN:
配置mapred-site.xml,yarn-site.xml
然后分发到其他的节点上:
deploy.sh mapred-site.xml /home/hadoop/app/hadoop/etc/hadoop/ slave
deploy.sh yarn-site.xml /home/hadoop/app/hadoop/etc/hadoop/ slave
1、在djt11节点上执行
sbin/start-yarn.sh	
2、在djt12节点上面执行
sbin/yarn-daemon.sh start resourcemanager

同时打开一下web界面。

		
http://djt11:8088
http://djt12:8088
3、检查一下ResourceManager状态 

               
               
bin/yarn rmadmin -getServiceState rm1

               
               
bin/yarn rmadmin -getServiceState rm2
 
Wordcount示例测试
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /test/djt.txt /test/out/


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值