Hadoop 集群部署安装

 

目录

1.分析

2.编写集群分发脚本xsync

3.SSH无密登录配置

4.集群配置

5.集群单点启动

6.集群测试

7.集群启动/停止方式


  Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。因为在生产当中我们基本都使用完全分布式模式,所以在此只学习完全分布式集群搭建。

1.分析

    • 准备3台客户机(关闭防火墙、静态ip、主机名称)
    • 安装jdk 和 hadoop 并分别配置环境变量
    • 编写集群分发脚本
    • 配置集群
    • 单点启动
    • 配置ssh
    • 群起并测试集群

2.编写集群分发脚本xsync

    脚本需求分析:循环复制文件到所有节点的相同目录下。
2.1 原始拷贝:rsync  -rvl    /opt/module   root@hadoop103:/opt/
2.2 期望脚本:xsync 要同步的文件名称
2.3 在/home/luomk/bin这个目录下存放的脚本,luomk用户可以在系统任何地方直接执行。
2.4 脚本实现:
2.4.1 在/home/luomk目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下:
        [luomk@hadoop102 ~]$ mkdir bin ; cd bin/
        [luomk@hadoop102 bin]$ touch xsync ; vim 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<105; host++)); do
        echo --------------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

2.4.2 修改脚本 xsync 具有执行权限

        [luomk@hadoop102 bin]$ chmod 777 xsync
2.4.3 调用脚本形式:xsync 文件名称    
        [luomk@hadoop102 bin]$ xsync /home/luomk/bin

3.SSH无密登录配置

3.1 生成公钥和私钥:
        [luomk@hadoop102 bin]$ cd ~/.ssh
        [luomk@hadoop102 .ssh]$ ssh-keygen -t rsa
    然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
3.2 将公钥拷贝到要免密登录的目标机器上
        [luomk@hadoop102 .ssh]$ ssh-copy-id hadoop102
        [luomk@hadoop102 .ssh]$ ssh-copy-id hadoop103
        [luomk@hadoop102 .ssh]$ ssh-copy-id hadoop104
3.3 ssh文件夹下(~/.ssh)的文件功能解释
        known_hosts    :记录ssh访问过计算机的公钥(public key)
        id_rsa    :生成的私钥
        id_rsa.pub    :生成的公钥
        authorized_keys    :存放授权过得无密登录服务器公钥
3.4  说明:需要在102和103两台机器配置。

4.集群配置

4.1 集群部署规划
hadoop102
hadoop103
hadoop104
HDFS
NameNode
DataNode
DataNode
SecondaryNameNode
DataNode
YARN
NodeManager
ResourceManager
NodeManager
NodeManager
4.2 配置集群
4.2.1 核心配置文件:core-site.xml
 [luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml


<!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:9000</value>
    </property>


<!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.2/data/tmp</value>
    </property>

4.2.2 hdfs配置文件:

    hadoop-env.sh
[luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

   hdfs-site.xml

  [luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/hdfs-site.xml

    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>

    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:50090</value>
    </property>

4.2.3 yarn配置文件: 

    yarn-env.sh
[luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

    yarn-site.xml

 [luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/yarn-site.xml
  <!-- reducer获取数据的方式 -->
    <property>
         <name>yarn.nodemanager.aux-services</name>
         <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>

4.2.4 mapreduce配置文件:

    mapred-env.sh
    [luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

    mapred-site.xml

    [luomk@hadoop102 hadoop]$ cp /opt/module/hadoop-2.7.2/etc/hadoop/mapred-site.xml.template  /opt/module/hadoop-2.7.2/etc/hadoop/mapred-site.xml
    [luomk@hadoop102 hadoop]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/mapred-site.xml
<!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

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

    [luomk@hadoop102 hadoop]$ xsync /opt/module/hadoop-2.7.2/
4.4 查看文件分发情况
    [luomk@hadoop103 hadoop]$ cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

5.集群单点启动

// 如果集群是第一次启动,需要格式化NameNode
        [luomk@hadoop102 hadoop-2.7.2]$ hadoop namenode -format
// 在hadoop102上启动NameNode
        [luomk@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start namenode
        [luomk@hadoop102 hadoop-2.7.2]$ jps
        3461 NameNode
        3531 Jps
// 在hadoop102、hadoop103以及hadoop104上分别启动DataNode
        [luomk@hadoop102 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
        [luomk@hadoop102 hadoop-2.7.2]$ jps
        3461 NameNode
        3608 Jps
        3561 DataNode
        [luomk@hadoop103 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
        [luomk@hadoop103 hadoop-2.7.2]$ jps
        3190 DataNode
        3279 Jps
        [luomk@hadoop104 hadoop-2.7.2]$ hadoop-daemon.sh start datanode
        [luomk@hadoop104 hadoop-2.7.2]$ jps
        3237 Jps
        3163 DataNode

6.集群测试

6.1 配置slaves
[luomk@hadoop102 hadoop-2.7.2]$ vim /opt/module/hadoop-2.7.2/etc/hadoop/slaves
hadoop102
hadoop103
hadoop104
6.2 启动集群
    • 如果集群是第一次启动,需要格式化NameNode
        [luomk@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format
    • 启动HDFS和Yarn:
        [luomk@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh
        [luomk@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh
        注意:NameNode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。    
    • web端查看
    (a)浏览器中输入: http://hadoop102:50070 (NameNode)
    (b)浏览器中输入: http://hadoop104:50090/status.html (SecondaryNameNode)
    (c)当启动发生错误的时候:
    • 查看日志:/home/luomk/module/hadoop-2.7.2/logs
    • 如果进入安全模式,可以通过hdfs dfsadmin -safemode leave
    • 停止所有进程,删除data和log文件夹,然后hdfs namenode -format 来格式化
6.3 集群基本测试
// ① 上传文件到集群
[luomk@hadoop102 hadoop-2.7.2]$ hadoop fs -mkdir -p /user/luomk/input
[luomk@hadoop102 hadoop-2.7.2]$ bin/hadoop fs -put /opt/software/hadoop-2.7.2.tar.gz  /user/luomk/input

// ② 上传文件后查看文件存放在HDFS什么位置
[luomk@hadoop102 subdir0]$ pwd
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current/BP-938951106-192.168.10.107-1495462844069/current/finalized/subdir0/subdir0
[luomk@hadoop102 subdir0]$ cat blk_1073741825

// ③ 下载
[luomk@hadoop102 hadoop-2.7.2]$ hadoop fs -get /user/luomk/input/hadoop-2.7.2.tar.gz ./

7.集群启动/停止方式

// 7.1 各个服务组件逐一启动/停止
// 分别启动/停止hdfs组件
hadoop-daemon.sh  start|stop  namenode|datanode|secondarynamenode
// 启动/停止yarn
yarn-daemon.sh  start|stop  resourcemanager|nodemanager

7.2 各个模块分开启动/停止
// 整体启动/停止hdfs
start-dfs.sh
stop-dfs.sh
// 整体启动/停止yarn
start-yarn.sh
stop-yarn.sh

7.3 全部启动/停止集群(不建议使用)
start-all.sh
stop-all.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员学习圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值