时间:2022-09-06 10:02:35来源:网络整理
01
说说企业搭建大数据分析平台的背景
1、搭建大数据平台离不开BI。在大数据之前,BI已经存在了很长时间,简单地将大数据与BI等同起来显然是不恰当的。但两者关系密切,相辅相成。
BI是实现业务管理的应用工具。没有BI,大数据就没有价值转化的工具,无法将数据的价值呈现给用户,也无法有效支撑业务管理决策;大数据是基础,没有大数据,BI就失去了存在的基础,也就无法快速、实时、高效地处理数据来支撑应用。因此,数据的价值和大数据平台的建设必须包括大数据处理和BI应用分析建设。
2、大数据有价值。让我们看一下数据使用的金字塔模型。从数据使用的角度来看,数据的使用方式主要有以下几种:
从上到下大数据整合平台,可以看到数据要求不同:
数据量越来越大,维度越来越大,交互越来越难,技术难度越来越大
企业对数据和效率的要求逐渐提高,也为大数据提供了展示能力的平台。企业建设大数据平台,归根结底就是建设企业的数据资产运营中心,发挥数据的价值,支撑企业的发展。
总体规划如下:
搭建企业基础数据中心,为企业搭建统一的数据存储系统,进行统一的数据建模,为数据的价值呈现奠定基础。同时数据处理能力下沉,建设集中式数据处理中心,提供强大的数据处理能力;通过统一的数据管理和监控系统,保证系统的稳定运行。以数据为基础,构建统一的BI应用中心,满足业务需求,体现数据价值。
说到大数据,就说到 hadoop。大数据不等同于hadoop,但hadoop确实是最流行的大数据技术。让我们以最常用的 mashup 架构来看看如何构建大数据平台来支持企业应用程序:
通过Kafka作为统一采集平台的消息管理层,可以灵活对接和适配各种数据源采集(如集成flume),提供灵活可配置的数据采集能力。
利用spark和hadoop技术构建作为大数据平台核心的基础数据存储和处理能力中心,提供强大的数据处理能力,满足数据交互需求。同时,通过sparkstreaming,可以有效满足企业实时数据的需求,构建企业发展的实时指标体系。
同时,为了更好地满足数据获取需求,通过RDBMS,提供企业高度聚合的统计数据,满足企业定期统计报表的需求,降低使用门槛。针对大数据的详细查询需求,构建HBase集群,提供大数据的快速查询能力,满足大数据的查询获取需求。
02
如何集成大数据处理分析框架和工具?
面对来自各种来源的海量数据,如何有效地分析这些分散的数据并获取有价值的信息一直是大数据研究领域的热点问题。
大数据分析处理平台是整合当前各种不同侧重点的主流大数据处理分析框架和工具,实现对数据的挖掘和分析。一个大数据分析平台涉及很多组件。有机结合,完成海量数据挖掘是一项复杂的工作。
在搭建大数据分析平台之前,需要明确业务需求场景和用户需求。通过大数据分析平台,想要获取哪些有价值的信息,需要访问哪些数据,并根据场景明确业务需求 大数据平台应具备的基本功能,确定大数据处理工具以及平台搭建过程中用到的框架。
(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 是部署在 HDFS 上的键/值系统。和Hadoop一样,HBase的目标主要是依靠横向扩展,通过不断增加廉价的商用服务器来增加计算和存储容量。同时,Hadoop的资源管理器Yarn可以为上层应用提供统一的资源管理和调度,在利用率和资源统一方面给集群带来巨大的收益。
Kudu 是围绕 Hadoop 生态系统构建的存储引擎。 Kudu 与 Hadoop 生态系统具有相同的设计理念。它可以在普通服务器上运行。作为一个开源存储引擎,它可以同时提供低延迟的随机读写。和高效的数据分析能力。 Redis 是一个速度非常快的非关系型数据库,可以将存储在内存中的键值对数据持久化到磁盘,并且可以存储键和 5 种不同类型的值之间的映射关系。
(5)选择数据挖掘工具
Hive 可以将结构化数据映射到数据库表中,并提供 HQL 查询功能。它是基于 Hadoop 构建的数据仓库基础架构。它是一个减少 MapReduce 编写工作的批处理系统。看来精通SQL技能但不熟悉MapReduce、编程能力较弱、不擅长Java的用户可以很好地利用SQL语言对HDFS大规模数据集上的数据进行查询、汇总和分析。
Impala 是对 Hive 的补充,可以实现高效的 SQL 查询,但 Impala 将整个查询过程划分为一个执行计划树,而不是一系列 MapReduce 任务。与 Hive 相比,它具有更好的并发性,避免了不必要的中间排序和洗牌。
Spark 可以将 Job 中间输出结果存储在内存中,无需读取 HDFS。 Spark 支持内存中的分布式数据集。除了提供交互式查询,它还可以优化迭代工作负载。
Solr 是一个独立的全文搜索服务器,用于在 servlet 容器中运行的企业级搜索应用程序。用户可以通过HTTP请求向搜索引擎服务器提交一定格式的XML生成索引,也可以通过HTTP GET操作发出搜索请求。并得到XML格式的返回结果。
您还可以对数据进行建模和分析,并使用机器学习相关知识,常用的机器学习算法大数据整合平台,如贝叶斯、逻辑回归、决策树、神经网络、协同过滤等。
(6)数据可视化输出API
处理后的数据可以接入国外的Tableau、Qlikview、PowrerBI等主流BI系统,国内的帆软、SmartBI、永宏等,结果可视化,用于决策分析。或者回归线上,支持线上业务的发展。
打造成熟的大数据分析平台不是一件简单的事情,本身就是一项复杂的工作。这个过程需要考虑很多因素,比如:
稳定性:数据备份和程序运行可以通过多台机器完成,但是服务器的质量和预算成本会限制平台的稳定性;可扩展性:大数据平台部署在多台机器上。在此基础上扩展新机器是实际应用中经常遇到的问题;安全:保障数据安全是大数据平台不可忽视的问题。在海量数据处理过程中,如何防止数据丢失和泄露一直是大数据安全领域的研究热点。
03
大数据分析平台实现技术
1、硬件平台
大数据分析平台需要读写PB级数据,对数据挖掘模型进行大规模运算,并发布预测结果。它对底层硬件要求很高的磁盘 IO 和计算速度。同时需要满足分布式和动态扩展的需求,采用x86架构PC Server服务器,配置2路8核CPU,128GB内存,千兆网卡。
2、平台软件
Red Hat用于操作系统软件,Flume-NG用于数据采集,Hadoop用于海量数据存储和分布式计算,Hive用于数据清洗,Spark R用于数据挖掘引擎,预测结果存储在 HBase 中:
使用HAProxy+Keepalived+Flume-NG构建高性能、高可用的分布式数据采集系统。使用Hadoop构建PB级大数据平台,提供海量数据存储和分布式计算。使用Hive作为数据清洗引擎,提供PB级的数据预处理、处理、集成服务。使用 Spark R 组件,Spark R 为 Spark 中的弹性分布式数据集提供了 API,用户可以通过 R shell 交互地在集群上运行作业。数据挖掘模型以 Spark On Yarn 的 yarn-cluster 方式构建大数据分析引擎。使用HBase技术可以提供海量数据的高效发布。
3、大数据挖掘模型开发
数据采集与存储模块:DPI、服务端、网元端数据通过文件接口发送到Flume-NG集群,Flume-NG通过hdfs将接收到的数据实时聚合到大数据库中方法通过内存数据传输方法。数据分析平台。数据清理模块:通过编写 HQL 脚本来清理和转换数据以形成特征宽表。数据挖掘模块:Spark R用于基于特征宽表的数据建模,模型开发、模型评估、模型应用调用聚类、分类等算法。分析结果发布:模型应用的结果集存储在HBase中。首先需要新建一个HBase表,用于将结果集存储到HBase中,通过Map Reduce生成HFile文件,然后通过Bulk Load将它们存储到数据库中。通过HBase API实现数据调用,通过ECharts技术实现数据展示。
04
如何选择大数据平台?
如果使用开源产品搭建大数据平台,还是很繁琐的,需要了解细节。
可选择商业版hadoop平台,支持可视化一键部署。
部分大数据平台厂商利用docker技术直接秒级打造大数据分布式平台
05
搭建大数据平台需要准备什么?
在回答具体问题之前,您需要弄清楚以下问题。一旦你弄清楚了,问题的答案就在那里:
你想从个人学习和成长的角度搭建一个自学平台吗?还是公司现在需要大数据技术进行分析?
(1)如果是从个人学习和成长的角度出发,建议直接按照Hadoop或者Spark的官网安装。建议阅读官网(英文)在大数据技术领域,英语的掌握是非常重要的,因为涉及到组件的选择、以后的安装、部署、运维,所有的任务操作信息和错误信息都是英文的,包括遇到的问题的解答,所以还是很重要的。
(2)如果公司需要进行大数据分析,那么应该研究以下几个问题:
为什么需要搭建大数据分析平台?要解决什么业务问题?需要什么样的分析?有多少数据?是否需要实时分析?是否需要 BI 报告?
这是一个典型的场景:
公司使用Oracle或MySQL搭建业务数据库,数据分析简单,也可能购买了BI系统,直接由业务系统数据库支持。现在随着数据量的增加,需要利用大数据技术进行扩展。
确定您的要求后,请按照以下步骤操作:
1、整体方案设计
设计整体方案时要考虑的因素:
数据量是多少:数百 GB?几十TB?数据存储在哪里:在 MySQL 中?甲骨文?或其他数据库?数据是如何从现在的存储系统进入大数据平台的?如何将结果数据写入其他存储系统?分析的主题是什么:只有几个简单的指标?还是有很多统计指标需要专门的人员来梳理、分组、进行产品设计,是否需要搭建一个整体的数据仓库?是否需要BI报告:业务人员是否具备操作BI的能力,或者团队组成比较简单,不需要前后端人员输入。是不是用BI更方便,需要实时计算?
2、组件选择
架构设计完成后,需要进行组件选择。此时,最好让更资深的架构师参与设计。选择包括:
离线计算引擎:Hadoop、Spark、Tez……实时计算引擎:Storm、Flink、Samza、Spark Streaming……BI软件:Tableau、QlikView、FanRuan……
3、安装部署
选择完成后,即可进行安装部署。这部分其实是最简单的,可以根据各个组件的部署需求直接安装。
4、另一种选择:使用商业软件
如果企业需要搭建大数据平台,另一种选择是直接使用商业数据平台。市面上有很多成熟的商用大数据平台,如Cloudera、星链、华为、亚信等,都有对应的产品线。
06
一般大数据平台从平台搭建到数据分析一般包括以下步骤:
1、Linux系统安装
一般使用Redhat系统的开源版本,底层平台使用CentOS。为了提供稳定的硬件基础,当硬盘使用RAID,挂载数据存储节点时,需要根据情况进行配置。比如可以选择对HDFS的namenode做RAID2来提高稳定性,将数据存储和操作系统放在不同的硬盘上,保证操作系统的正常运行。
2、分布式计算平台/组件安装
目前大部分分布式系统都使用 Hadoop 系列开源系统。 Hadoop 的核心是 HDFS,一个分布式文件系统。在其基础上常用的组件有Yarn、Zookeeper、Hive、Hbase、Sqoop、Impala、ElasticSearch、Spark等。
使用开源组件的优势:
1)用户多,网上能找到很多bug(这往往是开发中最耗时的部分);
2)开源组件一般都是免费的,学习和维护比较方便;
3)开源组件一般会持续更新;
4)因为代码是开源的,如果有bug,可以自由修改和维护源代码。
常用的分布式数据仓库有Hive和Hbase。 Hive可以使用SQL查询,Hbase可以快速读取行。
外部数据库导入和导出需要 Sqoop。 Sqoop 将 Oracle 和 MySQL 等传统数据库中的数据导入 Hive 或 Hbase。
Zookeeper是数据同步服务,Impala是hive的补充,可以实现高效的SQL查询
3、数据导入
如前所述,数据导入的工具是 Sqoop。它可以将文件或传统数据库中的数据导入分布式平台。
4、数据分析
数据分析一般包括两个阶段:数据预处理和数据建模分析。
数据预处理是为后续建模和分析做准备。主要工作是从海量数据中提取可用特征并构建大规模表。此过程可能使用 Hive SQL、Spark QL 和 Impala。数据建模分析是对预处理提取的特征/数据进行建模,以获得期望的结果。如前所述,这件作品的最佳用途是 Spark。常用的机器学习算法,如朴素贝叶斯、逻辑回归、决策树、神经网络、TFIDF、协同过滤等,已经在ML库中,调用起来更方便。
5、结果可视化和输出API
可视化通常显示结果或部分原始数据。一般有两种情况,行数据显示和列搜索显示。
声明:文章仅代表原作者观点,不代表本站立场;如有侵权、违规,可直接反馈本站,我们将会作修改或删除处理。
图文推荐
2022-09-06 09:10:06
2022-09-06 09:03:48
2022-09-06 08:10:08
2022-09-05 18:10:03
2022-09-05 16:10:06
2022-09-05 14:01:36
热点排行
精彩文章
2022-09-06 09:10:42
2022-09-06 09:10:20
2022-09-06 08:10:20
2022-09-05 16:10:49
2022-09-05 13:10:16
2022-09-05 09:02:44
热门推荐