Hadoop集群介绍和安装

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 

      
            fs.defaultFS

                hdfs://master:9000

      

      
                io.file.buffer.size

                131072

      

      

                hadoop.tmp.dir

                file:/opt/hadoop/hadoop/tmp

                Abase for other temporary directories.

        

        dfs.name.dir
        /opt/hadoop/dfs/name/
    

        

              hadoop.proxyuser.worker.hosts

              *

        

        

              hadoop.proxyuser.worker.groups

              *

      
  
      
              fs.default.name
              hdfs://hadoop-namenode:9000/
      
      
              io.file.buffer.size
              4096
      
      
              hadoop.tmp.dir
              /opt/hadoop/hadoop/tmp
      
      
              dfs.permissions
              false
      

hdfs-site.xml:

$ cat hdfs-site.xml

  

            dfs.namenode.secondary.http-address

          master:9001

    

    

              dfs.namenode.name.dir

            file:/opt/hadoop/dfs/name

        

      

                dfs.datanode.data.dir

                file:/opt/hadoop/dfs/data

        

        

                dfs.replication

                3

        

        

                dfs.webhdfs.enabled

                true

    

        dfs.data.dir
        /opt/hadoop/dfs/data
        true



        dfs.name.dir
        /opt/hadoop/dfs/name
        true



        dfs.replication
        1



  dfs.permissions
  false



  dfs.http.address
  hadoop-namenode:50070



mapred-site.xml:

$ cat mapred-site.xml



        mapreduce.framework.name

        yarn





        mapreduce.jobhistory.address

        master:10020





      mapreduce.jobhistory.webapp.address

      master:19888



        mapred.job.tracker
        hadoop-namenode:9001



同步配置文件至所有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集群介绍和安装)