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 
  • 相关阅读:
    sp2010 升级sp2013 用户无法打开网站
    powerviot install in sharepoint 2013
    can not connect cube in performancce dashboard
    westrac server security configure user info
    添加报表服务在多服务器场
    sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法
    delete job definition
    目前付款申请单内网打开慢的问题
    item style edit in sharepoint 2013
    Could not load file or assembly '$SharePoint.Project.AssemblyFullName$'
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4158257.html
Copyright © 2011-2022 走看看