Hadoop2.7.1集群搭建

菜鸟配置Hadoop2.7.1集群搭建

本文章是在虚拟机下安装Hadoop集群
1.安装虚拟机环境
电脑环境是64位操作系统,故采用64位Vmware虚拟机,64 centos6.4 操作系统,本人安装了三台虚拟机分别为:
- NameNode: 192.168.234.88 bdoc1(主机名)
- DataNode: 192.168.234.89 bdoc2(主机名)
- DataNode: 192.168.234.90 bdoc3(主机名)
2.配置环境
2.1修改主机名(3台都需要)
vim /etc/sysconfig/network

    NETWORKING=yes
    HOSTNAME=bdoc1   

    NETWORKING=yes
    HOSTNAME=bdoc2 

    NETWORKING=yes
    HOSTNAME=bdoc3
需要重启 reboot 才能生效!

2.2 修改每台虚拟机的IP(保证三台之间能够相互通信)
eg:

     vim /etc/sysconfig/network-scripts/ifcfg-eth0

        DEVICE="eth0"
        BOOTPROTO="static"               ###
        HWADDR="00:0C:29:3C:BF:E7"
        IPV6INIT="yes"
        NM_CONTROLLED="yes"
        ONBOOT="yes"
        TYPE="Ethernet"
        UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
        IPADDR="192.168.234.88"           ###
        NETMASK="255.255.255.0"           ###
        GATEWAY="192.168.234.1"           ###
        DNS1="114.114.114.114"     (大多配置8.8.8.8 也可以不用加)
        DNS2="8.8.4.4"    (可以不用加)
        “#” 代表需要修改的地方!

2.3修改主机名和IP的映射关系(每台都需要)

    vim /etc/hosts

     NameNode(bdoc1):       
     192.168.234.88  bdoc1
     192.168.234.89  bdoc2
     192.168.234.90  bdoc3

    DataNode(bdoc2):        
     192.168.234.88  bdoc1
    192.168.234.89  bdoc2

    DateaNode(bdoc3):       
     192.168.234.88  bdoc1
    192.168.234.90  bdoc3   

2.4关闭防火墙(每台)

    #关闭防火墙
    service iptables stop
    #查看防火墙状态
    service iptables status
    #查看防火墙开机启动状态
    chkconfig iptables --list
    #关闭防火墙开机启动
    chkconfig iptables off

2.5重启Linux reboot

3.安装jdk (3台都需要)

3.1上传

  可以通过securecrt 或Filezilla ,也可下载

3.2解压jdk

    #创建文件夹
    mkdir /usr/java
    #解压
    tar -zxvf jdk-7u79-linux-x64.tar.gz  -C /usr/java/

3.3将java添加到环境变量中

    vim /etc/profile
    #在文件最后添加
    export JAVA_HOME=/usr/java/jdk1.7.0_79
    export PATH=$PATH:$JAVA_HOME/bin

    #刷新配置
    source /etc/profile

4.安装hadoop2.7.1

4.1 上传或下载hadoop(64位的)
4.2 解压Hadoop (3台都需要)
   本人解压在 /root/bdoc/ 目录下
    tar -zxvf hadoop-2.7.1-x64.tar.gz -C /root/bdoc/  
4.3 配置Hadoop环境
   所有的配置都是在/root/bdoc/hadoop-2.7.1/etc/hadoop/ 下修改
  1)第一个:hadoop-env.sh
    vim hadoop-env.sh
    export JAVA_HOME=/usr/java/jdk1.7.0_79
  2)第二个:core-site.xml(这个配置三台机器都需要配置,其他的只是主服务器bdoc1配置)
    <!-- 指定HDFS的NameNode地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://bdoc1:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/bdoc/hadoop-2.7.1/tmp</value>
    </property>
    <property>
       <name>io.file.buffer.size</name>
       <value>4096</value>
    </property
   3)第三个:hdfs-site.xml
    <property>
        <name>dfs.nameservices</name>
        <value>bdoc—hadoop-cluster</value>
    </property>
    <!-- 指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>

  4)第四个:mapred-site.xml 
    首先 mv mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

  5)第五个:yarn-site.xml
    <!-- 指定YARN的(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>bdoc1</value>
    </property>
    <!-- reduce获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
 6)第六个:slaves
      vim slaves
      bdoc2
      bdoc3

4.4 将hadoop添加到环境变量

vim /etc/proflie
    export HADOOP_HOME=/bdoc1/hadoop-2.7.1
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  source /etc/profile

5.在bdoc1上 格式化NameNode
hdfs namenode -format (hadoop namenode -format)
6. 启动hadoop
先启动HDFS
start-dfs.sh
再启动yarn
start-yarn.sh

  1. 验证是否启动成功
    使用jps命令验证:
    bdoc1:
    27408 NameNode
    28218 Jps
    27643 SecondaryNameNode
    27803 ResourceManager

    bdoc2 bdoc3使用jps出现:
    NodeManager
    jps
    DataNode
    

    可以进入
    http:// 192.168.234.88:50070 (HDFS管理界面)查看DataNode的状态(live or dead)
    进入:http:// 192.168.234.88:8088 (MR管理界面)

注意:在第5步之前最好是要配置下ssh免登陆
因为是bdoc1启动时要访问bdoc2,bdoc3,所以在访问时会提示输入密码,为了避免麻烦,最好是配置免登陆。
bdoc1要访问bdoc2,bdoc3,则首先要在bdoc1上生成秘钥,将生成的秘钥拷贝到bdoc2,bdoc3指定的目录下,具体过程如下:

进入到bdoc1机器的home目录
cd ~/.ssh

ssh-keygen -t rsa (敲击回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
 cp id_rsa.pub authorized_keys
将公钥authorized_keys拷贝到要免登陆的机器(bdoc1,bdoc2)上
 scp authorized_keys [email protected]:/root/.ssh/ 
 scp authorized_keys [email protected]:/root/.ssh/   
ok,验证无密码登录:
 ssh [email protected]

trouble shooting:
大部分故障都是因为权限引起的, 如果互访中出现问题建议修改为如下权限: 建议修改为如下权限:
用户主目录: 755 及以下权限
.ssh目录 :700
id_rsa : 600
authorized_keys :700
id_rsa.pub : 700

你可能感兴趣的:(Hadoop2.7.1集群搭建)