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

      环境准备

      两台centoos系统服务器

      H30(192.168.3.238)

      H31(192.168.3.237)

      H30为master,H31为slave,slave后续还可以再加机器;

      先通过xshell 登录到H30进行配置

      1、添加主机名解析

        将如下记录添加到/etc/hosts 中

          192.168.3.238   H30

          192.168.3.237   H31

        H31那台机器上也要执行同样的操作,注意要保证两台机器要内互通,并且主机名要为H30和H31

        如果主机名不一样可在/etc/sysconfig/network中进行修改,修改完记得重启机器生效;

      2、安装java环境

        yum remove java* -- 卸载之前安装的版本

        yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel --通过yum安装jdk1.7

        执行rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac'可查看安装路径

        

        将/bin/javac前面的那一段作为JAVA_HOME的值,在~/.bashrc.sh文件底部添加

        export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.141.x86_64/

        然后执行source ~/.bashrc.sh 让配置生效;

      3、配置ssh免密码登录

        先查看是否安装ssh

         rpm -qa | grep ssh

        没有安装则执行如下命令进行安装

         yum install openssh-clients

         yum install openssh-server

        安装完成后切换的~/.ssh

          ssh-keygen -t rsa  --执行三次回车

          cat id_rsa.pub >> authorized_keys  -- 加入授权

          chmod 600 ./authorized_keys  --  修改文件权限

        将生成的authorized_keys  拷贝到H31上

          scp ./authorized_keys  root@H31:~/.ssh/  -- 需要输入那台机器的密码

        拷贝完成执行shh H31 无需输入密码就可登录则表示安装成功

      4、安装hadoop 

        4.1,下载

          Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载;

          下载时请下载 hadoop-2.x.y.tar.gz这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用

        4.2,解压

          下载完成后执行如下命令

            tar -xzvf  hadoop-2.6.1.tar.gz  -C /usr/local   -- 将包解压到/usr/local 中

            mv hadoop-2.6.1 hadoop   --重命名

            chown -R root:root hadoop  -- 修改文件属主和属组

        4.3,配置hadoop环境变量

          配置hadoop环境变量,将如下内容拷贝到~/.bashrc文件底部

    export HADOOP_HOME=/usr/local/hadoop #此处为刚刚解压出来重命名的hadoop路径
    export HADOOP_HOME=/usr/local/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

        4.4,修改hadoop配置

          hadoop/etc/hadoop下有slavescore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 五个文件需要修改

          slaves( 如需新增slave,则要将主机名填入到此文件中)

            H31  

          core-site.xml

    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://H30: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>

          hdfs-site.xml

    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>H30:50090</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>1</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>
    </configuration>

          mapred-site.xml

    <configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>H30:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>H30:19888</value>
            </property>
    </configuration>

           yarn-site.xml

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

         4.5,配置slave

          tar -zcf hadoop.tar.gz ./hadoop   --  对配置好的master hadoop目录打包,如果hadoop中已经生成了tmp要进行删除

          scp ./hadoop.tar.gz H31:/usr/local  --通过scp命令将打包好的hadoop发送到H31的/usrlocal中

          传送完成后通过xshell 登录到H31上,按照步骤 2 的操作安装好jdk,再按照步骤 4.3 将hadoop环境变量添加好后切入到/usr/local目录

            tar -zxf  hadoop.tar.gz -C /usr/local  -- 将H31拷贝过来的包进行解压到/usr/local中

      5、格式化master节点

        重新回到H30机器,执行

          hdfs namenode -format    -- 注意只有在首次运行需要格式化,之后不需要了

      6、启动hadoop

        在启动前先对防火墙进行关闭,如果H31也开启了防火墙同样要进行关闭

          service iptables stop

        接着可以启动 hadoop 了

          start-dfs.sh  -- 关闭为 stop-dfs.sh
          start-yarn.sh  -- 关闭为 stop-yarn.sh
          mr-jobhistory-daemon.sh start historyserver    -- 关闭为 mr-jobhistory-daemon.sh stop historyserver

         通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程,如下图所示:

          

        在H31中通过jps则如下图所示:

          

        也可以通过 Web 页面看到查看 DataNode 和 NameNode 的状态:http://H30:50070/。如果不成功,可以通过启动日志排查原因。

      7、测试分布式实例

        hdfs dfs -mkdir -p /user/    --在fdfs中创建/user目录

        hdfs dfs -mkdir -p /user/root  --在user目录中创建root目录

        hdfs dfs -mkdir -p  input    --在root目录中创建input,不加 / 则会取/user+当前用户名作为路径

        hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input  -- 往input目录中拷入测试文件

        hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'  --  执行测试

        执行完成后可通过hdfs dfs -ls  output  看到有结果文件输出

    好记性不如烂笔头^_^!
  • 相关阅读:
    Start Developing iOS Apps (Swift) 开始开发iOS应用(Swift)
    ansible copy file
    多个sshkey 指定key来clone仓库
    elastic search 日期为string类型导致视图无法展示时间的解决办法
    ubuntu 安装php 报错解决
    ruby hash 默认值的问题
    11.Mysql 之MHA(高可用)
    10. 主从复制-主从复制(基于GTID)--附加半同步复制
    9 .mysql的备份与恢复
    11.Mysql之回表、最左匹配、索引下推
  • 原文地址:https://www.cnblogs.com/luobiao320/p/7380841.html
Copyright © 2011-2022 走看看