zoukankan      html  css  js  c++  java
  • Hadoop集群安装

    Hadoop集群安装

    安装环境

    OS
    CentOS 6.5 (cat /etc/issue查看)

    IP

    ip hostname 定位(新hostname)
    ip1 vm1 Master
    ip2 vm2 Slave1
    ip3 vm2 Slave2

    用户
    建议新建hadoop用户

    $ sudo useradd -m hadoop -s /bin/bash  # 建立新用户,设置用户默认shell
    $ sudo passwd hadoop # 设置密码
    $ su hadoop  # 切换用户
    

    防火墙
    需要关闭防火墙

    大致步骤

    1. 划分Master和slave
    2. 配置ssh免密登录
    3. 配置Master的JAVA环境,安装Hadoop
    4. 配置Slave的JAVA环境,安装Hadoop
    5. 启动,测试

    主从划分

    1. 为了便于区分,可以选择修改hostname(/etc/sysconfig/network CentOS)
    2. 按照上述表格选择修改/etc/hosts(节点映射关系),此时 ping ip1ping Master效果相同

    PS:

    1. hostname(uname -a) 查看主机名
    2. hostname重启后才可生效

    配置ssh免秘钥登录

    目的是为了免去每次ssh登录都要输入密码的麻烦,原理是公钥加密。

    1. Master/Slave1/Slave2分别生成公钥
    cd ~/.ssh               # 若没有该目录,可执行ssh localhost
    rm ./id_rsa*            # 删除旧的公匙
    ssh-keygen -t rsa       # 生成新公钥
    
    1. 保存公钥
    cat ./id_rsa.pub >> ./authorized_keys
    

    此时可免密登录localhost
    3. 将Slave1和Slave2密钥存入Master主机,并加入到主机授权文件中

    scp ~/.ssh/id_dsa.pub hadoop@master:/home/hadoop/.ssh/id_dsa.pub.slave01
    scp ~/.ssh/id_dsa.pub hadoop@master:/home/hadoop/.ssh/id_dsa.pub.slave02
    
    cat id_dsa.pub.slave01 >> authorized_keys
    cat id_dsa.pub.slave02 >> authorized_keys
    
    1. 将Master授权文件拷入Slave中,实现互通
    scp authorized_keys hadoop@slave1:/home/hadoop/.ssh/authorized_keys
    scp authorized_keys hadoop@slave2:/home/hadoop/.ssh/authorized_keys
    

    配置JDK

    安装JDK( 可选Oracle 的 JDK,或是 OpenJDK),详细可参见链接

    主要有命令行和压缩包两种方法(需要注意JDK版本与Hadoop版本,最新版Hadoop(3.0.0)需要安装JAVA8(参考)),步骤如下:

    1. 命令行安装(CentOS```sudo yum install java-1.7.0-openjdk-devel
    2. 配置以下环境变量(路劲按实际情况填写),``` vi .bashrc```
    

    Java Env

    JAVA_HOME=/usr/java/jdk1.7.0_79
    JRE_HOME=/usr/java/jdk1.7.0_79/jre
    CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    export JAVA_HOME JRE_HOME CLASS_PATH PATH

    ```source .bash_profile```使之生效
    3. 使用```java -version```验证是否安装成功
    
    #### 安装Hadoop
    
    过程和装JDK差不多,都是下载,解压,然后配置变量。
    
    

    export HADOOP_INSTALL=/usr/local/hadoop
    export PATH=$PATH:$HADOOP_INSTALL/bin
    export PATH=$PATH:$HADOOP_INSTALL/sbin
    export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_HOME=$HADOOP_INSTALL
    export HADOOP_HDFS_HOME=$HADOOP_INSTALL
    export YARN_HOME=$HADOOP_INSTALL
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
    export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"

    
    ```source .bashrc```使配置生效,使用```hadoop```来验证是否安装成功
    
    #### 配置
    
    正常启动集群需要修改```/hadoop/etc/hadoop```中的几个文件,slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。
    
    1. slaves
     DataNode 的主机名写入该文件,每行一个
     2. core-site.xml
    
    
    fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /opt/hadoop-2.6.4/tmp <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
    1. mapred-site.xml
     <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
    1. yarn-site.xml
     <configuration>
    
    <!-- Site specific YARN configuration properties -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
        </property>
    </configuration>
    

    PS:配置好后,将这些文件复制到slave机器。

    启动

    首次启动在Master节点执行NameNode的格式化:
    hdfs namenode -format # 首次运行需要执行初始化,之后不需要

    启动集群

    start-dfs.sh
    start-yarn.sh
    mr-jobhistory-daemon.sh start historyserver
    

    使用jps命令查看节点启动的进程,Master和slave上均可使用。

    使用hdfs dfsadmin -report可以查看Datanode是否成功启动

    启动后问题

    1. 浏览器访问9000端口被拒绝
      原因,没有格式化hdfs(注意:本身9000端口也不可以通过浏览器访问,否则会出现问题2)
      https://stackoverflow.com/questions/18322102/hadoop-connection-refused-on-port-9000

    2. It looks like you are making an HTTP request to a Hadoop IPC port. This is not the correct port for the web interface on this daemon.
      https://stackoverflow.com/questions/20216614/hadoop-2-2-0-it-looks-like-you-are-making-an-http-request-to-a-hadoop-ipc-port

    3. 浏览器默认端口
      Resource Manager: http://hadoop1:8088
      Web UI of the NameNode daemon: http://hadoop1:50070
      HDFS NameNode web interface: http://hadoop1:8042

    参考:

    1. http://www.powerxing.com/install-hadoop-cluster/ (很详细,推荐看这个)

    PS:
    另外,可以通过Cloudera来安装,等尝试后会记录一下,有兴趣的同学可以先搜一下

    PPS:
    二维码仅做测试用,看不过去的轻(绕)喷(行)

  • 相关阅读:
    LyX使用中的一些问题
    Mac OS apache php配置
    MySQL utf8mb4 字符集:支持 emoji 表情符号
    java.util.NoSuchElementException: Timeout waiting for idle object
    MyEclipse 2014跟2015破解
    No row with the given identifier exists:
    Android启动icon切图大小
    Android接入百度自动更新SDK
    Android自定义spinner下拉框实现的实现
    android给View设置边框 填充颜色 弧度
  • 原文地址:https://www.cnblogs.com/wswang/p/7160110.html
Copyright © 2011-2022 走看看