阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Hadoop2.7.1 集群部署及自动化脚本

215次阅读
没有评论

共计 5051 个字符,预计需要花费 13 分钟才能阅读完成。

Hadoop2.7.1 集群部署及自动化脚本

实验环境

操作系统:Ubuntu 14.04 64 位

主机名 IP
namenode 10.107.12.10
datanode1 10.107.12.20
datanode2 10.107.12.50
datanode3 10.107.12.60

jdk 安装

实验安装的是 jdk1.7.0_71 版本,具体安装步骤及环境变量设置参考这里。http://www.linuxidc.com/Linux/2016-07/132852.htm

SSH 无密登录

下面是我写的一个自动化 SSH 无密登录脚本,运行脚本前需要安装 expect 包,ubuntu 系统下直接执行:sudo apt-get install expect就可以了。该脚本运行在 namenode 上,运行时只需要将 IP_1 改成对应的 datanode 地址,PWD_1是对应 datanode 密码。

# NO_PWD_SSH
#!/bin/sh 
IP_1=10.107.12.20,10.107.12.50,10.107.12.60
PWD_1=111111

key_generate() {expect -c "set timeout -1;
        spawn ssh-keygen -t dsa;
        expect {{Enter file in which to save the key*} {send -- \r;exp_continue}
            {Enter passphrase*} {send -- \r;exp_continue}
            {Enter same passphrase again:} {send -- \r;exp_continue}
            {Overwrite (y/n)*} {send -- n\r;exp_continue}
            eof             {exit 0;}
    };"
}

auto_ssh_copy_id () {expect -c "set timeout -1;
        spawn ssh-copy-id -i $HOME/.ssh/id_dsa.pub root@$1;
            expect {{Are you sure you want to continue connecting *} {send -- yes\r;exp_continue;}
                {*password:} {send -- $2\r;exp_continue;}
                eof {exit 0;}
            };"
}

rm -rf ~/.ssh

key_generate

ips_1=$(echo $IP_1 | tr ',' ' ')
for ip in $ips_1
do
    auto_ssh_copy_id $ip  $PWD_1
done

eval &(ssh-agent)
ssh-add

安装 Hadoop2.7.1

1. 下载 Hadoop2.7.1

下载地址点这里。

2. 解压安装

tar zxvf hadoop-2.7.1.tar.gz解压,解压后放在了 /root/spark_sdk/ 目录下,并在 hadoop-2.7.1 目录下建立 tmp、hdfs/namenode、hdfs/datanode 目录,命令如下:

mkdir ./hadoop-2.7.1/tmp
mkdir ./hadoop-2.7.1/hdfs
mkdir ./hadoop-2.7.1/hdfs/datanode
mkdir ./hadoop-2.7.1/hdfs/namenode

3. 设置环境变量

~/.bashrc 文件中加入如下两条命令:

export HADOOP_HOME=/root/spark_sdk/hadoop-2.7.1 
PATH=$PATH:$HADOOP_HOME/bin

使环境变量生效:source ~/.bashrc

4. 设置主机名 && hosts 文件

主机名
/etc/hostname中主机名依次修改为 namenode,datanode1,datanode2,datanode3。

hosts 文件
/etc/hosts文件中加入如下命令:

10.107.12.10 namenode
10.107.12.20 datanode1
10.107.12.50 datanode2
10.107.12.60 datanode3

注意主机名必须和 hosts 文件中名称保持一致!!

5. 修改 Hadoop 配置文件

hadoop-env.sh 文件

export Java_HOME=/root/spark_sdk/jdk1.7.0_71

yarn-env.sh 文件

export JAVA_HOME=/root/spark_sdk/jdk1.7.0_71

core-site.xml 文件

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value>
    </property>

    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/root/spark_sdk/hadoop-2.7.1/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>

    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
</configuration>

这里有一个地方需要注意,最后设置 hadoop.proxyuser 时,后面跟的是 用户名,我是用 root 用户登录的,所以填的是 root。

hdfs-site.xml 文件

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/root/spark_sdk/hadoop-2.7.1/hdfs/namenode</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/root/spark_sdk/hadoop-2.7.1/hdfs/datanode</value>
    </property>

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

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

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

mapred-site.xml 文件

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml 文件

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>namenode:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>namenode:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>namenode:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>namenode:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>namenode:8088</value>                                                                                                    
    </property>
</configuration>

slaves 文件

    datanode1
    datanode2
    datanode3

6. 启动 Hadoop

先格式化 namenode,然后依次启动 hdfs 和 yarn。

bin/hadoop namenode -format

sbin/start-dfs.sh

sbin/start-yarn.sh

7. 集群启动验证

namenode 上执行 jps 命令,可以查询到有如下进程:

15746 SecondaryNameNode
15508 NameNode
15969 ResourceManager
16377 Jps

datanode 上执行 jps 命令,可以查询到有如下进程:

14731 Jps
14421 NodeManager
14182 DataNode

8. 查询集群信息 && 关闭集群

可以在浏览器中输入:10.107.12.10:50070查询 HDFS 相关信息,这里 10.107.12.10 是 namenode 的 IP 地址。浏览器输入:10.107.12.10:8088查看 yarn 的启动情况。

关闭集群可以执行sbin/stop-all.sh

9. 运行应用程序

启动集群后,切换到 hadoop 主目录,执行 ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar pi 20 10,运行成功后会输出 Pi 的值,结果如下:

Hadoop2.7.1 集群部署及自动化脚本

【完】

下面关于 Hadoop 的文章您也可能喜欢,不妨看看:

Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程  http://www.linuxidc.com/Linux/2015-02/113487.htm

CentOS 安装和配置 Hadoop2.2.0  http://www.linuxidc.com/Linux/2014-01/94685.htm

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/132851.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5051字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中