簡體   English   中英

HBase mapreduce作業如何與服務器通信? (新手問題)

[英]How does HBase mapreduce job communicate with server? (newbie question)

我是Hadoop和HBase的新手,即使我已經閱讀過分配,但我仍然不了解MapReduce作業API的基本層次結構和工作流程。

據我了解,我將需要使用Java API來實現某些類,並將它們傳遞給hbase,后者將協調拆分和分發過程。 那是對的嗎?

如果是這樣,應用程序如何與服務器通信以傳遞地圖減少作業的相關代碼? 我這里缺少鏈接...。

謝謝

當您運行HBase MapReduce作業時,您的類路徑必須同時包含HBase和MapReduce配置文件。 配置文件將包含設置,例如JobTracker,HDFS NameNode和HBase主節點的位置。 然后,運行時將自動從配置文件中提取所有這些設置,以便您的作業知道要聯系的服務器。

我認為您應該只完成基礎教程 ,這應該使事情變得清楚。 我發現最快的入門方法是使用Cloudera VM

另外,我不確定您對HBase的引用。 您應該將Java類傳遞給Hadoop,而不是HBase。

但是,為了回答您的問題,應在群集中的所有節點上安裝Hadoop。 Hadoop框架將負責管理地圖並減少任務到節點。

使用HBase執行M / R作業的標准方法與執行非HBase m / r作業的方法相同:$ {HADOOP_HOME} / bin / hadoop jar .jar [args]

這會將您的jar復制到所有任務跟蹤器(通過HDFS),以便它們可以執行您的代碼。

使用HBase,您通常還會使用HBase實用程序:TableMapReduceUtil.initTableReducerJob

這使用內置算法來拆分HBase表(使用表的區域),以便可以將計算分布在m / r個作業上。 如果要使用其他拆分,則必須修改拆分的計算方式,這意味着您無法使用內置實用程序。

您可以指定的另一件事是返回的行上的條件。 如果您使用內置掃描條件,則無需執行任何特殊操作。 但是,如果要創建自定義比較器,則必須確保區域服務器在其類路徑中具有此代碼,以便它們可以執行它。 在走這條路線之前,請仔細檢查內置比較器,因為它們非常強大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM