2015-09-06 83 views
1

任何人都可以告訴,有必要知道java學習hadoop的? 如果有人正在從事hadoop的工作,那麼請告訴我們在hadoop工作需要什麼?是否需要hadoop的java?

hadoop的確切用途是什麼? hadoop之前有什麼? hdfs和gfs有什麼區別?

我知道有很多問題,但如果任何人都可以幫助..這對我來說會很棒。

非常感謝。

回答

1

Hadoop是一個分佈式計算框架。它是一個事實上標準爲數據管理(分佈式存儲+分佈式處理)。因此Hadoop是一種適用於所有涉及數據管理生命週期(捕獲,存儲,處理和報告)的技術。 Hadoop是使用以下角色:

  • 聯繫
  • 開發
  • 數據分析師
  • 數據科學家
  • 業務分析師
  • 功能顧問
  • 等...

雖然Hadoop和它的大部分生態系統都是用Java編寫的,但它被企業中的各種人使用。所以我們需要幾個接口來針對所有觀衆並提高適應性。

Hadoop項目管理委員會展開了一些項目,以支持非Java程序員,程序員不,SQL程序員等等

以下是公用事業和項目,以支持所有觀衆的品種有:

Hadoop Streaming:它是Hadoop提供的一種實用工具,允許非Java程序員使用Perl,PHP,Python,Shell,R,C,C++,Scala,Groovy,Ruby等其他語言編寫MapReduce程序。

Hadoop Streaming = Hadoop +控制檯(STDOUT/STDIN)+外部程序。

與原生Java MapReduce相比,Hadoop流式傳輸速度有點慢,但對於集成非Java代碼的遺留代碼非常有用,它也適用於將R和Python等Data Science工具包與Hadoop集成。

有是基於Hadoop的流媒體開發了幾個項目:

  • RHadoop:R和Hadoop的
  • 小飛:Python的+ Hadoop的
  • mrjob:Python的+ Hadoop的

Hadoop Pipes:它是Hadoop提供的一種實用工具,允許非Java程序員使用C++編寫MapReduce程序。

Pydoop:它是一個使用Python編寫MapReduce程序的Python模塊。它在內部使用Hadoop Pipes。所以它是Python對Hadoop Pipes的封裝。

Pig:它提供了一種名爲Pig Latin的腳本語言,通過執行一系列轉換和聚合來分析您的數據。 Pig Latin很容易學習,它是一種數據流語言。對於沒有任何編程背景的人來說,這是一個正確的工具。

Hive/Impala/Drill/Tajo/Presto/MRQL:所有這些都是基於Hadoop的分佈式SQL引擎。這些提供了一種類似於查詢語言的SQL來運行即席查詢和數據總結。對於SQL程序員,數據庫分析師,數據倉庫程序員來說,這是不錯的選擇。

以上所有項目和實用程序都允許非java程序員使用他們選擇的語言編寫數據分析。帶有Java的Hadoop具有很大的優勢,可以根據Key Value對完全控制數據。

這裏的結論是,我們可以在沒有Java編程的情況下使用Hadoop進行數據分析。

3

什麼是hadoop的確切用法?

Apache的Hadoop的軟件庫是一個框架,允許大型數據集跨使用簡單的編程模型,計算機集羣的分佈式存儲和處理。請參閱文檔Apache-Hadoop

Hadoop提供高度可擴展,經濟高效,快速,靈活且具彈性的數據存儲。&分析平臺。

是否有必要知道學習Hadoop的java嗎?

不需要。但是你正在尋找Map Reduce作業的優化,Java提供了這種靈活性。

選擇,如果你沒有興趣在Java

PIG:一個高級數據流語言和執行框架並行計算。推薦給那些像Python這樣的腳本語言專家。

HIVE:一種數據倉庫基礎架構,提供數據彙總和臨時查詢。對於SQL編程方面的專家來說,建議這樣做的人的語法類似於SQL

PIGHIVE爲開發人員隱藏了Map Reduce Jobs的複雜性。他們提供更高級別的抽象來解決業務問題。

PIG and HIVE,都將腳本/查詢翻譯爲一系列MAP縮減作業。在性能方面,與在java中實現的傳統MAP縮減作業相比,它們效率不高。

請參閱本文爲Java Alternatives

在工作前,這取決於你的專業和你在Hadoop框架的生態系統的選擇。這很難回答。

的Hadoop之前,我們沒有最好的框架/平臺,它可以提供的Hadoop相同的優點與BigData。要實現Word計數類型的程序,您必須編寫腳本,執行併合並來自datanode的結果。

您可以在GFS Vs HDFS看到GFS和HDFS之間的比較。通過HDFS design

1

獲得對HDFS的良好洞察對於Hadoop而言,Java是否必需?

Hadoop使用Java構建,但要使用Hadoop,您不需要Java。 如果您瞭解Java,那麼您最好先在mapreduce上編碼。如果你不熟悉Java。您可以將您的技能專注於Pig和Hive以執行相同的功能。它們是類似SQL的工具,它們以不同的方式來編寫語法。如果你編碼的背景像python,C++等。你可以使用像Jython for Python這樣的庫將代碼轉換成Java。

Hadoop需要多少Java?

如果你想學習Java只對Hadoop的那麼這裏有話題的列表,你必須學會​​: 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