大数据平台 Hadoop 的分布式集群环境搭建

1 概述

                                         数据分析平台架构原理数据库

从概念上讲,咱们能够把数据分析平台分为接入层(Landing)、整合层(Integration)、表现层(Persentation)、语义层(Semantic)、终端用户应用(End-user applications)、元数据(Metadata)。基于Hadoop和数据库的分析平台基本概念和逻辑架构是通用的,只是技术选型的不一样:apache

 

  • 接入层(Landing):以和源系统相同的结构暂存原始数据,有时被称为“贴源层”或ODS;json

  • 整合层(Integration):持久存储整合后的企业数据,针对企业信息实体和业务事件建模,表明组织的“惟一真相来源”,有时被称为“数据仓库”;浏览器

  • 表现层(Presentation):为知足最终用户的需求提供可消费的数据,针对商业智能和查询性能建模,有时被称为“数据集市”;服务器

  • 语义层(Semantic):提供数据的呈现形式和访问控制,例如某种报表工具;架构

  • 终端用户应用(End-user applications):使用语义层的工具,将表现层数据最终呈现给用户,包括仪表板、报表、图表等多种形式;app

  • 元数据(Metadata):记录各层数据项的定义(Definitions)、血缘(Genealogy)、处理过程(Processing)。分布式

 

来自不一样数据源的“生”数据(接入层),和通过中间处理以后获得的整合层、表现层的数据模型,都会存储在数据湖里备用。工具

 

       数据湖的实现一般创建在Hadoop生态上,可能直接存储在HDFS上,也可能存储在HBase或Hive上,也有用关系型数据库做为数据湖存储的可能性存在。oop

下图说明了数据分析平台的数据处理流程:

数据分析基本都是单独的系统,会将其余数据源的数据(即外部数据)同步到数据平台的存储体系来(即数据湖),通常数据先进入到接入层,这一层只简单的将外部数据同步到数据分析平台,没有作其余处理,这样同步出错后重试便可,有定时同步和流式同步两种:

  • 定时同步即咱们设定在指定时间触发同步动做;

  • 流式同步即外部数据经过Kafka或MQ发送数据修改通知及内容。

数据分析平台执行对应操做修改数据。

 

      接入层数据须要通过ETL处理步骤才会进入数据仓库,数据分析人员都是基于数据仓库的数据来作分析计算,数据仓库能够看做数据分析的惟一来源,ETL会将接入层的数据作数据清洗、转换,再加载到数据仓库,过滤或处理不合法、不完整的数据,并使用统一的维度来表示数据状态。有的系统会在这一层就将数据仓库构建成数据立方体、将维度信息构建成雪花或星型模式;也有的系统这一层只是统一了全部数据信息,没有作数据立方体,留在数据集市作。

 

       数据集市是基于数据仓库数据对业务关心的信息作计算提取后获得的进一步信息,是业务人员直接面对的信息,是数据仓库的进一步计算和深刻分析的结果,通常都会构建数据立方体。系统开发人员通常会开发页面来向用户展现数据集市的数据。

                        基于Hadoop构建数据分析平台

上面这张图是咱们使用到的Hadoop平台的组件,数据从下到上流动,数据处理流程和上面说的一致。

 

任务调度负责将数据处理的流程串联起来,这里我选择使用的是Oozie,也有不少其它选择。

一、数据存储

 

基于Hadoop的数据湖主要用到了HDFS、Hive和HBase,HDFS是Hadoop平台的文件存储系统,咱们直接操纵文件是比较复杂的,因此可使用分布式数据库Hive或HBase用来作数据湖,存储接入层、数据仓库、数据集市的数据。

 

Hive和HBase各有优点:HBase是一个NoSQL数据库,随机查询性能和可扩展性都比较好;而Hive是一个基于HDFS的数据库,数据文件都以HDFS文件(夹)形式存放,存储了表的存储位置(即在HDFS中的位置)、存储格式等元数据,Hive支持SQL查询,可将查询解析成Map/Reduce执行,这对传统的数据分析平台开发人员更友好。

 

Hive数据格式可选择文本格式或二进制格式,文本格式有csv、json或自定义分隔,二进制格式有orc或parquet,他们都基于行列式存储,在查询时性能更好。同时可选择分区(partition),这样在查询时可经过条件过滤进一步减小数据量。接入层通常选择csv或json等文本格式,也不作分区,以尽可能简化数据同步。数据仓库则选择orc或parquet,以提高数据离线计算性能。

 

数据集市这块能够选择将数据灌回传统数据库(RDBMS),也能够停留在数据分析平台,使用NoSQL提供数据查询或用Apache Kylin来构建数据立方体,提供SQL查询接口。

二、数据同步

 

咱们经过数据同步功能使得数据到达接入层,使用到了Sqoop和Kafka。数据同步能够分为全量同步和增量同步,对于小表能够采用全量同步,对于大表全量同步是比较耗时的,通常都采用增量同步,将变更同步到数据平台执行,以达到两边数据一致的目的。

 

全量同步使用Sqoop来完成,增量同步若是考虑定时执行,也能够用Sqoop来完成。或者,也能够经过Kafka等MQ流式同步数据,前提是外部数据源会将变更发送到MQ。

三、ETL及离线计算

 

咱们使用Yarn来统一管理和调度计算资源。相较Map/Reduce,Spark SQL及Spark RDD对开发人员更友好,基于内存计算效率也更高,因此咱们使用Spark on Yarn做为分析平台的计算选型。

 

ETL能够经过Spark SQL或Hive SQL来完成,Hive在2.0之后支持存储过程,使用起来更方便。固然,出于性能考虑Saprk SQL仍是不错的选择。

 

 

本文章介绍大数据平台Hadoop的分布式环境搭建、如下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave一、slave二、slave3中分别部署一个DataNode节点

 

NN=NameNode(名称节点)

SND=SecondaryNameNode(NameNode的辅助节点)

DN=DataNode(数据节点)

 

2 前期准备

 

(1)准备五台服务器

 

如:master一、master二、slave一、slave二、slave3

 

(2)关闭全部服务器的防火墙

 

# systemctl stop firewalld

#  systemctl disable firewalld

 

(3)分别修改各服务器的/etc/hosts文件,内容以下:

192.168.56.132 mates1

192.168.56.133 mates2

192.168.56.134 slave1

192.168.56.135 slave2

192.168.56.136 slave3

注:对应修改个服务器的/etc/hostname文件,分别为 master一、master二、slave一、slave二、slave3

 

(4)分别在各台服务器建立一个普通用户与组

 

# groupadd hadoop                   #增长新用户组
# useradd hadoop -m -g hadoop            #增长新的用户
# passwd hadoop             #修改hadoop用户的密码

 

 

切换至hadoop用户:su hadoop

 

(5)各服务器间的免密码登陆配置,分别在各自服务中执行一次

 

注:以上操做须要登陆到hadoop用户操做

 

(6)下载hadoop包,hadoop-2.7.5.tar.gz

 

官网地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.5/

 

3 开始安装部署

 

(1)建立hadoop安装目录

 

 

(2)将安装包解压至/home/hadoop/app/hadoop下

 

 

(3)配置hadoop的环境变量,修改/etc/profile

 

 

(4)刷新环境变量

 

 

4 配置Hadoop

 

(1)配置core-site.xml

 

 

默认配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-common/core-default.xml

 

(2)配置hdfs-site.xml

 

 

默认配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

 

(3)配置mapred-site.xml

 

$ cp /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml

 

 

默认配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

 

(4)配置yarn-site.xml

 

 

默认配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

 

(5)配置slaves

 

slaves文件中配置的是DataNode的所在节点服务

 

(6)配置hadoop-env

 

修改hadoop-env.sh文件的JAVA_HOME环境变量,操做以下:

 

 

(7)配置yarn-env

 

修改yarn-env.sh文件的JAVA_HOME环境变量,操做以下

 

 

(8)配置mapred-env

 

修改mapred-env.sh文件的JAVA_HOME环境变量,操做以下:

 

 

(9)将master1中配置好的hadoop分别远程拷贝至maser二、slave1 、slave二、slave3服务器中

 

 

5 启动测试

 

(1)在master1节点中初始化Hadoop集群

 

 

(2)启动Hadoop集群

 

 

 

(3)验证集群是否成功

 

浏览器中访问50070的端口,以下证实集群部署成功

 

相关文章
相关标签/搜索