[英]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.