不得不了解的Hadoop知识

fn67 9年前

不得不了解的Hadoop知识

在去年曾经列出了一张应当了解的Hadoop 知识清单。如今2015年也已经少了两个月,我认为我现在应当检查一下大家对Hadoop的了解情况,同时在清单内容中增加一些技术。

首先,我希望大家不要忘记之前所掌握的基本内容。与去年一样,Yarn 和 HDFS在今年仍然很重要。我希望大家能够记住这一生态圈中的东西。尽管许多人可能会认为HBase和Cassandra与Hadoop无关,但是实际上 HBase已经变得极为关键,Cassandra也已经被市场所接受。(如果你认为自己的大脑空不够用了,至少你可以在Pivotal出现后忘记HAWQ 或Greenplum的存在。)

目前,大家可能应该对与Splice Machine类似的Phoenix有所了解,这些我在去年的清单中曾经提到过。Phoenix实质上是一个建在HBase之上的RDBMS,支持健全的 SQL子集JDBC和其运作。虽然Phoenix的速度比Hive快,但是我并不认为它们会取代Hive,因为Hive目前仍然非常适合那些你不想迁移至 HBase但又想以其它方式进行分析的平面文件。Pheonix由James Taylor开发,此人对那些以他名字所开的玩笑并不反感。

如果之前大家没有听从我的建议学习一些Spark和Storm的知识,那么现在还来得及(注:你可以忘记Shark,转而学习Spark SQL)。如今Spark正逐步被接受。当人们在同一句话中提及“实时”和“Hadoop”时,那么这句话中可能也会提及“Storm”。虽然两者有许多 重叠之处,但是两者在一些地方又各有长处。

大家可能还应当对Kafka有所了解。如果大家正在使用JMS、AMQ或其它任何一种通知工具,那么都会对Kafka有所了解。如果你正在使用 Storm,那么你可能在使用Storm的大部分时间中都是通过Kafka来确定小的比特流是哪里消失,而不只是将其放在dev/null中。

如果认为将数据从Hadoop A转移至Hadoop B是在浪费时间,认为用Oozie来清理数据非常费事,那么你可能会希望学习Falcon ,编写一套流处理程序。

虽然Ambari支持安装Hadoop集群,但是这可能并不是你所期望的安装、配置和重置大型集群的方式。此外,如果你有一个庞大的数据中心, 并且不想指定哪些服务器只能用于批处理而不能用于流处理,那么该怎么办?如果你只是想简单地将资源汇聚在一起,那么又该怎么办?这时Mesos可能会成为 你的救星。

如果有人要求你提升安全性,那么你或许可以使用Knox。它们对于Ranger来说可能极为重要。在某种程度上,Ranger可能会导致所创建 的Hadoop生态圈产生脱节的副作用。虽然有的理念认为用户是用户,安全是安全,但是我认为我们不应该让Hive、HBase、Storm、Knox彼 此分离,而是应当让它们有机地结合在一起。目前我们还不能太高兴(+微信关注网络世界),因为它们还没有实现这一功能。尽管文件还未完成,但是我们还是能 够在Hortonworks网站中找到许多相关的东西。

除了这些,我们还应当了解一些Hadoop之外的东西。如应当熟悉LDAP。我是意思是,虽然没人喜欢活动目录,但是每个人都在用它,LDAP 则是实现对其整合的重要方式之一。不幸的是,Hadoop中最完整的安全模型是Kerberos。由于比较老,因此部署起来极为费时。但是我们还是应当知 道如何将它们从A点部署到B点再到C点。

此外,我还建议大家学习一下Docker,搞清楚Docker是什么。幸运的是,如果你了解Solaris Zones是什么并且能够想象打包的情况,那么你可能会很快地搞清楚Docker是什么以及它们能干什么。

最重要的是,大家需要学习一些关于机器学习的知识。通过预测性分析,它们能够帮助大家进行预测。此外,大家还应当掌握清单中从Mahout到MLib中的内容,至少是了解这些技术和算法的基本原理。

最后,我希望大家在去年都在努力学习这些清单中的内容,并且已经做好了学习新增知识的准备。我也希望Kerberos或是Phoenix没有让大家感到头疼。Hadoop是一个正在不断成长的生态系统,跟上它的成长步伐是一种挑战,但是我相信大家能够成功。