• Hadoop集群环境搭建


    -----------------------------------------------------------

    自学记录,交流学习请发送邮件至gxz1984@gmail.com

    各节点的防火墙一定要关闭!

    -----------------------------------------------------------

    2015-3-26

    环境:

    操作系统ubuntu 14.10

    Hadoop 2.60

    JDK 1.7

    节点说明:

    192.168.47.133 master
    192.168.47.134 slave1
    192.168.47.135 slave2

    1、安装JDK

    下载jdk1.7,解压,复制【三个节点都需要安装】

    tar -xvzf jdk-7u75-linux-x64.tar.gz
    mkdir /opt/Java
    mv jdk1.7.0_75/ /opt/Java/jdk1.7

    环境变量设置

    vi .bashrc
    
    export JAVA_HOME=/opt/Java/jdk1.7
    export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

    source .bashrc

    测试安装是否成功
    java -version

    2、创建hadoop用户

    sudo useradd hadoop
    sudo passwd hadoop
    
    sudo mkdir /home/hadoop
    sudo chown hadoop:hadoop /home/hadoop
    
    #赋予hadoop用户sudo的权限
    sudo adduser hadoop sudo

    3、网络配置【修改机器名】

    sudo vim /etc/hostname
    sudo vim /etc/hosts
    
    192.168.47.133  master
    192.168.47.134  slave1
    192.168.47.135  slave2

    4、安装SSH server、配置SSH无密码登陆

    安装openssh
    sudo apt-get install openssh-server
    生成密钥 ssh-keygen -t rsa cd .ssh/ cp id_rsa.pub authorized_keys cd .. scp -r .ssh hadoop@slave1:/home/hadoop scp -r .ssh hadoop@slave2:/home/hadoop

    5、配置集群/分布式环境

    所有配置任务在master节点上完成,将配置好的程序拷贝到slave节点即可

    安装:

    sudo tar -zxvf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local   # 解压到/usr/local中
    sudo mv /usr/local/hadoop-2.6.0/ /usr/local/hadoop      # 将文件名改为hadoop
    sudo chown -R hadoop:hadoop /usr/local/hadoop       # 修改文件权限

    配置/usr/local/hadoop/etc/hadoop中的配置文件

    (1)文件slaves、masters

    192.168.47.134
    192.168.47.135

    masters没有,新建该文件,里面输入master节点的ip地址即可

    (2)文件 core-site.xml

    <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>file:///usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
      </property>
    </configuration>

    (3)文件hdfs-site.xml,因为有两个Slave,所以dfs.replication的值设为2。

    <configuration>
    
    <property>
        <name>dfs.nameservices</name>
        <value>hadoop-cluster1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///usr/local/hadoop/tmp/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    
    </configuration>

    (4)

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

    cp mapred-site.xml.template mapred-site.xml 

    然后配置修改如下

    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
      <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>master:50030</value>
      </property>
      <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
      </property>
    </configuration>

    (5)文件yarn-site.xml

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    </configuration>

    (6)文件hadoop-env.sh

    指定JAVA_HOME的路径

    export JAVA_HOME=/opt/Java/jdk1.7/

    完成配置,将hadoop整个目录发送到slave节点即可

    ===================================================

    6、启动hadoop

    在master节点上:
    cd /usr/local/hadoop/
    bin/hdfs namenode -format       # 首次运行需要执行初始化,后面不再需要
    sbin/start-all.sh
    
    通过jps查看各节点启动的服务
    可以看到Master节点启动了NameNode、ResourceManager进程。
    Slave节点则启动了DataNode和NodeManager进程。
    
    停止服务
    sbin/stop-all.sh

    7、测试

    执行WordCount实例过程首先创建所需的几个目录

    bin/hdfs dfs -mkdir /user
    bin/hdfs dfs -mkdir /user/hadoop

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

    bin/hdfs dfs -put etc/hadoop input

    接着就可以运行MapReduce作业了

    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar grep input output 'dfs[a-z.]+'

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

    参考教程:http://www.powerxing.com/install-hadoop-cluster-2-4-1/

    =======================================

    2017-07-16

    如果master节点的防火墙没有关闭,slave节点的logs会一直报错误:Problem connecting to server: master/192.168.138.101:9000

    然后一直在retry connect master

    关闭master的防火墙即可

    ---------------------------------------------

    如果slave节点的防火墙没有关闭,hadoop fs -put时没法执行成功,slave节点的防火墙关闭即可

    【再次重新安装忘了关闭防火墙捣鼓了一晚上!】

    ======================================

  • 相关阅读:
    深度学习中Embedding的理解
    Chrome 历史版本下载点
    [Angular] Inherit Parent Route Parameters by Default with ParamsInheritanceStrategy
    [Web] Use Web Speech API to make the browser speak out loud using SpeechSynthesis
    [React] useImperativeHandle + forwardRef
    [XState] Assignement actions
    [XState] Using global actions prop for testing
    [ML L9] Clustering (K-MEANS)
    html+php超大视频上传解决方案
    上传大型视频文件到服务器的分享
  • 原文地址:https://www.cnblogs.com/marost/p/4370094.html
Copyright © 2020-2023  润新知