zoukankan      html  css  js  c++  java
  • 腾讯云部署hadoop

    1.申请2-3台腾讯云服务器

    安全组编辑规则,允许ALL。这样hadoop集群服务器才能访问。

    2.安装JDK服务器

    jdk配置 **master,slave机器都要装jdk**

    -(1)上传JDK安装包到虚拟机/opt目录
    -(2)进入/opt目录,执行命令“rpm -ivh jdk-8u151-linux-x64.rpm”安装JDK(注意,自己手动输入-ivh命令)
    -(3)在vi /etc/profile添加

    export JAVA_HOME=/usr/java/jdk1.8.0_151
    export PATH=$PATH:$JAVA_HOME/bin
    执行source /etc/profile 使配置生效
    

    -(4)验证JDK是否配置成功,执行命令“java -version”

    3.设置SSH无密码登录

    ssh免密登录,很重要,否则不同机器无法访问 (1)云环境下主机ip设置,配置ip和master映射
    • master节点,vi /etc/hosts,修改后,执行source /etc/hosts,具体参考这个网址
    master内网云ip master
    slave1公网ip slave1
    

    修改主机名hostnamectl set-hostname master ,slave机器同操作。reboot机器可以看到主机名更改

    • slave节点,vi /etc/hosts,修改后,执行source /etc/hosts
    master内网云ip master
    slave1公网ip slave1
    

    (2)生成私有密钥id_rsa和公有密钥id_rsa.pub两个文件ssh-keygen -t rsa #接着按三次Enter键,ssh-keygen用来生成RSA类型的密钥以及管理该密钥,参数“-t”用于指定要创建的SSH密钥的类型为RSA
    (3)远程负责到各个机器

    ssh-copy-id -i /root/.ssh/id_rsa.pub master//依次输入yes,123456(root用户的密码)
    ssh-copy-id -i /root/.ssh/id_rsa.pub slave1
    ssh-copy-id -i /root/.ssh/id_rsa.pub slave2
    

    (4)验证是否设置无密码登录,依次输入

    ssh slave1
    ssh slave2
    ssh slave3
    

    注意,ssh配置存在问题,slave机器出现authorized_keys拒绝访问问题。由于你重新生成公钥,再次写入authorized_keys,会被拒绝,可以在slave机器上,用chmod修改文件权限,也会拒绝可以用如下命令解决

     进入slave机器的cd /root/.ssh/  目录,执行下面权限修改
      chattr -i authorized_keys #对文件解锁
      chmod 600 authorized_keys #修改文件为可读写权限
      进入master机器,执行ssh-copy-id -i /root/.ssh/id_rsa.pub slave1 #slave生成新的公钥
    

    4.配置Hadoop集群

    配置Hadoop集群 1.通过xmanager的Xftp上传hadoop-2.6.5.tar.gz文件到/opt目录

    2.解压缩hadoop-2.6.5.tar.gz 文件,tar -zxf hadoop-2.6.5.tar.gz -C /usr/local ,解压后即可,看到/usr/local/hadoop-2.6.5文件夹

    3.配置Hadoop,进入目录:cd /usr/local/hadoop-2.6.5/etc/hadoop/

    4.依次修改下面的文件:

    (1) vi core-site.xml

    <configuration>
        <property>
        <name>fs.defaultFS</name>  
          <value>hdfs://master:8020</value>  
          </property>  
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/var/log/hadoop/tmp</value>
        </property>
    </configuration>
    

    (2)vi hadoop-env.sh ,export JAVA_HOME=/usr/java/jdk1.8.0_151
    (3) vi hdfs-site.xml
    注意:/data/hadoop/hdfs/name/里面存放名称节点信息。/data/hadoop/hdfs/data/存放datanode节点信息

    <configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/hdfs/data</value>
    </property>
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>master:50090</value>
    </property>
    <property>
         <name>dfs.replication</name>
         <value>3</value>
    </property>
    </configuration>
    

    注意:replication的value表示有几台slave,1台就写1
    (4) mapred-site.xml,没有这个文件,执行复制 cp mapred-site.xml.template mapred-site.xml

    <configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- jobhistory properties -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
         <name>mapreduce.jobhistory.webapp.address</name>
         <value>master:19888</value>
    </property>
    </configuration>
    

    (5)vi yarn-site.xml

    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
      </property>    
      <property>
        <name>yarn.resourcemanager.address</name>
        <value>${yarn.resourcemanager.hostname}:8032</value>
      </property>
      <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>${yarn.resourcemanager.hostname}:8030</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>${yarn.resourcemanager.hostname}:8088</value>
      </property>
      <property>
        <name>yarn.resourcemanager.webapp.https.address</name>
        <value>${yarn.resourcemanager.hostname}:8090</value>
      </property>
      <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>${yarn.resourcemanager.hostname}:8031</value>
      </property>
      <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>${yarn.resourcemanager.hostname}:8033</value>
      </property>
      <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/data/hadoop/yarn/local</value>
      </property>
      <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
      </property>
      <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/tmp/logs</value>
      </property>
    <property> 
     <name>yarn.log.server.url</name> 
     <value>http://master:19888/jobhistory/logs/</value>
     <description>URL for job history server</description>
    </property>
    <property>
       <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
      </property>
     <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
          </property>
    <property>  
            <name>yarn.nodemanager.resource.memory-mb</name>  
            <value>2048</value>  
     </property>  
     <property>  
            <name>yarn.scheduler.minimum-allocation-mb</name>  
            <value>512</value>  
     </property>   
     <property>  
            <name>yarn.scheduler.maximum-allocation-mb</name>  
            <value>4096</value>  
     </property> 
     <property> 
        <name>mapreduce.map.memory.mb</name> 
        <value>2048</value> 
     </property> 
     <property> 
        <name>mapreduce.reduce.memory.mb</name> 
        <value>2048</value> 
     </property> 
     <property> 
        <name>yarn.nodemanager.resource.cpu-vcores</name> 
        <value>1</value> 
     </property>
    </configuration>
    

    (6)vi yarn-env.sh, export JAVA_HOME=/usr/java/jdk1.8.0_151

    5.vi slaves,删除localhost,添加:

    slave1
    slave2
    slave3
    

    6.拷贝hadoop安装文件到集群slave节点
    scp -r /usr/local/hadoop-2.6.5 slave1:/usr/local
    scp -r /usr/local/hadoop-2.6.5 slave2:/usr/local
    scp -r /usr/local/hadoop-2.6.5 slave3:/usr/local

    7.在/etc/profile添加Hadoop路径

    export HADOOP_HOME=/usr/local/hadoop-2.6.5
    export PATH=$HADOOP_HOME/bin:$PATH
    

    执行source /etc/profile使修改生效

    8.格式化NameNode,进入目录,`cd /usr/local/hadoop-2.6.5/bin',执行格式化,'./hdfs namenode -format'

    格式化不在改目录,可以用hdfs命令:hdfs namenode -format

    9.启动集群,进入目录,cd /usr/local/hadoop-2.6.5/sbin
    执行启动:

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

    或者./start-all.sh

    关闭集群的命令。./stop-all.sh

    10.使用jps,查看进程
    master节点信息如下

    [root@master sbin]# jps
    1765 NameNode
    1929 SecondaryNameNode
    2378 JobHistoryServer
    2412 Jps
    2077 ResourceManager
    

    slave节点jps信息如下:

    [root@slave1 ~]# jps
    1844 Jps
    1612 DataNode
    1711 NodeManager
    

    11.在Windows下C:WindowsSystem32driversetchosts添加IP映射

    公网腾讯云ip master master.centos.com
    公网腾讯云ip slave1 slave1.centos.com
    公网腾讯云ip slave2 slave2.centos.com
    公网腾讯云ip slave3 slave3.centos.com
    
    1. 浏览器查看:
    http://master:50070
    http://master:8088
    

    5.常见问题

    5.1 datanode、namenode 无法启动

    cd /usr/local/hadoop-2.6.5/logs
    ls #查找datanode的log文件查看
    cat hadoop-root-datanode-VM-0-14-centos.log #查找cid值,复制后面内容
    master节点进入vi /data/hadoop/hdfs/name/current/VERSION 更改clusterID为新的内容。
    slave节点进入vi /data/hadoop/hdfs/data/current/VERSION 更改clusterID为新的内容。
    
    • 或者删除namenode,datanode下current文件夹.
    1.master节点操作
    cd /data/hadoop/hdfs/name/
    rm -rf current
    2.slave节点操作
    cd /data/hadoop/hdfs/data/
    rm -rf current
    集群关闭再dfs命令格式化那么node节点:`hdfs namenode -format `,重启集群则可以看到。
    

    5.2 mapreduce job卡住问题

    • 测试mapreduce 样例
      hadoop jar /usr/local/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /test/bb.txt /test/wd1
    • kill MapReduce程序命令yarn application -kill application_id
    • 打开mapreduce日志文件:进入$HADOOP_HOME/sbin/ ,执行命令 ./mr-jobhistory-daemon.sh start historyserver,再进入http://master:50070/logs/,就可以看到MapReduce日志。

    6.参考资料

    -亚马逊云部署hadoop

  • 相关阅读:
    C#中使用SendMessage在进程间传递数据的实例
    解决C# WINFORM程序只允许运行一个实例的几种方法详解
    实现WinForm窗体的美化(借助第三方控件)
    sql2008拒绝了对对象 (数据库 ,架构'dbo')的SELECT权限
    在一个SQL Server表中一行的多个列找出最大值
    如何搭建MVC + EF 框架
    灵活运用 SQL SERVER FOR XML PATH
    CentOS7切换到root用户和退回普通用户
    Zuul Read Time out 错误
    neo4j---删除关系和节点
  • 原文地址:https://www.cnblogs.com/linli069/p/13644705.html
Copyright © 2011-2022 走看看