Java HBase mapreduce作业如何与服务器通信?(新手问题)

Java HBase mapreduce作业如何与服务器通信?(新手问题),java,hadoop,hbase,Java,Hadoop,Hbase,我不熟悉Hadoop和HBase,尽管我读过allot,但我仍然不了解map reduce作业API的基本层次结构和工作流程 据我所知,我需要使用JavaAPI来实现某些类,并将它们传递给hbase,后者将协调拆分和分发过程。对吗 如果是这样,应用程序如何与服务器通信以传递map reduce作业的相关代码?我这里缺少一个链接 谢谢我想你应该把事情弄清楚,把事情弄清楚。我发现最快的开始方式是玩游戏 另外,我不确定您是否提到HBase;您应该将Java类传递给Hadoop,而不是HBase 但是,

我不熟悉Hadoop和HBase,尽管我读过allot,但我仍然不了解map reduce作业API的基本层次结构和工作流程

据我所知,我需要使用JavaAPI来实现某些类,并将它们传递给hbase,后者将协调拆分和分发过程。对吗

如果是这样,应用程序如何与服务器通信以传递map reduce作业的相关代码?我这里缺少一个链接


谢谢

我想你应该把事情弄清楚,把事情弄清楚。我发现最快的开始方式是玩游戏

另外,我不确定您是否提到HBase;您应该将Java类传递给Hadoop,而不是HBase


但是,为了回答您的问题,应该在集群中的所有节点上安装Hadoop。Hadoop框架将负责管理映射并将任务减少到节点。

使用HBase执行M/R作业的标准方法与执行非HBase M/R作业的方法相同: ${HADOOP_HOME}/bin/HADOOP jar.jar[args]

这会将您的jar复制到所有任务跟踪器(通过HDF),以便它们可以执行您的代码

对于HBase,您通常还将使用HBase实用程序: TableMapReduceUtil.initTableReducerJob

这使用内置算法拆分HBase表(使用表的区域),以便计算可以分布在m/r作业上。如果需要不同的拆分,则必须修改拆分的计算方式,这意味着您无法使用内置实用程序


您可以指定的另一件事是返回行的条件。如果使用内置扫描条件,则不必执行任何特殊操作。但是,如果要创建自定义比较器,则必须确保区域服务器的类路径中包含此代码,以便它们可以执行它。在执行此操作之前,请仔细检查内置比较器,因为它们非常强大。

运行HBase MapReduce作业时,类路径必须同时包含HBase和MapReduce配置文件。配置文件将包含诸如JobTracker、HDFS NameNode和HBase主节点的位置等设置。运行时将自动从配置文件中获取所有这些设置,以便您的作业知道要联系哪些服务器。

Adrian,谢谢。我读了教程、书和其他许多书。这一点我认为是显而易见的,似乎没有人提及。我看到了通过eclipse执行代码的示例,而不仅仅是通过Hadoop命令行,所以我不明白它到底是如何工作的。你意识到你需要直接在Hadoop服务器上运行mapreduce作业吗?恐怕我对Eclipse集成一无所知。这就是我的想法,但看看这里