Hadoop是一个分布式计算框架。它是数据管理(分布式存储+分布式处理)的事实上的标准。因此,Hadoop是一项适用于所有涉及数据管理生命周期(捕获,存储,处理和报告)的技术。 Hadoop由以下角色使用:
管理
开发
数据分析师
数据科学家
业务分析师
功能顾问
等...
虽然Hadoop及其大部分生态系统都是用Java编写的,但它被企业中的各种人使用。因此,我们需要多个界面来定位所有受众并提高适应性。
Hadoop项目管理委员会发起了几个项目,以支持非Java程序员,非程序员,SQL程序员等......
以下是支持各种受众的实用程序和项目:
Hadoop Streaming:它是Hadoop提供的一个实用程序,允许非Java程序员使用其他语言编写MapReduce程序,如Perl,PHP,Python,Shell,R,C,C ++,Scala,Groovy ,Ruby等..
Hadoop Streaming = Hadoop + Console(STDOUT / STDIN)+外部程序。
与Native Java MapReduce相比,Hadoop流式传输速度有点慢,但对于集成用非Java编写的遗留代码非常有用,它也适用于将R和Python等数据科学工具包与Hadoop集成。
有几个项目是基于Hadoop Streaming开发的:
RHadoop:R和Hadoop
Dumbo:Python + Hadoop
mrjob:Python + Hadoop
Hadoop Pipes:这是Hadoop提供的一个实用程序,允许非Java程序员使用C ++编写MapReduce程序。
Pydoop:使用Python编写MapReduce程序是一个Python模块。它内部使用Hadoop管道。所以它是Hadoop Pipes的Python包装器。
Pig:它提供了一种类似脚本的语言Pig Latin,通过执行一系列转换和聚合来分析您的数据。 Pig Latin很容易学习,它是一种数据流语言。对于没有任何编程背景的人来说,它是一个合适的工具。
Hive / Impala / Drill / Tajo / Presto / MRQL:所有这些都是基于Hadoop的分布式SQL引擎。这些提供了一种类似SQL的查询语言来运行即席查询,数据摘要。它是SQL程序员,数据库分析师,数据仓库程序员的不错选择。
所有上述项目和实用程序都允许非Java程序员使用他们选择的语言编写数据分析。 Hadoop with Java在键值对方面具有很大的优势和对数据的完全控制。
这里的结论是,我们可以在没有Java编程的情况下使用Hadoop进行数据分析。