zoukankan      html  css  js  c++  java
  • Hadoop2.x版本全分布式详细安装过程!!【原创!非抄袭!】

    网上对于全分布式的介绍也是一堆!!要么是假的!要么是1.x版本的全分布式!我实在是无力吐槽,很多博客大牛转载的或者“原创”的我看完我都问他们自己。。。他们自己实现了吗?以下是我的安装过程:

    如有问题随时联系我 E-mail:yanghg@pku.edu.cn

    此次Hadoop分布式共搭建了三个虚拟机,分别如下:

    主机名

    IP

    运行进程

    master

    192.168.213.108

    NameNode, SecondaryNameNode, ResourceManager

    slave1

    192.168.213.109

    DataNode, NodeManager

    slave2

    192.168.213.110

    DataNode, NodeManager

    本文主要包括以下步骤:

    一. 为每个主机建立hadoop用户,用户属于hadoop组。

    二. 确定主机名,并为每台主机分配静态IP地址

    三. 为每台主机安装SSH并设置无密码登陆

    四. 为每台主机安装JDK

    五. 关闭每台主机的防火墙

    六. 配置Hadoop

    七. 启动Hadoop

    八. 在Hadoop上运行wordcount程序

    完整的搭建步骤如下:

    一.   为每个主机建立hadoop用户,用户属于hadoop组。

    1. 命令如下:sudo adduser hadoop
    2. 修改hadoop用户配置,使其拥有sudo权限。

    命令如下:

    cd /etc/sudoers.d

    sudo vi hadoop

    添加内容如下图:

    保存退出。

    1. 修改hadoop文件权限。命令如下:

    chmod 0440 hadoop

    二.   确定主机名,并为每台主机分配静态IP地址。

    为了方便结点之间的通信,需要为Hadoop中的每个结点分配固定的IP地址。

    1. 为每台主机分配固定IP地址。
      1. 查看自己所在局域网的网段。(注:三台主机的网络均为桥接模式)

    我的宿主机网络如下:

    IPv4地址:192.168.213.177

    子网掩码:255.255.255.0

    默认网关:192.168.213.254

    DNS服务器:192.168.10.251

                                                        192.168.10.252

    (额外的小注释: 谷歌搭建了两个免费的DNS服务器:8.8.8.8和8.8.4.4)

    1. 为主机master配置静态IP地址192.168.213.108

    命令:sudo vi /etc/network/interfaces

    删除其中关于eth0的部分,加入以下内容:

               auto eth0

               iface eth0 inet static

               address 192.168.213.108

               gateway 192.168.213.254

               netmask 255.255.255.0

               network 192.168.213.0

                          broadcast 192.168.213.255

    如下图:

    保存退出。

    1. 手动配置DNS

    命令:sudo vi /etc/resolv.conf

    删除原DNS的信息,加入以下信息:

    nameserver 192.168.10.251

    nameserver 192.168.10.252

    如下图:

    1. 重启network,使上述修改生效。

    命令:sudo /etc/init.d/networking restart

    生效后截图如下:

    1. 如果重启ubuntu后,会发现又不能上网了,因为DNS又被修改为默认值了。为了一劳永逸,永久修改DNS值,命令如下:

    sudo vi /etc/resolvconf/resolv.conf.d/head

    将原有内容修改为如下:

    nameserver 192.168.10.251

    nameserver 192.168.10.252

    截图如下:

    (注:因为ubuntu重启后,/etc/resolv.conf文件中的内容会被覆盖为/etc/resolvconf/resolv.conf.d/head中的内容)

    1. 按照以上步骤,分别配置slave1和slave2的IP地址,为192.168.213.109和192.168.213.110.
    2. 修改每台主机的主机名。

    修改/etc/hostname文件,命令如下:sudo vi /etc/hostname

    将原主机名更换为master,截图如下:

    修改/etc/hosts文件,命令如下:sudo vi /etc/hosts

    添加内容如下:

    192.168.213.108       master

    192.168.213.109       slave1

    192.168.213.110       slave2

    如截图:

    同样的步骤修改slave1主机和slave2主机。

    三.   为每台主机安装SSH并设置无密码登陆

    1. 安装SSH.

    命令为:sudo apt-get install ssh

    1. 生成SSH密钥
      1. 在/home/hadoop目录下创建隐藏目录.ssh,命令如下:

    mkdir .ssh

    1. 通过ssh-keygen生成dsa密钥对,并将其放置在.ssh目录下,通过-P选项来设置空的密码,从而实现SSH的无密码登陆,具体命令如下:

    ssh-keygen –t dsa –P ‘’ –f /home/hadoop/.ssh/id_dsa

    生成的私钥保存在/home/hadoop/.ssh/id_dsa文件中,生成的公钥保存在/home/hadoop/.ssh/id_dsa.pub文件中。

    1. 接下来,需要将id_dsa.pub中的公钥信息保存到authorized_keys中,命令如下:

    cat id_dsa.pub >> authorized_keys

    1. 配置完成。可以通过ssh localhost来验证,除了在第一次输入yes外,之后不需要任何输入即可登录主机。
    2. 为slave1和slave2进行同样的操作。并将master的公钥信息导入到slave1和slave2的authorized_keys文件中。

    命令如下:

    scp id_dsa.pub hadoop@slave1:~/frommaster

    scp id_dsa.pub hadoop@slave2:~/frommaster

    分别进入slave1和slave2的/home/hadoop/.ssh目录,并执行如下命令:

    cat frommaster >> authorized_keys

    rm –f frommaster

    四.   为每台主机安装JDK

    1. 下载并解压缩JDK到/home/hadoop目录中
    2. 我安装的jdk1.7…….,为了配置的方便,我把目录更名为jdk1.7

    mv jdk1.7.(JDK主目录名) jdk1.7

    1. 修改/etc/profile文件,

    命令:sudo vi /etc/profile

    加入如下Java配置信息:

    export JAVA_HOME=/home/hadoop/jdk1.7

    export JRE_HOME=/home/hadoop/jdk1.7/jre

    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    保存退出

    1. 使Java配置修改生效。命令:

    source /etc/profile

    1. 验证。命令 java –version
    2. 有时,还需要将$JAVA_HOME/bin目录信息加入到/etc/environment中,以保证我们能正常运行Java相关主函数。

    PATH=”balbalbalblablalballbabllba(前面是原内容):/home/hadoop/jdk1.7/bin”如下图:

    五.   关闭每台主机的防火墙

    ubuntu系统:ufw disable(重启生效)

    六.   配置Hadoop

    将下载的hadoop-2.2.tar.gz解压到master主机的/home/hadoop路径下。(注意,如果是64位系统,需要编译源代码,将编译后的结果放在此路径下。64位系统与32位系统安装有些不同。)

    配置之前,需要在master本地文件系统创建以下文件夹:

    ~/dfs/name

    ~/dfs/data

    ~/tmp

    这里要涉及到的配置文件有7个:

    ~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh

    ~/hadoop-2.2.0/etc/hadoop/yarn-env.sh

    ~/hadoop-2.2.0/etc/hadoop/slaves

    ~/hadoop-2.2.0/etc/hadoop/core-site.xml

    ~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml

    ~/hadoop-2.2.0/etc/hadoop/mapred-site.xml

    ~/hadoop-2.2.0/etc/hadoop/yarn-site.xml

    如果有文件不存在,可以将它在目录中对应的.template文件改为上述的.xml文件,即给文件改一下名字。

    • 配置文件一:hadoop-env.sh

    修改JAVA_HOME值

    export JAVA_HOME=/home/hadoop/jdk1.7

    • 配置文件二:yarn-env.sh

    修改JAVA_HOME值

    export JAVA_HOME=/home/hadoop/jdk1.7

    • 配置文件三:slaves(该文件保存所有的slave节点)

    写入以下内容:

    slave1

    slave2

    • 配置文件四:core-site.xml

    修改如下内容:

    注意,name标签中的名称与hadoop1.0有比较一些的不同。

    • 配置文件五:hadf-site.xml。

    修改内容如下:

    • 配置文件六:mapred-site.xml

    修改如下内容:

    • 配置文件七:yarn-site.xml

    修改如下内容:

    • 最后一步:将hadoop复制到其他节点

    命令如下:

    scp –r /home/hadoop/hadoop-2.2.0 hadoop@slave1:~/

    scp –r /home/hadoop/hadoop-2.2.0 hadoop@slave2:~/

    七.   启动Hadoop

    1. 进入安装目录:cd ~/hadoop-2.2.0
    2. 格式化namenode: ./bin/hdfs namenode –format
    3. 启动hdfs:

    命令为: ./sbin/start-dfs.sh

    此时在master主机上运行的进程有:NameNode, SecondartNameNode

    此时在slave1和slave2主机上运行的进程有:DataNode

    截图如下:

    master主机:

    slave主机:

    1. 启动yarn:

    命令如下:./sbin/start-yarn.sh

    此时在master主机上运行的进程有:NameNode, SecondaryNameNode, ResourceManager

    此时在slave主机上运行的进程有:DataNode, NodeManager

    截图如下:

    master主机:

    slave主机:

               至此,Hadoop已经安装完成。

               查看集群状态:

              

               打开浏览器,输入192.168.213.8088,查看ResourceManager

               如图:

    八.   在hadoop上运行wordcount程序

    下面,我们在自己搭建的Hadoop平台上运行第一个wordcount程序。

    Hadoop自带了一个例子程序,为

    ~/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar。

    我们来运行一下。

    1. 在主目录下运行:wget http://www.gutenberg.org/cache/epub/20417/pg20417.txt
    2. 命令:cd hadoop-2.2.0
    3. 命令:./bin/hdfs dfs –mkdir /input
    4. ./bin/hdfs fs –copyFromLocal /home/hadoop/pg20417.txt input
    5. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount input output 
  • 相关阅读:
    数组最值和两种排序
    整数翻转,99乘法表,百钱买百鸡
    运算符综合练习题
    五子棋实现体验其过程
    二维数组斜线扫描2(方法逻辑清晰)
    字符串链接练习题
    母串中有几个相同的子串
    递归求菲波拉契前N项的和
    [LeetCode] Mini Parser
    Linked List 小结
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4158257.html
Copyright © 2011-2022 走看看