搭建大数据平台具体的流程和步骤

面对海量的各种来源的数据 , 如何对这些零散的数据进行有效的分析 , 得到有价值的信息一直是大数据领域研究的热点问题 。 大数据分析处理平台就是整合当前主流的各种具有不同侧重点的大数据处理分析框架和工具 , 实现对数据的挖掘和分析 , 一个大数据分析平台涉及到的组件众多 , 如何将其有机地结合起来 , 完成海量数据的挖掘是一项复杂的工作 。
在搭建大数据分析平台之前 , 要先明确业务需求场景以及用户的需求 , 通过大数据分析平台 , 想要得到哪些有价值的信息 , 需要接入的数据有哪些 , 明确基于场景业务需求的大数据平台要具备的基本的功能 , 来决定平台搭建过程中使用的大数据处理工具和框架 。
搭建大数据平台具体的流程和步骤文章插图
(1)操作系统的选择
操作系统一般使用开源版的RedHat、Centos或者Debian作为底层的构建平台 , 要根据大数据平台所要搭建的数据分析工具可以支持的系统 , 正确的选择操作系统的版本 。
(2)搭建Hadoop集群
Hadoop作为一个开发和运行处理大规模数据的软件平台 , 实现了在大量的廉价计算机组成的集群中对海量数据进行分布式计算 。 Hadoop框架中最核心的设计是HDFS和MapReduce , HDFS是一个高度容错性的系统 , 适合部署在廉价的机器上 , 能够提供高吞吐量的数据访问 , 适用于那些有着超大数据集的应用程序;MapReduce是一套可以从海量的数据中提取数据最后返回结果集的编程模型 。 在生产实践应用中 , Hadoop非常适合应用于大数据存储和大数据的分析应用 , 适合服务于几千台到几万台大的服务器的集群运行 , 支持PB级别的存储容量 。
Hadoop家族还包含各种开源组件 , 比如Yarn , Zookeeper , Hbase , Hive , Sqoop , Impala , Spark等 。 使用开源组件的优势显而易见 , 活跃的社区会不断的迭代更新组件版本 , 使用的人也会很多 , 遇到问题会比较容易解决 , 同时代码开源 , 高水平的数据开发工程师可结合自身项目的需求对代码进行修改 , 以更好的为项目提供服务 。
(3)选择数据接入和预处理工具
面对各种来源的数据 , 数据接入就是将这些零散的数据整合在一起 , 综合起来进行分析 。 数据接入主要包括文件日志的接入、数据库日志的接入、关系型数据库的接入和应用程序等的接入 , 数据接入常用的工具有Flume , Logstash , NDC(网易数据运河系统) , sqoop等 。 对于实时性要求比较高的业务场景 , 比如对存在于社交网站、新闻等的数据信息流需要进行快速的处理反馈 , 那么数据的接入可以使用开源的Strom , Spark streaming等 。
当需要使用上游模块的数据进行计算、统计和分析的时候 , 就需要用到分布式的消息系统 , 比如基于发布/订阅的消息系统kafka 。 还可以使用分布式应用程序协调服务Zookeeper来提供数据同步服务 , 更好的保证数据的可靠和一致性 。
数据预处理是在海量的数据中提取出可用特征 , 建立宽表 , 创建数据仓库 , 会使用到HiveSQL , SparkSQL和Impala等工具 。 随着业务量的增多 , 需要进行训练和清洗的数据也会变得越来越复杂 , 可以使用azkaban或者oozie作为工作流调度引擎 , 用来解决有多个hadoop或者spark等计算任务之间的依赖关系问题 。
(4)数据存储
除了Hadoop中已广泛应用于数据存储的HDFS , 常用的还有分布式、面向列的开源数据库Hbase , HBase是一种key/value系统 , 部署在HDFS上 , 与Hadoop一样 , HBase的目标主要是依赖横向扩展 , 通过不断的增加廉价的商用服务器 , 增加计算和存储能力 。 同时hadoop的资源管理器Yarn , 可以为上层应用提供统一的资源管理和调度 , 为集群在利用率、资源统一等方面带来巨大的好处 。
Kudu是一个围绕Hadoop生态圈建立的存储引擎 , Kudu拥有和Hadoop生态圈共同的设计理念 , 可以运行在普通的服务器上 , 作为一个开源的存储引擎 , 可以同时提供低延迟的随机读写和高效的数据分析能力 。 Redis是一种速度非常快的非关系型数据库 , 可以将存储在内存中的键值对数据持久化到硬盘中 , 可以存储键与5种不同类型的值之间的映射 。


推荐阅读