• 【架构思考】Hadoop集群部署实战


    模块

    以三台机器为例,分别为 hadoop000 ,hadoop001,hadoop002 。在这些机器上我需要部署哪些模块呢?

    • HDFS: NameNode,DataNode
    • YARN: ResourceManager,NodeManager

    如下图所示:

    P1

    修改 hostname 与 hosts

    以机器1为例,其它机器类似。

    修改hostname

    vim /etc/hostname

    hadoop000
    

    修改ip映射

    vim /etc/hosts

    192.168.199.100 localhost
    192.168.199.100 hadoop000
    192.168.199.101 hadoop001
    192.168.199.102 hadoop002
    

    注:不能简单地只copy-paste到其它机器上,需要适当修改。

    配置 ssh 登录

    首先,每台机器上需要已安装 ssh 。

    然后,到每台机器上,分别生成一遍 rsa key pair :ssh-keygen -t rsa

    最后,将 public key 拷贝到其它机器上,以机器1为例,其它机器类似。

    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
    ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002
    

    (注:SSH免密码登录详解,可参考这一篇 -> https://www.cnblogs.com/maxstack/p/13609285.html

    安装 JDK

    首先,在机器1上安装并配置JDK。

    • 在 hadoop000 上部署 jdk ,download and unzip
    • 将 jdk bin 配置到系统环境变量 bash_profile ,config JAVA_HOME and PATH

    然后,将机器1的东西拷贝到其它机器上。(注意拷贝的目录需要保持一致)

    scp -r jdk1.8.0_91 hadoop@hadoop001:~/app/java/
    scp -r jdk1.8.0_91 hadoop@hadoop002:~/app/java/
    
    scp ~/.bash_profile hadoop@hadoop001:~/
    scp ~/.bash_profile hadoop@hadoop002:~/
    

    部署 Hadoop

    和 JDK 类似,先在机器1上配置好,然后拷贝到其它机器上。

    1. download hadooop and unzip

    2. configuration change

    2.1 hadoop-env.sh

    配置 JAVA_HOME

    JAVA_HOME=XXX
    

    2.2 core-site.xml

    配置主节点

    <property>
    	<name>fs.default.name</name>
    	<value>hdfs://hadoop000:8020</value>
    </property>
    

    2.3 hdfs-site.xml

    配置存储目录

    <property>
      <name>dfs.namenode.name.dir</name>
      <value>/home/hadoop/app/tmp/dfs/name</value>
    </property>
    
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>/home/hadoop/app/tmp/dfs/data</value>
    </property>
    

    2.4 yarn-site.xml

    配置 yarn

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

    2.5 mapred-site.xml

    配置 mapreduce 框架

    <property>
    	<name>mapreduce.framework.name</name>
    	<value>yarn</value>
    </property>
    

    2.6 slaves

    配置从节点

    hadoop000
    hadoop001
    hadoop002
    

    3. copy to other machines

    scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop001:~/app/hadoop/
    scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop002:~/app/hadoop/
    
    scp ~/.bash_profile hadoop@hadoop001:~/
    scp ~/.bash_profile hadoop@hadoop002:~/
    

    4. format namenode

    到每台机器上,格式化 NN

    hadoop namenode -format
    

    启动 Cluster

    登录一台机器,比如 hadoop000 ,启动HDFS:

    ./start-dfs.sh
    

    同样地,启动 yarn:

    ./start-yarn.sh
    

    最后,到每台机器上使用jps,或者使用 UI ,观察模块启动情况。

  • 相关阅读:
    Linux下 高性能、易用、免费的ASP.NET服务器
    K-means算法
    K-means算法
    机器学习之深度学习
    机器学习之深度学习
    Tracking-Learning-Detection (TLD算法总结)
    Tracking-Learning-Detection (TLD算法总结)
    机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
    机器学习技法之Aggregation方法总结:Blending、Learning(Bagging、AdaBoost、Decision Tree)及其aggregation of aggregation
    迭代是人,递归是神(迭代与递归的总结:比较)
  • 原文地址:https://www.cnblogs.com/maxstack/p/14940157.html
Copyright © 2020-2023  润新知