`
zhaoshijie
  • 浏览: 2262771 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Hadoop前十项重要考虑

 
阅读更多
关键字:使用Hadoop前十项重要考虑
摘要:Hadoop让大数据分析走向了大众化,然而它的部署仍需耗费大量的人力和物力。在直奔Hadoop之前,是否已经将现有技术推向极限?这里总结了对Hadoop投资前可以尝试的10个替代方案,省时、省钱、省力,何乐而不为?

让业务搭乘大数据技术确实是件非常有吸引力的事情,而Apache Hadoop让这个诱惑来的更加的猛烈。Hadoop是个大规模可扩展数据存储平台,构成了大多数大数据项目基础。Hadoop是强大的,然而却需要公司投入大量的学习精力及其它的资源。

如果得到正确的应用,Hadoop确实能从根本上提升你公司的业务,然而这条Hadoop的应用之路却充满了荆棘。另一个方面,许多企业(当然不是Google、Facebook或者Twitter)的数据体积并没有大到需要巨型Hadoop集群去做分析,他们纯粹是被“大数据”这个热门的词语给吸引的。

就像Dabid Wheeler所说“计算机科学的所有问题都有另一个层次间接的解决方案”,而Hadoop正是类似间接解决方案;当你的上司被一些流行词汇所吸引时,做正确的软件架构决策将变的非常艰难。

下文将给出一些对Hadoop进行投资前需要尝试的替代方案:

了解你的数据

数据的总体积

Hadoop是为大型数据集所建立的有效解决方案。

    GB级以上的文件系统HDFS。因此如果你的文件只是MB级的,你最好对数个文件进行整合(zip或者tar),让其达到数百兆或者是几GB。
    HDFS会将文件分割,并以64MB、128M或者更大的块进行存储。

如果你的数据集非常的小,那么使用这个巨型生态系统将不会很适合。这需要对自己的数据有足够的了解,并且分析需要什么类型的查询以及你的数据是否真的够大。

另一方面,鉴于你的计算指令可能很大,只通过数据库去测量数据的体积可能会存在误差。有时候数学计算或者分析小型数据集的排列可能会让得出的结果远大于实际数据体积,所以关键在于你对数据有切实的了解。

数据增长的速度

你可能在数据仓库或者其它的数据源中存有数TB数据,然而在建立Hadoop集群前有一个必须考虑的因素就是数据的增长速度。

对你的分析师提出几个简单的问题,比如:

    数据增速究竟有多快?这些数据是否以非常快的速度增长?
    几月或者几年后数据的体积究竟会有多大?

许多公司的数据增长都是按年算的。这种情况下,你的数据增长速度其实并不快;所以这里建议考虑归档和清除选项,而不是直接的奔往Hadoop。

如何减少需处理的数据

如果你确实有非常大体积的数据,你可以考虑通过以下的途径将数据缩减到非常适合管理的体积,以下的几个选项已经过产业几十年考验。

考虑归档

数据存档是对过期的数据进行分开存储,当然存储的时间根据实际需求制定。这需要对数据以及应用程序对数据的使用情况,有非常充分的了解。比如电子商务公司的大数据处理只将3个月内的数据存入活跃数据库,而旧订单则被存入单独的存储。

这个途径同样可以运用于你的数据仓库。当然你可以存储更多的近期数据用于报告和查询,使用频度少的数据可以被存入单独的存储设备。

考虑清除数据

有时候我们一直忙于收集数据而不清楚究竟需要保存多少数据,如果你存储了非常多用不到的数据,那么这将毫无疑问的降低你有效数据的处理速度。弄清你的业务需求并且审查数据是否可以被删除,从中分析出你需要储存数据的类型,这不仅会节省你的存储空间,同样会提升有效数据的分析速度。

一个经常用到的最佳实践就是给数据仓库建立附加列,比如created_date、created_by、update_date及updated_by。通过这些附加列可以对数据进行阶段性的访问统计,这样就可以清楚数据的有效周期。这里需要着重对待的是数据清除的逻辑,切记先思考再实现。如果你使用了一个归档工具,那么数据的清除将会变得非常容易。

不是所有的数据都很重要

你可能受不了储存所有业务相关数据的诱惑,你可能有很多的数据来源,比如:日志文件、营销活动数据、ETL作业等。你需要明白不是所有数据都对业务起关键作用,而且在数据仓库中保存所有的数据并不是有益的。在数据源过滤掉不需要的数据,甚至是在储存到数据仓库之前。不要对所有的数据进行存储,只分析你所需的数据。

注意哪些数据是你想要收集的

拿在线视频编辑业务来说,你会需要保存你用户做出的所有操作吗?这样的话可能会产生非常大的数据体积,如果你发现你的数据仓库不足以应对这些数据,你可能会考虑只存储元数据。虽然视频编辑是个非常极端的例子,然而并不妨碍我们在其它用例中考虑这些信息。

总而言之,根据业务的需求只收集所需要的数据。

智能分析

聘请了解业务的分析师

到目前为止,你应该已经清楚理解数据的重要性;所以在你做了上面所有步骤后并决定使用Hadoop时,聘请1个了解业务的分析师将会对你业务产生巨大帮助。

如果数据分析师不懂如何从中获取价值,那么Hadoop将不会产生任何作用,不要吝啬对业务有深刻认识的雇员投资。鼓励他们多做实验,并且使用新的方式去分析同一个数据,找出使用现有基础设施获利的途径。

为决策制定使用统计抽样

统计抽样可以说是非常古老的技术,研究者及数学家运用它在大体积数据上推断合理的结论。通过这个步骤,我们可以大幅度的缩减数据体积。取代追踪数十亿或者数百万的数据点,只需要跟踪其中数千或者数百的数据点就可以了。这个手段虽然不会给我们提供精准的结果,但是却可以对大型的数据集有一个高等级的理解。

提升技术

你真的已经达到关系型数据库处理的极限了吗?

在探索其它领域之前,你更应该审视关系数据库是否可以继续处理问题。传统的关系型数据库已经被使用了很长一段时间,而很多机构已经可以使用它管理TB级的数据仓库。所以在迁往Hadoop之前,不妨考虑以下的方法。

分割数据

数据切分是从逻辑上或物理上将数据分割成数个更好维护或访问的部分,同时很多流行的开源关系型数据库都支持分片(比如MySQL Partitioning及Postgres Partitionging)。

在传统数据库上考虑数据库分片

数据库分片是提升传统关系型数据库性能极限的最后一招,适用于数据可以逻辑分片在不同节点上并且很少做跨节点join分享的情况。在网络应用程序中,基于用户分片,并将用户相关信息储存在同一个节点上是提升性能的常见途径。

分片有很多限制条件,所以并不是适合所有场景,同样在用例中存在太多的跨节点jion,分片将发挥不了任何作用。

总结

Hadoop的部署将耗费公司巨量的人力和物力,如果能通过提升现有基础设施来达到目标也不失为一良策。

分享到:
评论

相关推荐

    Hadoop技术答疑汇总

    - **选择建议**:根据实际情况选择合适的发行版,如需更多企业级支持和服务,可考虑使用CDH。 #### 七、YARN中的资源隔离 - **知识点概述**:YARN支持通过cgroups(Cgroups v1/v2)进行资源隔离,实现CPU、内存等...

    hadoop-2.6.0-cdh5.14.2.tar.gz

    Hadoop 2.6.0是Hadoop发展中的一个重要版本,它引入了多项关键改进和新特性,如YARN(Yet Another Resource Negotiator),这是一个资源管理系统,负责集群资源的调度和分配,显著提升了系统的资源利用率和多任务...

    大数据及Hadoop概述课件.pptx

    Hadoop的设计灵感来源于Google的几项关键技术,包括MapReduce计算模型、BigTable分布式数据库和GFS(Google文件系统)。由于Google并未公开这些技术的源代码,Hadoop应运而生,由Apache软件基金会维护,成为了一个...

    【Hadoop与大数据41】韩拓-低成本构建有效的云存储运维体系

    2. **面向运维的生产过程**:从设计之初就考虑运维的需求。 3. **核心人员全面参与运维**:包括研发、产品等核心团队成员都参与到日常运维工作中。 4. **一切以服务品质为导向**:确保服务的稳定性和高效性始终放在...

    大数据技术原理及应用课实验7 :Spark初级编程实践

    优化和改进方面,可以考虑使用更高效的Join策略,如Broadcast Join来处理大型数据集,或者使用DataFrames和Datasets API来利用其编译时检查和优化。另外,还可以研究Spark的动态资源调度,以适应数据量的变化和集群...

    如何构建企业数据大屏.pptx

    常见的技术选型包括使用云计算平台(如阿里云)、Hadoop、Spark、 MongoDB 等。 四、计算架构 数据大屏的计算架构需要考虑到数据处理、存储和展示三个方面。计算架构可以分为三层:数据处理层、数据存储层和数据...

    1十亿行挑战这是一个有趣的探索,探索了用Java如何快速地聚合文本文件中的十亿行.zip

    首先,要处理十亿行数据,我们需要考虑如何优化I/O操作。Java的`BufferedReader`或`NIO`(New IO)框架如`Channels`和`Buffers`可以用于提高文件读取效率。通过批量读取和缓存数据,可以显著减少磁盘的I/O次数,从而...

    Hbase官方文档

    **2.7 重要配置项** - **Region Split Policy**:控制Region分裂策略。 - **Compaction Strategy**:数据压缩策略,影响性能和磁盘空间使用。 - **Bloom Filter**:用于快速判断某行是否存在,减少不必要的I/O操作...

    第十五届蓝桥杯大赛个人赛、设计赛、数字科技创新赛通知及相关附件(1).zip

    "第十五届蓝桥杯大赛"是中国国内一项重要的信息技术竞赛,旨在推动软件和信息技术专业人才的培养,激发学生创新能力和实践精神。大赛分为个人赛、设计赛和数字科技创新赛等多个环节,涵盖了编程、算法、电子设计等多...

    Yarn框架代码详细分析V0.3.pdf

    - **背景与需求:** Hadoop最初设计时只考虑到支持数十台服务器的规模。然而,随着互联网业务的迅猛发展,特别是大数据处理的需求增加,Hadoop必须面对数千乃至数万台服务器的大规模集群部署挑战。 - **YARN的出现:...

    一亿个为什么的压缩包啊

    最后,考虑到大数据的处理,可能涉及到的技术还包括HDFS(Hadoop Distributed File System),这是一个分布式文件系统,能处理和存储PB级别的数据。在HDFS中,数据被切分成块,并分布在集群的不同节点上,这与这里...

    18_第十八章_后端架构选型、离线及实时计算1

    第十八章 后端架构选型、离线及实时计算 在大数据时代,后端架构的选择至关重要,因为数据量的增长速度远超过单机处理能力的提升。分布式计算成为解决这一问题的关键,它允许数据和计算任务在多台机器上并行处理,...

    大数据风险监测服务平台建设方案.zip

    大数据风险监测服务平台是现代信息化社会中企业与机构应对复杂数据环境和潜在风险的重要工具。该平台的建设旨在通过集成各种数据源,运用先进的数据分析技术,实时监控并预测可能的风险,从而帮助企业做出明智的决策...

    【推荐】龙华时空信息云平台设计方案

    - **发展规划**:项目依据“十三五”国家信息化规划、深圳市信息化发展“十三五”规划、促进智慧城市健康发展指导意见等文件,确保发展方向符合国家和地方的发展战略。 - **技术标准**:技术参考依据涵盖了一系列...

    构建高效的研发与自动化运维.docx

    构建高效的研发与自动化运维体系还需要考虑使用的具体技术栈: 1. **语言**:Java、Shell、Node.js等。 2. **分布式组件**:ActiveMQ、Kafka、Zookeeper等。 3. **存储组件**:MySQL、MongoDB、Redis等。 4. **计算...

    电力行业大数据分析和优化项目可行性分析报告.docx

    - **项目定位**:电力行业大数据分析和优化项目是一项利用大数据分析技术来提升电力行业整体运营效率和服务质量的战略性项目。 - **行业背景**: - **电力需求持续增长**:随着工业化和城市化进程加快,对电力的...

Global site tag (gtag.js) - Google Analytics