48。HBase、MapReduce和CLASSPATH
默认情况下,部署到MapReduce集群的MapReduce作业既不能访问$HBase_CONF_DIR下的HBase配置,也不能访问HBase类。
要为MapReduce作业提供所需的访问权限,可以将hbase-site.xml_To_$HADOOP_HOME/conf添加到$HADOOP_HOME/lib目录中,并将hbase jar添加到$HADOOP_HOME/lib目录中。然后,您需要在集群中复制这些更改。或者,您可以编辑$HADOOP_HOME/conf/HADOOP-env.sh,并将hbase依赖项添加到HADOOP_CLASSPATH变量中。这两种方法都不推荐,因为它会用HBase引用污染Hadoop安装。它还要求在Hadoop可以使用HBase数据之前重新启动Hadoop集群。
推荐的方法是让HBase添加其依赖项jar并使用HADOOP_CLASSPATH或-libjar。
我正在学习HBase如何与MapReduce 交互
我知道以上两种方式的含义,但我不知道如何配置推荐的方式
有人能告诉我如何以推荐的方式配置它吗?
如文档所示,在运行hadoop jar
之前,您可以使用export HADOOP_CLASSPATH=$(hbase classpath)
和hadoop jar ... -libjars [...]
真正推荐的方法是将HBase依赖项捆绑为mapreduce应用程序中的Uber JAR
唯一需要注意的是,您需要确保您的项目使用与服务器相同/兼容的hbase-mapreduce
客户端版本。
这样,除了指定hbase-site.xml
之外,您不需要任何额外的配置