为什么如此难用?Hadoop 的 12 个技术痛点

Hadoop是一个很神奇的创造,但它发展过快而表现出一些瑕疵。我爱大象,大象也爱我。不过这世上没什么是完美的,有的时候,即使是再好的朋友间也会起冲突。就像我和Hadoop之间的存在斗争一样。下面是我列举的12个痛点。

  1. Pig vs. Hive

你 在 Pig 里用不了 Hive UDFS。在 Pig 中你必须用 HCatalog 来访问 Hive 表。你在 Hive 里用不了Pig UDFS。在 Hive 中无论是多么小的额外功能,我都不会感觉像写一个 Pig 脚本或者“啊,如果是在 Hive 里我可以轻易地完成”,尤其是当我写 Pig 脚本的时候,当我在写其中之一的时候,我经常想,“要是能跳过这堵墙就好了!”。

  1. 被迫存储我所有共享库到 HDFS

这 是 Hadoop 的复发机制。如果你保存你的 Pig 脚本到 HDFS 上,那么它会自动假设所有的 JAR 文件都会在你那里一样。这种机制在 Oozie 和别的工具上也出现了。这通常无关紧要,但有时,必须存储一个组织的共享库版本就很痛苦了。还有,大多数时候,你安装在不同客户端的相同 JAR,那么为什么要保存两次?这在 Pig 中被修复了。别的地方呢?

  1. Oozie

Debug 并不好玩,所以文档里有很多老式的例子。当你遇到错误,可能并不是你做错了什么。可能是配置打印错误或者格式验证错误,统称“协议错误”。很大程度上,Oozie 就像 Ant 或 Maven,除了分布式的,不需要工具、有点易错。

  1. 错误信息

你在开玩笑,对吧?说到错误信息。我最喜欢的是任何 Hadoop 工具说的,“失败,无错误返回,”可以翻译成“发生了什么,能找到是你的运气。”

  1. Kerberos 身份认证协议

如 果你想要想出一种相对安全的 Hadoop,你就要用到 Kerberos。记住 Kerberos 和它是多么的老旧?所以你只要 LDAP,除了它 Hadoop 中的都没有被集成:没单点登录,无 SAML,无 OAuth,无证书传递(相反地,它会重新认证)。更有趣的是,Hadoop 是生态系统的每一个部分都写它自己的LDAP 支持,所以这就是矛盾的。

  1. Knox 数据保护应用程序

因 为用 Java 写一个合适的 LDAP 连接器需要做至少100次才能保证正确。哎呀,看看那代码。它并不真正地有效维护好连接池。实际上,我想 Knox 就是为 Java 或者一时的热情而创造出来的。你可以通过一个写好的 Apache config,mod_proxy,mod_rewrite 做同样的事情。实际上,那是 Knox 的基础,除了在 Java 中。对于启动,在认证之后,它不传递信息给 Hive 或 WebHDFS 或你正在访问的东西,但是会启动它。

  1. Hive 不会让我制作外部表格,但也不会删除它

如 果你让 Hive 来管理表格,要是你终止对表格的使用的话,它会自动将它们全部删除。如果你有一个外部表格,它就不会将它删除。为什么不能有一个“也删除外部表”的功能 呢?为什么我必须在外部删除?还有,当 Hive 特别是与 RDBMS 一起应用时,为什么不能有 Update 和 Delete 功能?

  1. Namenode 失败

Oozie、Knox 和 Hadoop 的其它部分都不遵循新的 Namenode HA 资料。你可以在 Hadoop 中启用HA,只要你不使用与之相关的东西。

  1. 文档

抱怨都是陈词滥调了,但是还是检查一下。37行错了——更糟糕的是,网络上的所有文章都错了。这证明没有人会费心在执行前检查一下。Oozie 文档更可怕,大多数例子对它给的格式校验都无法通过。

  1. Ambari 覆盖范围

我 曾批评过Ambari,就我所知的 Hadoop 架构来说,Ambari 能够工作真是很神奇。那么,他们可能会抱怨,Ambari 的缺点到底在哪?例如,Ambari 不能安装,或者有些情况下不能正确安装,包括多种HA 设置,Knox 等等。我确定它会变得更好,但是“手动安装之后”或者“我们已经创建了一个备份脚本”,这些不应该出现在我的邮件和文档中。

  1. 知识库管理

说 到Ambari,当知识正在升级的时候,你有完成过安装吗?我有过,但是它表现的并不好。实际上,有时候它找到了最快的镜像。Ambari 并不关注它下 载下来的东西是否兼容。你可以用你自己的方式配置那部分,但是它在数百个 Hadoop 节点上仍然会报说你安装有误。

  1. Null 指针异常

我经常在运行过程中遇到这样的转换错误,换句话说,他们不应该在Pig、Hive 等数据查询和处理工具中被表示为 Null 指针异常。对任何相似的抱怨,都会有的答复,“欢迎补丁!”或者“嘿,我正在处理。”

Hadoop 已经出来很长时间了,它一直是我最喜欢的工具之一,但是那些令人发狂的尖锐问题也使我很生气。只是希望开发者能多用心解决这些问题。不知道你有没有相似的 Hadoop bug 可以拿出来和大家分享一下,目的是督促Hadoop能做得更好!

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-10-26 15:39:26

为什么如此难用?Hadoop 的 12 个技术痛点的相关文章

Hadoop 的 12 个技术痛点

章作者Andrew C. Oliver是一位专业的软件顾问,同时还是北卡罗来纳州达勒姆大数据咨询公司Open Software Integrators的总裁和创始人.长时间的使用Hadoop,他发现了这12件事情真的影响了Hadoop的易用性. Hadoop是一个很神奇的创造,但它发展过快而表现出一些瑕疵.我爱大象,大象也爱我.不过这世上没什么是完美的,有的时候,即使是再好的朋友间也会起冲突.就像我和Hadoop之间的存在斗争一样.下面是我列举的12个痛点. 1. Pig vs. Hive 你

Caused by: org.xml.sax.SAXParseException; systemId: file:/home/hadoop/hive-0.12.0/conf/hive-site.xml; lineNumber: 5; columnNumber: 2; The markup in th

1:Hive安装的过程(Hive启动的时候报的错误),贴一下错误,和为什么错,以及解决方法: 1 [root@master bin]# ./hive 2 17/12/11 23:22:56 INFO Configuration.deprecation: mapred.input.dir.recursive is deprecated. Instead, use mapreduce.input.fileinputformat.input.dir.recursive 3 17/12/11 23:22

了解关于Hadoop的12个事实

现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软件库,并以自己儿子的大象玩偶为其命名的时候,谁能想到它有一天会占据"大数据"技术的头把交椅呢. 虽然Hadoop伴随大数据一同火爆起来,但相信还是有许多用户对于它不甚了解.在上周名的TDWI解决方案峰会中, TDWI研究主任兼行业分析师Philip Russom发表了"关于Hadoop的12点事实"的主题演讲,下面是演讲精华内容

《Hadoop海量数据处理:技术详解与项目实战》一1.1 Hadoop和云计算

1.1 Hadoop和云计算 Hadoop海量数据处理:技术详解与项目实战 Hadoop从问世之日起,就和云计算有着千丝万缕的联系.本节将在介绍Hadoop的同时,介绍Hadoop和云计算之间的关系,为后面的学习打下基础. 1.1.1 Hadoop的电梯演讲 如果你是一名创业者或者是一名项目经理,那么最好准备一份"电梯演讲".所谓电梯演讲,是对自己产品的简单介绍,通常都是1-2分钟(电梯从1层-30层的时间),以便如果你恰巧和投资人挤上同一部电梯的时候,能够说服他投资你的项目或者产品.

《Hadoop海量数据处理:技术详解与项目实战》一导读

前 言 Hadoop海量数据处理:技术详解与项目实战 为什么要写这本书 2013年被称为"大数据元年",标志着世界正式进入了大数据时代,而就在这一年,我加入了清华大学苏州汽车研究院大数据处理中心,从事Hadoop的开发.运维和数据挖掘等方面的工作.从出现之日起,Hadoop就深刻地改变了人们处理数据的方式.作为一款开源软件,Hadoop能让所有人享受到大数据红利,让所有人在大数据时代站在了同一起跑线上.Hadoop很好地诠释了什么是"大道至简,衍化至繁",Hadoo

《Hadoop海量数据处理:技术详解与项目实战》一3.1 认识HDFS

3.1 认识HDFS Hadoop海量数据处理:技术详解与项目实战HDFS的设计理念源于非常朴素的思想:当数据集的大小超过单台计算机的存储能力时,就有必要将其进行分区(partition)并存储到若干台单独的计算机上,而管理网络中跨多台计算机存储的文件系统称为分布式文件系统(distribute filesystem).该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通文件系统更为复杂,例如,使文件系统能够容忍节点故障且不丢失任何数据,就是一个极大的挑战.通过本章的介绍,

2012 Hadoop与大数据技术大会盛大开幕

摘要:11月30日-12月1日,中国IT界技术盛会--Hadoop与大数据技术大会(HBTC 2012)在北京新云南皇冠假日酒店隆重开幕.大会以"大数据共享与开放技术"为主题,设定"Hadoop生态系统"."大数据行业应用"."大数据共享平台与应用"."NoSQL与NewSQL"以及"大数据的技术挑战与发展趋势"五个分论坛. 2012年11月30日-12月1日,中国IT界技术盛会--Ha

《Hadoop海量数据处理:技术详解与项目实战》一1.2 Hadoop和大数据

1.2 Hadoop和大数据 Hadoop海量数据处理:技术详解与项目实战 在人们对云计算这个词汇耳熟能详之后,大数据这个词汇又在最短时间内进入大众视野.云计算对于普通人来说就像云一样,一直没有机会能够真正感受到,而大数据则更加实际,是确确实实能够改变人们生活的事物.Hadoop从某个方面来说,与大数据结合得更加紧密,它就是为大数据而生的. 1.2.1 大数据的定义 "大数据"(big data),一个看似通俗直白.简单朴实的名词,却无疑成为了时下IT界最炙手可热的名词,在全球引领了新

《Hadoop海量数据处理:技术详解与项目实战》一 3.2 HDFS读取文件和写入文件

3.2 HDFS读取文件和写入文件 Hadoop海量数据处理:技术详解与项目实战我们知道在HDFS中,NameNode作为集群的大脑,保存着整个文件系统的元数据,而真正数据是存储在DataNode的块中.本节将介绍HDFS如何读取和写入文件,组成同一文件的块在HDFS的分布情况如何影响HDFS读取和写入速度. 3.2.1 块的分布HDFS会将文件切片成块并存储至各个DataNode中,文件数据块在HDFS的布局情况由NameNode和hdfs-site.xml中的配置dfs.replicatio