Hadoop,有所为而有所不为

2023-12-08 14:50

本文主要是介绍Hadoop,有所为而有所不为,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【51CTO专稿】使用大数据技术有着强烈的吸引力,而如今没有比Apache Hadoop更诱人的大数据技术了,这种可扩展的数据存储平台是许多大数据解决方案的核心。

hadoop

但是尽管Hadoop颇具吸引力,想了解Hadoop能够为企业扮演什么角色、如何最有效地部署它,仍要面临一条很陡的学习曲线。换句话说,学起来很费劲。

只有明白了Hadoop的有所为而有所不为,你才能更清楚地了解如何才能最有效地把它部署到你自己的数据中心或云环境。然后,才可以为部署的Hadoop落实最佳实践。

Hadoop的有所不为

我们不打算花大量的时间来解释何谓Hadoop,因为许多技术文档和媒体报道已对此作了深入介绍。一言以蔽之,知道Hadoop的两个主要组件很重要:一个是用于存储的Hadoop分布式文件系统(HDFS),另一个是MapReduce框架,让你可以对Hadoop里面存储的任何数据执行批量分析任务。值得一提的是,这种数据不一定是结构化数据,这使得Hadoop非常适合分析和处理来自社交媒体、文档和图形等来源的数据:即并不容易适用于行和列的任何数据。

这倒不是说,你无法将Hadoop用于结构化数据。实际上,市面上有许多解决方案可以充分利用Hadoop的这个优点:每TB比较低的存储开支,以便将结构化数据存储在Hadoop中,以取代关系数据库系统(RDBMS)。但是如果你的存储需求不是那么大,那么在Hadoop和RDBMS之间来回转移数据毫无必要。

你不想使用Hadoop的一个方面是事务型数据。顾名思义,事务型数据异常复杂,因为电子商务网站上的交易事务会生成许多步骤,而这些步骤都必须迅速加以实现。这种场景根本就不适合使用Hadoop。

Hadoop也不适合用于要求延迟时间极短的结构化数据集,比如当网页由典型的LAMP堆栈中的MySQL数据库来呈现时。这需要速度快,而Hadoop很难满足这样的要求。

Hadoop的有所为

由于批量处理功能,Hadoop应该部署在这些场合:索引编制、模式识别、推荐引擎建立和情绪分析;在所有这些场合下,数据大量生成,存储在Hadoop中,然后最终使用MapReduce函数来进行查询。

但是这并不意味着,Hadoop会取代你数据中心里面目前的组件。恰恰相反,Hadoop会集成到你现有的IT基础设施里面,以便充分利用进入到贵企业的海量数据。

比如说,设想一个相当典型的非Hadoop企业网站在处理商业交易。据Cloudera的教育服务主管Sarah Sproehnle声称,来自其一个客户的流行网站的日志每天晚上都要经历抽取、转换和加载(ETL)的过程——这个过程可能最多耗时3小时,然后把数据存储到数据仓库中。这时,存储过程将被启动,另外过两小时后,被清理的数据将驻留在数据仓库中。不过,最终的数据集将只有原始大小的五分之一——这意味着,就算可以从整个原始数据集获取什么价值,现在这个价值也荡然无存了。

Hadoop集成到这家企业后,情况大为改观:节省了时间和精力。来自Web服务器的日志数据不用经历ETL操作,而是直接被完整地发送到了Hadoop里面的HDFS。然后,对日志数据执行同样的清理过程,现在只使用MapReduce任务。一旦数据清理完毕,随后被发送到数据仓库。但是这个操作要迅速得多,这归因于省去了ETL这一步,加上MapReduce操作速度快。而且,所有数据仍然保存在Hadoop里面,准备回答网站操作人员之后可能提出来的任何额外问题。

想了解Hadoop,有必要明白这个重要的一点:千万不要把它看作是取代你现有的基础设施,而是补充数据管理和存储功能的一种工具。使用Apache Flume或Apache Sqoop之类的工具,你就能把现有系统与Hadoop联系起来,并且对你的数据进行处理——不管数据有多大。Apache Flume可以将数据从RDBMS获取到Hadoop,并将数据从Hadoop获取到RDBMS;Apache Sqoop则可以将系统日志实时抽取到Hadoop。你只要为Hadoop添加节点,就可以执行数据存储和处理任务。

所需的硬件和成本

那么,我们又需要多少的硬件呢?

估计Hadoop所需的硬件有点不一样,这取决于你是在问哪家厂商。Cloudera的清单详细地列出了Hadoop的典型从属节点应该有怎样的硬件配置:

中档处理器

4GB至32 GB内存

每个节点连接至千兆以太网,并配备一只万兆以太网架顶式交换机

专用的交换基础设施,以避免Hadoop拥塞网络

每个机器4至12个驱动器,非RAID配置方式

另一家Hadoop经销商Hortonworks的硬件规格大同小异,不过网络方面的信息来得模糊一点,那是由于任何某家企业添加到Hadoop实例的工作负载可能不一样。

Hortonworks的首席技术官Eric Baldeschwieler写道:“一条经验法则就是,要关注网络成本与计算机成本之比,网络成本尽量控制在总成本的20%左右。网络成本应包括你的整个网络、核心交换机、机架交换机和所需的任何网卡等。”

至于Cloudera,它估计每个节点所需的成本在3000美元至7000美元之间,具体取决于你确定每个节点有什么样的硬件规格。

Sproehnle也概述了一条很容易遵守的经验法则,帮助你规划Hadoop容量。由于Hadoop具有线性扩展的特性,你只要添加一个节点,就可以增加存储和处理能力。这使得规划起来简单直观。

比如说,要是你的数据每个月增加1TB,那么规划方法如下:Hadoop将数据复制三次,所以你需要3TB的原始存储空间才能容纳新增加的1TB数据。留出一点额外空间(Sproehnle估计要预留30%),以便处理数据操作;这样一来,每个月实际需要的存储空间是4TB。如果你使用4个1 TB驱动器的机器作为节点,每个月就需要一个新的节点。

好就好在,所有新的节点一旦连接上,就可以立即投入使用,从而让你的处理和存储能力增强X倍,其中X指节点的数量。

不过,安装和管理Hadoop节点其实并非易事,但是市面上有许多工具可以助你一臂之力。Cloudera 管理器、Apache Ambari(这是Hortonworks用于其管理系统的工具)和MapR控制系统都是同样卓有成效的Hadoop集群管理工具。如果你使用一套“纯粹”的Apache Hadoop解决方案,还可以关注Platform Symphony MapReduce、StackIQ Rocks + Big Data和Zettaset Data Platform等第三方Hadoop管理系统。

当然,说到为贵企业部署一款Hadoop解决方案,本文介绍的这些内容只是皮毛而已。也许最宝贵的心得在于明白这一点:Hadoop并非旨在取代你目前的数据基础设施,而是只是起到互补作用。

一旦弄清楚了这个重要的区别,就比较容易开始考虑Hadoop可以如何帮助贵企业,没必要对你现有的数据流程进行大刀阔斧的改动。

这篇关于Hadoop,有所为而有所不为的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/470267

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【Hadoop|MapReduce篇】MapReduce概述

1. MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。 MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 2. MapReduce优缺点 2.1 优点 MapReduce易于编程 它简单的实现一些接口,就可以完成一个分布式

【hadoop Sqoop】Sqoop从mysql导数据到hdfs

1.下载sqoop安装包 wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 2.解压安装包 tar -xzvf /sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 3.配置hadoop mv s

【Hadoop|HDFS篇】NameNode和SecondaryNameNode

1. NN和2NN的工作机制 思考:NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访 问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在 内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的 Fslmage。 这样又会带来新的问题,当在内存中的元数据更新时,如

【Hadoop|HDFS篇】DataNode

1. DataNode的工作机制 1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。 2)DataNode启动后向NameNode注册,通过后,周期性(6h)的向NameNode上报所有块信息。 DN向NN汇报当前解读信息的时间间隔,默认6小时。 DN扫描自己节点块信息列表的时间,默认为

Mac搭建华为云平台Hadoop+spark步骤

1、安装终端和文件传输软件 下载、安装、配置 详戳数据平台搭建文件夹 Transmit 用于文件传输 iTerm2    用于终端 2、连接与登录 mac 使用iTerm2快捷登录远程服务器 Mac Transmit连接 (密码不可复制,手动输入) 3、安装jdk 4、修改主机名 Linux系统下如何修改主机名 4、安装配置hadoop

Hadoop Namenode元数据持久化机制与SecondaryNamenode的作用详解

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 我们都知道namenode是用来存储元数据的,他并不是用来存储真正的数据。 那么他的元数据怎么进行持久化呢! FsImage 文件系统的镜像文件叫fsImage,它包括了文件和块信息的映射,还有文件系统的属性信息。 datan