美文网首页我爱编程
Hadoop集群介绍和安装

Hadoop集群介绍和安装

作者: 万越天 | 来源:发表于2017-11-10 13:26 被阅读0次

    Hadoop简介

    Hadoop是用于存储数据和商用硬件集群运行应用程序的开源软件框架,它提供了海量存储任何类型的数据,极大的处理能力和处理几乎无限的并发任务或作业的能力。

    Hadoop的优势

    Hadoop博得广大人群眼球的主要原因是它能够存储和处理大两数据的能力,可以支持任何类型的数据,计算快;随着数据量和品种的不断增加,特别是社交媒体和物联网行业,Hadoop是一个重要的考虑因素,其中使用Hadoop的优势如下:

    • 计算能力:它的分布式计算模型快速处理大数据,用的越多计算节点,数据的处理能力会更大;
    • 灵活性:不同于传统的关系型数据库,你不要存放前必须进行预处理的数据,只要需要使用,可以保存尽可能多的数据,并决定以后怎么使用它,这包括文本、图像和视频的非结构化数据;
    • 容错能力:数据和应用程序处理保护,以防止硬件故障,如果一个节点出现故障,作业自动重定向到其他的节点,以确分布式计算不会失败,它会自动存储所有数据的多个副本;
    • 低成本:开源框架是免费的,使用商业硬件来存储大量数据;
    • 可扩展性:可以轻松简单地通过增加更多的节点增加你的系统。

    Hadoop组件

    • Hadoop Common -- 其它Hadoop的模块使用的库和工具
    • Hadoop Distributed File System (HDFS) -- 存储在多台计算机的数据,恕不另行组织基于Java的可扩展系统。
    • MapReduce -- 软件编程模型的并行处理大型数据集
    • YARN -- 从分布式应用程序的调度和处理资源请求的资源管理框架。

    其他Hadoop相关组件

    • Ambari™:配置管理和监控的Apache Hadoop集群基于Web的工具,其中包括Hadoop的HDFS,MapReduce的Hadoop的Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig and Sqoop支持,Ambari还提供查看集群运行状态,如热图,并直观地查看MapReduce的Pig和Hive应用非常久远的功能,诊断一个用户友好的方式表现自己的能力特点的仪表板。
    • Avro的™:数据序列化系统
    • Chukwa™:用于管理大型分布式系统的数据采集系统。
    • HBase的™:支持大表结构化数据存储可扩展的分布式数据库。
    • Hive™:数据仓库基础设施,提供数据汇总和及时查询。
    • Mahout™:一种可扩展的机器学习和数据挖掘库。
    • Pig™:并行计算的高级数据流语言和执行框架。
    • Spark™:Hadoop的数据的快速和通用计算引擎。Spark提供了支持广泛的应用,包括ETL,机器学习,流处理和图形计算的简单和表现的编程模型。
    • Tez™:广义数据流编程框架,建立在Hadoop的YRAN,它提供了一个强大而灵活的引擎来执行任务的任意DAG来处理批处理和交互式的使用数据情况,TEZ正在通过Hive,pig和Hadoop的生态系统中其他框架,也可以通过其他商业软件(例如:ETL工具)以取代的Hadoop MapReduce的™作为底层执行引擎。
    • ZooKeeper的™:分布式应用的高性能协调服务。

    Hadoop集群安装

    主机规划:

    序号 ip 主机名 角色
    1 110.12.4.92 LFTd-Hadoop01 NodeManager/ResourceManager/SecondaryNameNode/DataNode/NameNode
    2 110.12.4.93 LFTd-Hadoop02 NodeManager/DataNode
    3 110.12.4.94 LFTd-Hadoop03 NodeManager/DataNode

    Step 1 安装配置Java环境

    在所有主机安装配置Java环境,命令如下:

    # java -version
    java version "1.8.0_92"
    Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
    

    Step 2 创建hadoop用户

    在所有主机创建hadoop用户并配置密码,命令如下:

    # useradd hadoop
    # passwd hadoop
    

    Step 3 配置本地hosts解析

    在所有主机配置hosts解析,命令如下:

    10.12.4.92  master hadoop-namenode LFTd-Hadoop01
    10.12.4.93  slave01 hadoop-datanode-1 LFTd-Hadoop02
    10.12.4.94  slave02 hadoop-datanode-2 LFTd-Hadoop03
    

    Step 4 配置ssh免密登陆

    在所有主机配置ssh免密登陆,命令如下:

    # su - hadoop
    $ ssh-keygen -t rsa
    $ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-namenode
    $ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-1
    $ ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@hadoop-datanode-2
    $ chmod 0600 ~/.ssh/authorized_keys
    

    Step 5 安装hadoop源码包

    在所有主机下载安装hadoop源码包,命令如下:

    # mkdir -p /opt/hadoop
    # chown hadoop:hadoop /opt/hadoop
    # su - hadoop
    $ cd /opt/hadoop
    $ wget http://www-us.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
    $ tar xzf hadoop-2.7.3.tar.gz
    $ ln -s /opt/hadoop/hadoop-2.7.3 /opt/hadoop/hadoop
    

    Step 6 配置hadoop用户环境变量

    为所有主机配置hadoop用户的环境变量,命令如下:

    $ cat .bash_profile 
    export JAVA_HOME=/usr/local/jdk
    export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
    export HADOOP_PREFIX=/opt/hadoop/hadoop
    export HADOOP_HOME=/opt/hadoop/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:$JAVA_HOME/jre/bin:$JAVA_HOME/bin
    

    Step 7 修改hadoop配置文件

    在master进行修改hadoop配置文件:

    cd $HADOOP_HOME/etc/hadoop
    
    

    core-site.xml:

    $ cat core-site.xml 
    <configuration>
          <property>
                <name>fs.defaultFS</name>
    
                    <value>hdfs://master:9000</value>
    
          </property>
    
          <property>
                    <name>io.file.buffer.size</name>
    
                    <value>131072</value>
    
          </property>
    
          <property>
    
                    <name>hadoop.tmp.dir</name>
    
                    <value>file:/opt/hadoop/hadoop/tmp</value>
    
                    <description>Abase for other temporary directories.</description>
    
            </property>
    <property>
            <name>dfs.name.dir</name>
            <value>/opt/hadoop/dfs/name/</value>
        </property>
    
            <property>
    
                  <name>hadoop.proxyuser.worker.hosts</name>
    
                  <value>*</value>
    
            </property>
    
            <property>
    
                  <name>hadoop.proxyuser.worker.groups</name>
    
                  <value>*</value>
    
          </property>
      
          <property>
                  <name>fs.default.name</name>
                  <value>hdfs://hadoop-namenode:9000/</value>
          </property>
          <property>
                  <name>io.file.buffer.size</name>
                  <value>4096</value>
          </property>
          <property>
                  <name>hadoop.tmp.dir</name>
                  <value>/opt/hadoop/hadoop/tmp</value>
          </property>
          <property>
                  <name>dfs.permissions</name>
                  <value>false</value>
          </property>
    </configuration>
    

    hdfs-site.xml:

    $ cat hdfs-site.xml
    <configuration>
      <property>
    
                <name>dfs.namenode.secondary.http-address</name>
    
              <value>master:9001</value>
    
        </property>
    
        <property>
    
                  <name>dfs.namenode.name.dir</name>
    
                <value>file:/opt/hadoop/dfs/name</value>
    
            </property>
    
          <property>
    
                    <name>dfs.datanode.data.dir</name>
    
                    <value>file:/opt/hadoop/dfs/data</value>
    
            </property>
    
            <property>
    
                    <name>dfs.replication</name>
    
                    <value>3</value>
    
            </property>
    
            <property>
    
                    <name>dfs.webhdfs.enabled</name>
    
                    <value>true</value>
    
        </property>
    <property>
            <name>dfs.data.dir</name>
            <value>/opt/hadoop/dfs/data</value>
            <final>true</final>
    </property>
    
    <property>
            <name>dfs.name.dir</name>
            <value>/opt/hadoop/dfs/name</value>
            <final>true</final>
    </property>
    
    <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>
    
    <property>
      <name>dfs.permissions</name>
      <value>false</value>
    </property>
    
    <property>
      <name>dfs.http.address</name>
      <value>hadoop-namenode:50070</value>
    </property>
    
    </configuration>
    

    mapred-site.xml:

    $ cat mapred-site.xml
    <configuration>
    <property>
    
            <name>mapreduce.framework.name</name>
    
            <value>yarn</value>
    
    </property>
    
    <property>
    
            <name>mapreduce.jobhistory.address</name>
    
            <value>master:10020</value>
    
    </property>
    
    <property>
    
          <name>mapreduce.jobhistory.webapp.address</name>
    
          <value>master:19888</value>
    
    </property>
    <property>
            <name>mapred.job.tracker</name>
            <value>hadoop-namenode:9001</value>
    </property>
    
    </configuration>
    

    同步配置文件至所有slave:

    # su - hadoop
    $ rsync -auvx $HADOOP_HOME/ hadoop-datanode-1:$HADOOP_HOME/
    $ rsync -auvx $HADOOP_HOME/ hadoop-datanode-2:$HADOOP_HOME/
    

    Step 8 配置master的slave节点

    只在master节点配置,命令如下:

    # su - hadoop
    $ cd $HADOOP_HOME/etc/hadoop
    $ vi slaves
    hadoop-datanode-1
    hadoop-datanode-2
    

    Step 9 启动hadoop集群

    在master节点启动:

    # su - hadoop
    $ start-all.sh 
    

    Step 10 检查hadoop集群启动情况

    master节点:

    $ jps
    34720 NodeManager
    34609 ResourceManager
    34440 SecondaryNameNode
    34234 DataNode
    43663 Jps
    34095 NameNode
    

    slave节点:

    # su - hadoop
    $ jps
    5392 DataNode
    5512 NodeManager
    13578 Jps
    

    相关文章

      网友评论

        本文标题:Hadoop集群介绍和安装

        本文链接:https://www.haomeiwen.com/subject/hbjbmxtx.html