关于大数据的这些你该知道
面对海量的各种来源的数据,如何对这些零散的数据进行有效的分析,得到有价值的信息一直是大数据领域研究的热点问题。大数据分析处理平台就是整合当前主流的各种具有不同侧重点的大数据处理分析框架和工具,实现对数据的挖掘和分析,一个大数据分析平台涉及到的组件众多,如何将其有机地结合起来,完成海量数据的挖掘是一项复杂的工作。在搭建大数据分析平台之前,要先明确业务需求场景以及用户的需求,通过大数据分析平台,想要得到哪些有价值的信息,需要接入的数据有哪些,明确基于场景业务需求的大数据平台要具备的基本的功能,来决定平台搭建过程中使用的大数据处理工具和框架。
(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种不同类型的值之间的映射。
(5)选择数据挖掘工具
Hive可以将结构化的数据映射为一张数据库表,并提供HQL的查询功能,它是建立在Hadoop之上的数据仓库基础架构,是为了减少MapReduce编写工作的批处理系统,它的出现可以让那些精通SQL技能、但是不熟悉MapReduce、编程能力较弱和不擅长Java的用户能够在HDFS大规模数据集上很好的利用SQL语言查询、汇总、分析数据。Impala是对Hive的一个补充,可以实现高效的SQL查询,但是Impala将整个查询过程分成了一个执行计划树,而不是一连串的MapReduce任务,相比Hive有更好的并发性和避免了不必要的中间sort和shuffle。
Spark可以将Job中间输出结果保存在内存中,不需要读取HDFS,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Solr是一个运行在Servlet容器的独立的企业级搜索应用的全文搜索服务器,用户可以通过http请求,向搜索引擎服务器提交一定格式的XML,生成索引,或者通过HTTP GET操作提出查找请求,并得到XML格式的返回结果。
还可以对数据进行建模分析,会用到机器学习相关的知识,常用的机器学习算法,比如贝叶斯、逻辑回归、决策树、神经网络、协同过滤等。
(6)数据的可视化以及输出API
对于处理得到的数据可以对接主流的BI系统,比如国外的Tableau、Qlikview、PowrerBI等,国内的SmallBI和新兴的网易有数(可免费试用)等,将结果进行可视化,用于决策分析;或者回流到线上,支持线上业务的发展。
成熟的搭建一套大数据分析平台不是一件简单的事情,本身就是一项复杂的工作,在这过程中需要考虑的因素有很多,比如:
- 稳定性,可以通过多台机器做数据和程序运行的备份,但服务器的质量和预算成本相应的会限制平台的稳定性;
- 可扩展性:大数据平台部署在多台机器上,如何在其基础上扩充新的机器是实际应用中经常会遇到的问题;
- 安全性:保障数据安全是大数据平台不可忽视的问题,在海量数据的处理过程中,如何防止数据的丢失和泄漏一直是大数据安全领域的研究热点。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么我们需要边缘计算?
当时间敏感事件发生时,边缘计算胜过云处理。 在过去的15到20年间,已经从本地软件向云计算发生了巨大转变。现在,我们可以从任何地方访问所需的一切,而不受固定位置服务器的限制。但是,云计算运动即将向分散计算的另一方向倾斜。那么为什么我们需要边缘计算呢? 考虑到云网络带来的巨大机遇,这一概念似乎有悖常理。但为了让我们充分利用物联网(IoT)所提供的一切优势,技术必须再次成为本地技术。 看一下农业历史可以得出一些相似之处。一个世纪或更早以前,人们食用当地种植的食物。如果它不在您居住的地方的50-100英里内生长或繁殖,那么您可能将没有机会食用它。 然后,技术出现并打开了新的大门。运输变得更快了,制冷意味着食物可以在不损坏的情况下运输,并且新的耕作技术允许大量生产。随着这些发展,消费者可以从世界各地获得食物。 我们仍在利用容易获得的全球食品的优势,但是由于多种原因,人们已经转向了本地食物。长途运输食品会影响环境。消费者希望为当地经济做出贡献。我们中的许多人都希望我们食用的食物中的人造成分更少。 那么这对云计算意味着什么呢? 就像全球获得食物一样,云计算并没有完全消失。但是,定期进行处理的地方将...
- 下一篇
其他国家都在用什么手机?看占额分布图就明白
这是个数据互联的时代,这是个智能手机的时代,大量的智能机应运而生。国内外的人们越来越离不开智能手机。国内的市场上大多数的手机性价比也比较适合,所以国民都用国产手机,相对的海外品牌用的较少一些。那么在国外市场是怎么样的呢?我们研究一下国外市场手机销量吧! 美国手机市场占额分布 再明显不过了,苹果在美国的手机销售稳当第一名,可是对于美国,苹果是国产手机,而且手机质量和核心技术也是非常不错的,所以要想在美国开拓市场,必须有先进的技术,否则会一败涂地。 欧洲手机市场占额分布 上图可以明显的看出三星当之无愧的老大,华为是第二名,苹果第三名,数据现实华为只是略胜苹果一筹,差距比较小,。两家中国企业冲进前五名,但是小米只有区区4%的市场份额。要迎头赶上,还需要下很大的功夫啊! 日本手机市场占额分布 日本的手机份额受政府和市场的双层影响,因为历史原因日本对美国产品大量的引进,这样的环境下苹果市场的份额达到百分之十九,厦普作为本国企业屈居第二名,而且有一定的差距。追赶苹果还是有一定的难度的。 韩国手机市场占额分布 韩国的手机品牌比较单一,仅有本国的三星,LG,美国的苹果。但是跟日本不同的是苹果的份额相对...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装