zoukankan      html  css  js  c++  java
  • Hadoop2.6.0完全分布式安装

    本文地址:http://www.cnblogs.com/myresearch/p/hadoop-full-distributed-operation.html,转载请注明源地址。

    我这边是使用了两台主机搭建集群,主机名与IP地址对应如下:

    master            192.168.111.131

    slave1             192.168.111.135

    然后在该主机的 /etc/hostname 中,修改机器名为master,将其他主机命令为slave1、slave2等。接着在 /etc/hosts 中,把所有集群的主机信息都写进去。

    hadoop@ubuntu:~$ sudo vim /etc/hostname
    hadoop@ubuntu:~$ sudo vim /etc/hosts

    127.0.0.1               localhost
    192.168.111.131    master
    192.168.111.135    slave1

    完成后,最好重启一下,在终端中才会看到机器名的变化。

    配置好后可以在各个主机上执行ping Masterping Slave1测试一下,看是否相互ping得通。

    在slave主机上配置hadoop用户、安装SSH server、安装Java环境

    SSH无密码登陆节点

    首先生成master的公钥,实现本机的无密码登录,具体方法可参照《Hadoop2.6.0单机/伪分布式安装

    用ssh master验证:

    hadoop@master:~$ ssh master

    Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

    * Documentation: https://help.ubuntu.com/

    Last login: Wed May 13 22:38:37 2015 from master

    接着将公匙传输到 slave1 节点:

    hadoop@master:~$ scp ~/.ssh/id_rsa.pub hadoop@slave1:/home/hadoop/

    接着在 slave1节点 上将ssh公匙保存到相应位置,执行:

    hadoop@slave1:~/.ssh$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

    最后在 Master 节点上就可以无密码SSH到Slave1节点:

    hadoop@master:~$ ssh slave1

    Welcome to Ubuntu 14.04 LTS (GNU/Linux 3.13.0-24-generic x86_64)

    * Documentation: https://help.ubuntu.com/

    545 packages can be updated.
    188 updates are security updates.

    Last login: Thu May 14 01:33:14 2015 from slave1

    配置分布式环境

    分布式模式需要修改 etc/hadoop 中的5个配置文件,后四个文件可点击查看官方默认设置值,这里仅设置了正常启动所必须的设置项: slaves、core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 。

    1. 文件slaves

    直接打开slave文件,也可以使用vim打开

    把文件中的localhost删除,把所有Slave的主机名写上,每行一个。

    2. core-site.xml

    <configuration>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/opt/hadoop-2.6.0/tmp</value>
      </property>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
      </property>
    </configuration>

    3. hdfs-site.xml,因为只有一个slave,所以dfs.replication的值设为1。

    <configuration>
      <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
      </property>
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/opt/hadoop-2.6.0/tmp/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/opt/hadoop-2.6.0/tmp/dfs/data</value>
      </property>
    </configuration>

    4. mapred-site.xml

    这个文件不存在,首先需要从模板中复制一份:

    hadoop@master:~/opt/hadoop-2.6.0/etc/hadoop$ cp mapred-site.xml.template mapred-site.xml

    然后配置修改如下:

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

    5. yarn-site.xml:

    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
    </configuration>

    配置好后,将 master 上的 Hadoop 文件复制到各个节点上。

    hadoop@master:~$ cd ~/opt/hadoop-2.6.0
    hadoop@master:~/opt/hadoop-2.6.0$ rm -r tmp
    hadoop@master:~/opt/hadoop-2.6.0$ cd
    hadoop@master:~$ cd ~/opt
    hadoop@master:~/opt$ sudo tar -zcf ./hadoop-2.6.0.tar.gz ./hadoop-2.6.0
    [sudo] password for hadoop: 
    hadoop@master:~/opt$ scp ./hadoop-2.6.0.tar.gz slave1:/home/hadoop/opt

    在slave1上面执行:

    hadoop@slave1:~/opt$ sudo tar -zxf hadoop-2.6.0.tar.gz
    hadoop@slave1:~$ sudo chown -R hadoop:hadoop /home/hadoop/opt/hadoop-2.6.0

    接下来在master节点上启动hadoop:

    hadoop@master:~/opt/hadoop-2.6.0$ bin/hdfs namenode -format
    hadoop@master:~/opt/hadoop-2.6.0$ sbin/start-dfs.sh
    hadoop@master:~/opt/hadoop-2.6.0$ sbin/start-yarn.sh

    通过jps查看各个节点所启动的进程,首先查看master:

    3815 NameNode
    4009 SecondaryNameNode
    4330 Jps
    4143 ResourceManager

    可以看到master节点启动了NameNode、SecondaryNameNode、ResourceManager进程。

    接着查看slave1:

    3606 Jps
    3510 NodeManager
    3390 DataNode

    slave节点则启动了DataNode和NodeManager进程。

    另外也可以在master节点上通过命令bin/hdfs dfsadmin -report查看DataNode是否正常启动。

    hadoop@master:~/opt/hadoop-2.6.0$ bin/hdfs dfsadmin -report
    Configured Capacity: 20474130432 (19.07 GB)
    Present Capacity: 14381412352 (13.39 GB)
    DFS Remaining: 14381387776 (13.39 GB)
    DFS Used: 24576 (24 KB)
    DFS Used%: 0.00%
    Under replicated blocks: 0
    Blocks with corrupt replicas: 0
    Missing blocks: 0

    -------------------------------------------------
    Live datanodes (1):

    Name: 192.168.111.135:50010 (slave1)
    Hostname: slave1
    Decommission Status : Normal
    Configured Capacity: 20474130432 (19.07 GB)
    DFS Used: 24576 (24 KB)
    Non DFS Used: 6092718080 (5.67 GB)
    DFS Remaining: 14381387776 (13.39 GB)
    DFS Used%: 0.00%
    DFS Remaining%: 70.24%
    Configured Cache Capacity: 0 (0 B)
    Cache Used: 0 (0 B)
    Cache Remaining: 0 (0 B)
    Cache Used%: 100.00%
    Cache Remaining%: 0.00%
    Xceivers: 1
    Last contact: Thu May 14 02:28:49 PDT 2015

    也可以通过Web页面看到查看DataNode和NameNode的状态,http://master:50070/

    关闭Hadoop集群也是在master节点上执行:

    $ sbin/stop-dfs.sh
    $ sbin/stop-yarn.sh

    执行WordCount实例

    执行WordCount实例过程与伪分布式模式一样。首先创建所需的几个目录:

    hadoop@master:~/opt/hadoop-2.6.0$ bin/hdfs dfs -mkdir -p /user/hadoop

    将etc/hadoop中的文件作为输入文件复制到分布式文件系统中。

    hadoop@master:~/opt/hadoop-2.6.0$ bin/hdfs dfs -put etc/hadoop input 

    接着就可以运行MapReduce作业:

    hadoop@master:~/opt/hadoop-2.6.0$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'

    显示运行时的信息、Job的进度。整个过程可能会比较慢

    同样可以通过Web界面查看任务进度 http://master:8088/cluster

    参考资料

    http://www.powerxing.com/install-hadoop-cluster/

    http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html

  • 相关阅读:
    组装query,query汇总,query字段
    POJ 1276, Cash Machine
    POJ 1129, Channel Allocation
    POJ 2531, Network Saboteur
    POJ 1837, Balance
    POJ 3278, Catch That Cow
    POJ 2676, Sudoku
    POJ 3126, Prime Path
    POJ 3414, Pots
    POJ 1426, Find The Multiple
  • 原文地址:https://www.cnblogs.com/myresearch/p/hadoop-full-distributed-operation.html
Copyright © 2011-2022 走看看