大数据平台选型及相关技术应用 11 个难点解读
大数据时代已经到来,社区最近组织了“大数据时代企业的精准化和个性化管理及服务实践线上交流探讨”,并邀请专家陈星星撰写了《大数据时代背景教育企业的精准化和个性化管理及服务实践》,为广大会员提供大数据应用相关实践借鉴,以下由陈星星将活动中提出的难点问题及解答进行总结,供更多读者参考。
Q1、传统数仓转向大数据平台的必要性?
如题,或者什么场景的的传统数仓适合转向大数据平台。转向大数据平台后都解决了什么样的问题,暴露出什么样的问题?
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
A:
■ rein07 某证券 系统架构师:
大数据平台采用分布式架构,用于解决海量数据的存储和分析问题,传统数仓无法解决上百TB及PB级的分析问题。大数据平台由于架构新,使用模式也不尽相同,有的使用SQL,有的使用spark编程,有的使用mapreduce编程,所以存在一定的学习成本;大数据平台还在逐步完善中,尤其是用户管理、安全、元数据管理等方面还存在一定问题,使用时需要注意。
Q2、大数据底层保持数据强一致性是如何实现的?
A:
■ 陈星星 科技公司 技术经理:
大数据底层的数据强一致性是通过HDFS的分布式架构中的冗余副本策略和心跳检测机制实现的。
1、冗余副本策略:HDFS处理节点失效的一个方法就是数据冗余,即对数据做多个备份,在HDFS中可以通过配置文件设置备份的数量,默认是3副本,只有数据在3个副本上均完成写成功,才返回。
2、心跳机制:检测节点失效使用“心跳机制”。每个 Datanode 节点周期性地向 Namenode 发送心跳信号。 Namenode 通过心跳信号的缺失来检测这一情况,并将这些近期不再发送心跳信号 Datanode 标记为宕机,不会再将新的 IO 请求发给它们。
N: 3 (数据备份的数目)
W: 1 (数据写入几个节点返回成功),默认是1
R: 1 (读取数据的时候需要读取的节点数)
W + R < N
■ rein07 某证券 系统架构师:
Hadoop没有办法保证所有数据的强一致性,但是通过副本机制保证一定程度的一致性,如果某一个datanode宕机,将会在其他datanode上重建一个副本,从而达到副本一致性的目的,且在写入的时候可以采用一次写入多个副本的方式保证即使某个副本对应机器挂掉,也不影响整个数据。
Q3、大数据底层平台对硬件的要求有哪些?
A:
■ rein07 某证券 系统架构师:
1、在企业内部,最好保证集群中所有机器的配置保持一直,否则容易出现一台机器运行较慢,从而拖慢整体任务运行速度的情况。
2、大数据平台对网络要求较高,在几十台机器的集群下,如果采用千兆网络,极其容易出现某一个大任务把带宽占满的情况。
3、平台对CPU、硬盘的需求相对网络要低点,但也不能太低,否则IO上不来,任务也会被拖慢。
4、平台对内存的要求高,尤其在一个平台内搭建Impala、Spark、MR、Hive、HBase等组件共享资源的情况下,更应该配备高内存。
■ michael1983 某证券 技术经理 :
支持楼上,X86分布式部署即可。尤其注意系统IO性能,可配置SSD。
■ wuwenpin 软件开发工程师:
大吞吐量、大容量,高带宽。
■ 陈星星 科技公司 技术经理:
1、Hadoop现在已经是大数据的事实标准,而 Hadoop的出现就是运行在廉价商用服务器上,以集群之力,分而治之地解决先前传统数据库、传统存储、传统计算模型束手无策的问题,让大规模数据的处理成为了可能。
2、对于硬件没有太高的要求,普通的PC服务器即可,但是为了高更的性能,服务器内可以增加SSD固态硬盘或是内容等资源。
Q4、用户画像用到了哪些大数据技术和工具,做的时候应该注意什么?
A:
■ 陈星星 科技公司 技术经理:
所谓用户画像就是用多维度的数据来描述一个用户的整体特征,涉及到特征工程的提取,打标签的过程。
例如用户的属性、偏好、生活习惯、行为、运动、作息等信息,抽象出来的标签化用户模型。通俗来讲就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。
涉及到数据采集、数据建模、挖掘分析等,需要注意一下几点:
1、在画像创建之前需要知道用户关心的的特征维度和用户的行为等因素,从而从总体上掌握对用户需求需求。
2、创建用户画像不是抽离出典型进行单独标签化的过程,而是要融合边缘环境的相关信息来进行讨论。
3、用户画像有时候需要变化、分为短期内的画像、或是长期的画像等。
Q5、一般一个大数据项目实施过程中应该注意什么?
A:
■ rein07 某证券 系统架构师:
这个过程与一般的项目没有本质区别,基本的需求、分析、设计、开发、测试都是要有的。不同的地方是大数据项目采用的技术不像传统的基于数据库的SQL开发那么简单,对编程能力的要求较高,同时对遇到问题的排查能力要求也较高,因为是分布式运行,导致问题排查变得非常复杂。
■ 陈星星 科技公司 技术经理:
1、大数据项目实施过程中涉及到和客户的众多业务系统进行对接的,也就是数据的采集,到数据的清洗、集成、标准、数据治理、数据的建模、挖掘分析和最后的可视化等过程。
2、在和业务系统对接的过程中需要注意的必须拿到业务系统的数据字典(如果没有,拿到数据对数据的识别和分析非常困难)。
3、数据业务分析维度,需要项目经理进场需要客户明确的需求后确定系统的范围和边界(否则需求和范围不停的变,开发周期遥遥无期)。
4、准备好大数据平台要求的底层环境和资源(CPU、内存、硬盘、网络等),大数据项目对于这些资源的要求还是相对比较高的,例如硬盘容量,例如要分析日志类的数据或是流水数据。
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
Q6、企业级大数据平台如何选型?
A:
■ rein07 某证券 系统架构师:
现在,大数据平台基本特指Hadoop平台了,选型主要还是指Haoop管理平台。现在主流的厂商有cloudera和Hortonworks,国内有华为的fusion insight和星环科技的产品。相对来说,cloudera具有较大优势,市场占有率也较高,管理平台非常实用,对与平台管理人员来说是不可多得的好帮手
■ 陈星星 科技公司 技术经理:
Hadoop现在已经是大数据的事实标准了,企业级大数据平台建议选择基于Hadoop开源的生态,目前对于Hadoop开源商业推广最大的两个场景及cloudera(CDH版本,适合于linux系统上运行)和Hortonworks(HDP版本,支持运行在windows系统上运行),目前是一家公司了,可以选择其中一家产品即可
Q7、大数据中的实时计算SPark和Storm优缺点是什么?分别适合于哪些场景?
A:
■ rein07 某证券 系统架构师:
SparkStreaming和Strom都属于实时计算框架,有点都是可以做到对数据的实时处理。SparkStreaming是基于Spark Core实现的,所以对数据的处理要形成RDD,暨要形成数据窗口,所以其处理过程可以称之为微批处理,而storm是可以做到实时处理每一条数据的,所以相对来说,实时性比sparkstreaming更高。所以storm更适合处理实时性要求极高的场景。
■ 陈星星 科技公司 技术经理:
SPark体系中的 Spark Streaming严格意义上属于批处理计算框架,准实时,基于内存的计算框架,性能可以达到秒级,大数据除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,就应该首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性。
Storm是纯实时计算框架,来一条数据,处理一条数据,可以达到毫秒级,适合于要求可靠的事务机制和可靠性机制,即数据的处理完全精准,一条也不能多,一条也不能少,也可以考虑使用Storm。
形象点比喻,SPark就好比商城的直梯,Storm就好比商场的扶梯。
Q8、大数据分析中的实时推荐是如何实现的?
A:
■ rein07 某证券 系统架构师:
实时推荐需要使用实时处理框架结合推荐算法,从而做到对数据的实时处理和推荐。实时处理框架有Storm、Flink、SparkStreaming,组件可以对接Kafka,获取实时流数据,在实时框架内部实现对数据的处理过程。
■ 陈星星 科技公司 技术经理:
1、实时推荐需要借助实时计算框架例如Spark或是Strom技术
2、数据采集采用Flume+Kafka作为数据缓存和分发作用
3、同时还需要有非常适合的实时推荐算法,例如基于用户画像的实时推荐,或是基于用户行为的实施推荐、或是对商品相识度的实施推荐等不同的算法
Q9、数据治理有何高效的处理方法或工具?
A:
■ rein07 某证券 系统架构师:
数据治理没有具体的工具和方法,这是一项浩大的工程,可能牵扯到每个部门,既有技术人员参与,又要有业务人员参与,关键时刻还要有领导进行决策。每个公司的数据情况不同,处理方法也不尽相同,基本的方法是有的,暨通过对数据的梳理(元数据、主数据),发现数据质量问题,再通过质量标准或组织协调的方式,对数据进行标准化处理的。
■ 陈星星 科技公司 技术经理:
数据治理是一项人力和辛苦活,没有捷径和什么有效的工具,而且在一个大数据项目中,数据治理是非常重要的一个环节,因为只有数据质量满足前端应用需求,才有可能挖掘和分析出准确的结果
具体数据处理方法还需要看实际业务情况,例如数据库、数据类型、数据规模等
数据治理的过程是一个对业务系统数据梳理的过程,过程中发现的问题会反馈给业务部门,同时还要制定统一的质量和稽核标准,就好比给每个业务系统数据生成线上增加一个质量监管员
Q10、数据量大,数据类型繁杂的情况下,如何做性能保障?
在数据处理层是关注处理能力,还是要做业层的性能与传统性能一样关注响应的时间吗?
A:
■ rein07 某证券 系统架构师:
如何保障大数据平台的处理性能,关键还是看应用场景和业务需求,不是每种业务都需要高性能。
1、在类OLTP场景下,大数据平台有像HBase一样的组件,保证数据读写具有极高的性能和吞吐量。
2、在OLAP场景下,大数据平台有像Impala、Kudu、Kylin、Druid这样引擎,通过内存或预计算的方式保证查询性能。
3、在离线分析场景,有像Hive、Spark、Mapreduce这样的引擎,分布式处理海量数据,在这种场景下,性能和响应时间已无法做到保证。
■ 陈星星 科技公司 技术经理:
1、大数据的底层全部都是分布式架构,分布式架构具有很强的横向扩展能力,而且是使用廉价的PC服务器即可组件分布式架构,只有增加服务器数据,性能也可以横向扩展,
2、另外大数据平台在数据处理方面也均是采用分布式处理技术(例如 MR、 Hive、 Hbase 、 HDFS)
3、另外还有一些是基于内存的数据计算和处理架构Spark技术,大数据平台下对性能的要求没有和传统的交互式的响应不太一样,大数据分为实时和离线计算,实时计算要求响应时间,离线计算对于响应时间没有太高的要求
很多初学者,对大数据的概念都是模糊不清的,大数据是什么,能做什么,学的时候,该按照什么线路去学习,学完往哪方面发展,想深入了解,想学习的同学欢迎加入大数据学习qq群:957205962,有大量干货(零基础以及进阶的经典实战)分享给大家,并且有清华大学毕业的资深大数据讲师给大家免费授课,给大家分享目前国内最完整的大数据高端实战实用学习流程体系
Q11、数据预处理问题?
钢铁行业的数据比较复杂,对于对生产工艺不是特别了解的IT人员如何进行数据处理,或是应该由谁来进行数据处理?
A:
■ 陈星星 科技公司 技术经理:
数据预处理的过程包括数据的清洗、集成、整合、标准化等过程。
1、数据预处理的过程是由承建大数据项目的供应商来处理,或是专门做数据治理的公司来负责这项工作。
2、大数据项目中,数据的预处理会花费大量的时间,而且是手工工作量较多,如果对业务部太数据,势必会有很多问题,最好是由对业务相对了解的人员来参与数据的预处理的工作。
■ rein07 某证券 系统架构师:
只有高质量的数据才会有分析的价值,所以预处理过程显得尤为重要。数据是业务的数字化形式,对于比较复杂的行业数据,技术人员是不会知道怎么处理才能满足业务分析的需求的,必须要业务分析人员提出具体的数据处理需求,技术人员才能设计满足相应需求。