任何人都可以告诉我有必要知道java学习hadoop吗? 如果有人正在研究hadoop那么请告诉我们在hadoop找到工作需要什么?
hadoop的确切用途是什么? hadoop之前有什么? hdfs和gfs有什么区别?
我知道有很多问题,但是如果有人可以提供帮助......这对我来说很棒。
非常感谢你们。
答案 0 :(得分:3)
hadoop的确切用途是什么?
Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式存储和处理大型数据集。请参阅Apache-Hadoop
上的文档Hadoop提供高度可扩展,经济高效,快速,灵活和灵活的数据存储。分析平台。
是否有必要了解java以学习Hadoop?
不需要。但是您正在考虑优化Map Reduce作业,java提供了这种灵活性。
替代方案,如果您对java不感兴趣
PIG :用于并行计算的高级数据流语言和执行框架。建议人们使用像Python这样的脚本语言专家。
HIVE :提供数据汇总和临时查询的数据仓库基础架构。对于SQL编程专家而言,建议使用类似于SQL
的语法 PIG
和HIVE
为开发人员隐藏了Map Reduce Jobs的复杂性。它们提供更高级别的抽象,以解决业务问题。
PIG
和HIVE
都将脚本/查询转换为一系列MAP减少作业。在性能方面,与在java中实现的传统MAP减少作业相比,它们效率不高。
请参阅此文章了解Java Alternatives
在工作方面 ,这取决于您的专业知识和您在Hadoop框架中选择的生态系统。很难回答。
在Hadoop之前 ,我们没有最好的框架/平台,它可以提供Hadoop与BigData相同的优势。要实现Word计数类型的程序,您必须编写脚本,执行并合并来自datanode的结果。
您可以在GFS Vs HDFS看到GFS和HDFS之间的比较。在HDFS design
了解HDFS答案 1 :(得分:1)
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开发的:
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进行数据分析。
答案 2 :(得分:1)
Hadoop需要Java吗?
Hadoop是用Java构建的,但是为了在Hadoop上工作,你不需要Java。 如果您了解Java,则首选,然后您可以在mapreduce上进行编码。如果您不熟悉Java。您可以将您的技能集中在Pig和Hive上以执行相同的功能。它们是类似SQL的工具,具有不同的编写语法的方式。如果您正在使用python,C ++等编写背景。您可以使用Jython for Python等库将代码转换为Java。
Hadoop需要多少Java?
如果您只想为Hadoop学习Java,那么这里是您必须学习的主题列表: 1.核心Java的基础 - 变量,类,函数,继承,包,处理错误,流控制,数组,API。 - 一些有用的字符串函数//对数据过滤器很有用 - 集合和通用 - ArrayList,Hashtable等
要了解有关您需要在Java中学习的主题的更多详细信息,请查看以下文章: https://www.dezyre.com/article/-how-much-java-is-required-to-learn-hadoop/103
要了解GFS和HDFS,请查看本文: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.454.4159&rep=rep1&type=pdf