【问题标题】:How HBase add its dependency jars and use HADOOP_CLASSPATHHBase 如何添加其依赖 jar 并使用 HADOOP_CLASSPATH
【发布时间】:2021-10-10 23:17:31
【问题描述】:

48. HBase, MapReduce, and the CLASSPATH

默认情况下,部署到 MapReduce 集群的 MapReduce 作业无权访问 $HBASE_CONF_DIR 下的 HBase 配置或 HBase 类。

要为 MapReduce 作业提供所需的访问权限,您可以添加 hbase-site.xml_to _$HADOOP_HOME/conf 并将 HBase jar 添加到 $HADOOP_HOME/lib 目录。然后,您需要在整个集群中复制这些更改。或者您可以编辑 $HADOOP_HOME/conf/hadoop-env.sh 并将 hbase 依赖项添加到 HADOOP_CLASSPATH 变量中。不推荐使用这两种方法,因为它会使用 HBase 引用污染您的 Hadoop 安装。它还要求您重新启动 Hadoop 集群,然后 Hadoop 才能使用 HBase 数据。

推荐的方法是让 HBase 添加其依赖 jar 并使用 HADOOP_CLASSPATH 或 -libjars。

我正在学习 HBase 如何与 MapReduce 交互

我知道以上两种方式是什么意思,但是不知道如何配置推荐的方式

谁能告诉我如何以推荐的方式配置它?

【问题讨论】:

    标签: hadoop mapreduce hbase


    【解决方案1】:

    如文档所示,在运行 hadoop jar 之前,您可以使用 export HADOOP_CLASSPATH=$(hbase classpath) 并且可以使用 hadoop jar ... -libjars [...]


    真正推荐的方法是在您的 mapreduce 应用程序中使用 bundle your HBase dependencies as an Uber JAR

    唯一需要注意的是,您需要确保您的项目使用与服务器相同/兼容的hbase-mapreduce 客户端版本。

    这样,您不需要任何额外的配置,除了可能指定hbase-site.xml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-10
      • 2018-04-03
      • 2016-02-22
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      相关资源
      最近更新 更多