软文采集系统(先来谈谈企业搭建大数据分析平台的背景和使用方式。)
优采云 发布时间: 2022-01-23 14:04软文采集系统(先来谈谈企业搭建大数据分析平台的背景和使用方式。)
讨论一
首先说一下企业搭建大数据分析平台的背景。
1、搭建大数据平台离不开BI。在大数据之前,BI已经存在了很长时间,简单地将大数据与BI等同起来显然是不恰当的。但两者密切相关,相辅相成。BI是实现业务管理的应用工具。没有BI,大数据就没有价值转换的工具,无法将数据的价值呈现给用户,也无法有效支撑企业管理决策;大数据是基础,没有大数据,BI就失去了存在的基础,也就无法快速、实时、高效地处理数据来支撑应用。因此,数据的价值和大数据平台的建设必须包括大数据处理和BI应用分析建设。
2、大数据有价值。让我们看一下数据使用的金字塔模型。从数据使用的角度来看,数据的使用方式主要有以下几种:
从上到下可以看到对数据的要求是不同的:
企业对数据和效率的要求逐渐提高,也为大数据展现能力提供了平台。企业搭建大数据平台,归根结底就是搭建企业的数据资产运营中心,发挥数据的价值,支撑企业的发展。
总体规划如下:
搭建企业基础数据中心,为企业搭建统一的数据存储系统,进行统一的数据建模,为数据的价值呈现奠定基础。同时数据处理能力下沉,建设集中式数据处理中心,提供强大的数据处理能力;通过统一的数据管理和监控系统,保证系统的稳定运行。以数据为基础,构建统一的BI应用中心,满足业务需求,体现数据价值。
说到大数据,就提到了Hadoop。大数据不等同于hadoop,但hadoop确实是最流行的大数据技术。让我们以最常用的 mashup 架构来看看如何构建大数据平台来支持企业应用:
通过Kafka作为统一采集平台的消息管理层,可以灵活连接和适配各种数据源采集(如集成flume),提供灵活可配置的数据采集能力。
使用spark和hadoop技术,构建作为大数据平台核心的基础数据存储和处理能力中心,提供强大的数据处理能力,满足数据交互需求。同时,通过sparkstreaming,可以有效满足企业实时数据的需求,构建企业发展的实时指标体系。
同时,为了更好地满足数据采集需求,通过RDBMS,提供企业高度汇总的统计数据,满足企业定期统计报表的需求,降低使用门槛。针对大数据的详细查询需求,构建HBase集群,提供大数据的快速查询能力,满足大数据的查询获取需求。
讨论二
面对来自各种来源的大量数据,如何有效地分析这些分散的数据并获取有价值的信息一直是大数据研究领域的热点问题。大数据分析处理平台是整合当前各种不同侧重点的主流大数据处理分析框架和工具,实现数据挖掘和分析。一个大数据分析平台涉及的组件很多,如何将它们有机地结合起来完成海量数据的挖掘是一项复杂的工作。
在搭建大数据分析平台之前,需要明确业务需求场景和用户需求。通过大数据分析平台,你想获取哪些有价值的信息,需要访问哪些数据,根据场景的业务需求获取哪些大数据。平台必须具备的基本功能决定了平台建设过程中使用的大数据处理工具和框架。
(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 相比,它具有更好的并发性,避免了不必要的 Intermediate sort 和 shuffle。
Spark 可以将作业的中间输出结果保存在内存中,无需读取 HDFS,Spark 可以实现数据集的内存分布,除了可以提供交互式查询之外,还可以优化迭代工作负载。Solr 是一个独立的全文搜索服务器,用于在 servlet 容器中运行的企业级搜索应用程序。用户可以通过HTTP请求向搜索引擎服务器提交一定格式的XML生成索引,或者通过HTTP GET操作进行搜索请求,得到XML格式的返回结果。
您还可以对数据进行建模和分析,使用机器学习相关知识和常用的机器学习算法,如贝叶斯、逻辑回归、决策树、神经网络、协同过滤等。
(6)数据可视化输出API
处理后的数据可以接入国外的Tableau、Qlikview、PowererBI等主流BI系统,国内的SmallBI和新兴的网易(免费试用)等,可视化结果进行决策分析;或者回归线上,支持线上业务的发展。
搭建成熟的大数据分析平台不是一件简单的事情,本身就是一项复杂的工作。在这个过程中需要考虑很多因素,例如:
稳定性,可以通过多台机器备份数据和程序运行,但是服务器的质量和预算成本会相应限制平台的稳定性;
可扩展性:大数据平台部署在多台机器上,如何在其基础上扩展新机器是实际应用中经常遇到的问题;
安全:保障数据安全是大数据平台不可忽视的问题。在海量数据处理过程中,如何防止数据丢失和泄露一直是大数据安全领域的研究热点。
讨论三
大数据分析平台实现技术
1 硬件平台
大数据分析平台需要读写PB级数据,对数据挖掘模型进行*敏*感*词*运算,并发布预测结果。为满足分布式和动态扩展的需求,采用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 大数据挖掘模型开发
Data采集存储模块:DPI、服务端、网元端数据通过文件接口发送到Flume-NG集群。Flume-NG通过内存数据传输的方式,通过hdfs实时聚合接收到的数据。大数据分析平台。
数据清理模块:通过编写 HQL 脚本来清理和转换数据以形成特征宽表。
数据挖掘模块:Spark R用于基于特征宽表的数据建模,模型开发、模型评估、模型应用调用聚类、分类等算法。
分析结果发布:模型应用的结果集存储在HBase中。首先需要在HBase中新建一个HBase表来存储结果集,通过Map Reduce生成HFile文件,然后通过Bulk Load将它们存储到数据库中。通过HBase API实现数据调用,通过ECharts技术实现数据展示。
可以关注ETHINK数据智能分析平台
讨论四
如果用开源产品搭建大数据平台,还是很繁琐的,需要了解细节。
可以选择商业版的hadoop平台,支持可视化一键部署。
一些大数据平台厂商利用docker技术,秒级打造大数据分布式平台。
讨论五
在回答具体问题之前,您需要澄清以下问题。一旦你弄清楚了,问题的答案实际上就在那里:
1、你想从个人学习和成长的角度搭建一个自学平台吗?还是公司现在需要大数据技术进行分析?
——如果是从个人学习和成长的角度出发,建议直接按照Hadoop或者Spark的官网安装。建议阅读官网(英文)。在大数据技术领域,英语的掌握非常重要,因为它涉及到组件的选择。类型、未来安装、部署、运维,所有任务运行信息和错误信息都是英文的,包括遇到问题的答案,所以还是很重要的。
如果公司需要进行大数据分析,那么还需要研究以下几个问题:
为什么要搭建大数据分析平台?要解决什么业务问题?需要什么样的分析?有多少数据?是否需要实时分析?是否需要 BI 报告?
- 这是一个典型的场景:
公司之前使用Oracle或MySQL搭建的业务数据库,数据分析简单,也可能购买了BI系统,直接由业务系统数据库支持。用于扩展的数据技术。
弄清楚需求后,请按照以下步骤操作:
1、整体方案设计;
设计整体方案时要考虑的因素:
2、组件选择;
架构设计完成后,需要进行组件选择。此时,最好让更资深的架构师参与设计。选择包括:
3、安装部署;
选择完成后,就可以进行安装部署了。这部分其实是最简单的,可以根据各个组件的部署需求直接安装。
4、另一种选择:使用商业软件
如果企业需要搭建大数据平台,另一种选择是直接使用商业数据平台。市场上有很多成熟的商用大数据平台,如Cloudera、星环、华为、亚信等,都有相应的产品线。我们公司还有一个非常好的大数据平台产品:DataStack。
数据栈主要有以下特点:
1、完全基于开源:基于开源Spark(离线)和Flink(实时)计算引擎,绑定不强,很多公司担心被某个供应商绑定,但是数据栈完全基于开源,不存在问题;
基于此,其实企业也可以自己搭建底层平台,而水讯只提供开发包(包括数据集成、计算任务管理,用户可以在WEB页面直接编写SQL逻辑代码、调度依赖配置等) )
2、易用:数据栈包括数据开发套件、数据计算引擎(Spark、Flink)、数据治理套件(数据地图、数据质量、数据模型)、数据应用引擎(数据API),覆盖企业数据全链路采集,系统内数据统计分析与挖掘,数据治理,数据开放,同时涵盖离线分析和实时分析,满足企业内部各种数据处理需求。
3、高性价比:很多传统企业的数据量不是特别大,比如几百GB,1,2TB,数据栈最少支持3个虚拟机部署。与数百个节点相比,成本可以降低很多;
数据栈与构建大数据团队有什么关系?
——数据栈是开发团队的生产力工具。有了它,开发团队可以更舒适、更好地使用大数据平台,更快地解决需求。同时,基于开源技术,开发者可以编写 MapReduce 代码运行,可以配置任务调度、依赖关系,在数据栈上查看运行日志,也加速了团队的成长。所以数据栈的引入其实是开发团队的好帮手,让团队更有效率。
讨论六
一个通用的大数据平台,从平台搭建到数据分析,一般包括以下几个步骤:
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,可以自由修改和维护源代码。
这里还是要推荐一下我自己建的大数据学习交流群:199427210,所有群都在学习大数据开发。如果你正在学习大数据,小编欢迎你的加入。每个人都是软件开发党。定期分享干货(仅与大数据开发相关),包括我自己编写的2018最新大数据进阶资料和进阶开发教程。欢迎想要深入大数据的高手进阶小伙伴。
常用的分布式数据仓库包括 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 lib中,调用起来更方便。
5、结果可视化和输出API
可视化通常显示结果或部分原创数据。一般有两种情况,行数据显示和列搜索显示。
参考知乎: