Hadoop生态系统与Spark 、Pig和Hive

x33g5p2x  于2020-12-26 发布在 Hadoop  
字(1.8k)|赞(0)|评价(0)|浏览(525)

在Hadoop生态系统中,Pig(Apache Pig)和Hive(Apache Hive)经常被结合使用。 字面翻译是猪和鸟窝(我)。 我不知道猪是大象的朋友,世界小得像鸟窝,不是吗?

据悉,Spark是未来Hadoop的主流...
Hadoop 1.x实现了MapReduce,来到这个世界已经10年了。 之后,在YARN上运行MapReduce的Hadoop 2.x出现了,Hadoop生态系统的发展也是从那个时候开始快速进步的。

而现在Spark受到了很多人的关注。(咦? 这不是标题吧?
Spark是一个内存分布式框架,它的开发目标是取代Hadoop的MapReduce部分。

各个Hadoop分销商都宣布,未来将重点发展Spark。 因此,Spark的Hadoop生态系统也有望得到发展。

但是,由于Spark是在内存中处理数据,所以服务器需要配备大量的内存。 但支持大内存的硬件还是很贵的。 另外,相应的生态系统也刚刚开始出现,所以在稳定性和对Hadoop环境的兼容性上还存在一些顾虑。
在这方面,老(对不起!)。 Hadoop生态系统的优势在于可以在商品硬件上使用。 此外,还有一个完善的社区来支持用户,并且快速解决BUG。 还是有很多需求的。

那么,让我们来看看旧的(再次抱歉!)。 我们再来看看老的Hadoop生态系统,这次是Pig和Hive。

为什么会有这几对特色呢? 原因是它们是如此强大的工具,几乎可以覆盖从数据采集到分析的所有过程,这一点我将在后面解释。

什么是pig?

Pig是由雅虎公司发布的一款开源软件。

它的开发是为了让MapReduce更容易编写。 Pig很适合描述数据流,数据的收集、处理和标准化。 其特点在《猪哲学》中有所描述。

猪什么都吃
猪吃任何东西(Pigs eat anything)→猪可以处理各种数据,不受文件格式的限制。
猪在哪里都能生活(猪在哪里都能生活
→ Pig最初是为并行数据处理而开发的,但它不依赖于任何特定的框架,包括Hadoop。
猪是家畜
→ Pig的设计是为了方便用户控制。 也可以包含用户代码。
飞(猪在飞)
→ Pig处理数据的速度很快,但我们会继续努力提高性能,不会实现阻碍Pig飞行的重磅功能。
Apache Pig项目
https://pig.apache.org/

其实,你也可以用Spark做同样的事情,但这个时候你需要用Scala语言来编码。 就像以前MapReduce是用Java写的一样...... 因此,Pig的产量比Spark高。

什么是Hive?

Hive是由Facebook开发的,用于在Hadoop上运行的数据仓库。 它现在和Pig一样,是Apache项目的一部分。

Hive允许您将HDFS平面文件当作RDBMS表来处理。
此外,Hive表可以使用HiveQL(一种类似于SQL的查询语言)进行访问。 如果你对RDBMS比较熟悉,使用起来就不会有任何不适。

Apache Hive项目
https://hive.apache.org/

使用Hive而不是RDBMS的好处是它可以处理大型数据集,当在RDBMS中处理数据时,必须将文件系统中的数据导入内存。 在这种情况下,即使使用共享无的RDBMS,最大数据大小也是千兆级的。 但在Hive的情况下,由于MapReduce在分布式环境中处理数据,它可以处理TB和PB级的数据。

这意味着Hive是一个比RDBMS更好的处理大量数据的工具。

pig和hive哪个更有用?

正如我在之前的专栏中提到的,Hive(第1名)和Pig(第5名)是目前使用最多的十大Hadoop生态系统之一。 但它们很少被单独使用。 而是将多个Hadoop生态系统结合起来使用,每个工具取长补短。

数据管道是一套收集和汇总产生的数据,并对其进行分析以产生结果的过程。 在这个过程中,我们根据自己的需要,综合运用各种工具。

Pig和Hive的开发目标都是为了让MapReduce更容易使用,但它们在这个数据管道中扮演着不同的角色。
在很多情况下,Pig被用作接近数据源的ETL工具,即处理原始数据的地方,因为它能够处理各种数据格式。
另一方面,Hive的使用贴近用户,比如BI工具,因为它可以执行用户友好的查询。

正如我前面提到的,Pig和Hive可以覆盖数据管道的大部分领域。
Pig和Hive在数据流水线中的作用

如果你想看看它们是如何工作的,每个发行版都有一个沙盒,可以在你的PC上运行,包括Pig和Hive以外的工具,所以你可以选择你需要的工具和功能。

相关文章

热门文章

更多