关于大数据的这些你该知道
面对海量的各种来源的数据,如何对这些零散的数据进行有效的分析,得到有价值的信息一直是大数据领域研究的热点问题。大数据分析处理平台就是整合当前主流的各种具有不同侧重点的大数据处理分析框架和工具,实现对数据的挖掘和分析,一个大数据分析平台涉及到的组件众多,如何将其有机地结合起来,完成海量数据的挖掘是一项复杂的工作。在搭建大数据分析平台之前,要先明确业务需求场景以及用户的需求,通过大数据分析平台,想要得到哪些有价值的信息,需要接入的数据有哪些,明确基于场景业务需求的大数据平台要具备的基本的功能,来决定平台搭建过程中使用的大数据处理工具和框架。
(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年前重新打造了互联网时代可出租基础设施的概念,随后该行业强大的创新力量推动该技术的快速发展,该技术分为三个子类别-IaaS、PaaS和SaaS-众多供应商提供数百种服务。 但是,当大多数企业IT运营团队想到云计算时,他们通常会想到IaaS和SaaS。这是因为很多企业转向云服务来提高IT效率、灵活性以及对不断变化的业务需求的响应能力。而PaaS主要针对开发人员,远不如其他两个类别流行。 为了熟悉技术基础知识,用户应了解云计算的优缺点、流行的用例以及当前IT市场的主要参与者以及它们如何影响其他供应商。 三巨头主导云计算市场 云市场的大部分焦点落在三大提供商上:AWS、微软和谷歌。现在这三者都提供数百种工具和服务,但以前并不是这样。 AWS最初推出的三项服务现在仍然是其产品组合的核心:Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Simple Storage Service(Amazon S3)和Amazon Simple Queue Services(...
-
下一篇
其他国家都在用什么手机?看占额分布图就明白
这是个数据互联的时代,这是个智能手机的时代,大量的智能机应运而生。国内外的人们越来越离不开智能手机。国内的市场上大多数的手机性价比也比较适合,所以国民都用国产手机,相对的海外品牌用的较少一些。那么在国外市场是怎么样的呢?我们研究一下国外市场手机销量吧! 美国手机市场占额分布 再明显不过了,苹果在美国的手机销售稳当第一名,可是对于美国,苹果是国产手机,而且手机质量和核心技术也是非常不错的,所以要想在美国开拓市场,必须有先进的技术,否则会一败涂地。 欧洲手机市场占额分布 上图可以明显的看出三星当之无愧的老大,华为是第二名,苹果第三名,数据现实华为只是略胜苹果一筹,差距比较小,。两家中国企业冲进前五名,但是小米只有区区4%的市场份额。要迎头赶上,还需要下很大的功夫啊! 日本手机市场占额分布 日本的手机份额受政府和市场的双层影响,因为历史原因日本对美国产品大量的引进,这样的环境下苹果市场的份额达到百分之十九,厦普作为本国企业屈居第二名,而且有一定的差距。追赶苹果还是有一定的难度的。 韩国手机市场占额分布 韩国的手机品牌比较单一,仅有本国的三星,LG,美国的苹果。但是跟日本不同的是苹果的份额相对...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL数据库在高并发下的优化方案
- Docker容器配置,解决镜像无法拉取问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS关闭SELinux安全模块
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果