读取hbase表时挂起mapreduce作业

olmpazwi  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(418)

我有一个4节点hadoop分布式集群(包括hbase)这样设置。
node1-namenode+hbase master+zookeeper
节点2-资源管理器
节点3-数据节点1+hbase区域服务器1+节点管理器
节点4-日期节点2+hbase区域服务器2+节点管理器
集群设置似乎很好,因为所有的web ui(hbase、namenode、resourcemanager)都将出现。现在,当我试图提交一个读/写hbase表的mapreduce作业时,它被挂起了。它不断地得到时间,但同样的工作很好,以防我在mapreduce代码中明确提到hbase凭据并在job中设置它们

Configuration conf =  HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "10.211.55.101");
conf.set("hbase.zookeeper.property.clientPort","2181");
conf.set("hbase.master", "10.211.55.101:60000");
//10.211.55.101 is the ipaddress of node1

这些属性已经在node1、node3和node4的hbase配置中设置。现在我的问题是,我是否需要在只有资源管理器运行的node2上设置有关hbase配置的任何内容?在代码中明确设置hbase配置时,为什么相同的作业可以正常工作

91zkwejq

91zkwejq1#

hbaseconfiguration.create()方法加载hbase-site.xml中的配置。确保node2的类路径中有hbase-site.xml可用。
下面是在hbase文档中指定的
java客户机使用的配置保存在hbaseconfiguration示例中。hbaseconfiguration上的工厂方法,hbaseconfiguration.create();,调用时,将读入在客户端类路径上找到的第一个hbase-site.xml的内容(如果存在)(调用还将考虑找到的任何hbase-default.xml;hbase.x.x.x.jar中附带hbase-default.xml)

相关问题