【问题标题】:How can I config to access HDFS(namenode HA) with HiveConf class by using hive-common-1.2.1.jar?如何使用 hive-common-1.2.1.jar 配置使用 HiveConf 类访问 HDFS(namenode HA)?
【发布时间】:2016-05-27 15:44:06
【问题描述】:

谁知道为什么类HiveConf 现在没有HADOOPCONF 枚举类型hive-common jar

我使用 hive-common-1.2.1.jar HiveConf 类编写代码来访问 HDFS(HA namenode),我在下面得到一个错误。

我意识到我的代码没有配置HADOOPCONF,所以它无法连接到HDFS,但是hive-common-1.2.1.jar 中没有HADOOPCONF,我找到了以前版本的hive- common 有 HADOOPCONF。

http://www.docjar.com/html/api/org/apache/hadoop/hive/conf/HiveConf.java.html

我的问题是如何使用 hive-common-1.2.1.jar 配置访问 HDFS(namenode HA) 和 HiveConf 类?

这是错误:

Caused by: java.lang.IllegalArgumentException: java.net.UnknownHostException: cluster
at org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:374)
at org.apache.hadoop.hdfs.NameNodeProxies.createNonHAProxy(NameNodeProxies.java:312)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:178)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:665)

我的代码是:

hiveConf.setVar(HiveConf.ConfVars.HADOOPBIN, "/opt/modules/hadoop/bin");
hiveConf.setVar(HiveConf.ConfVars.HADOOPFS, "hdfs://cluster");
hiveConf.setVar(HiveConf.ConfVars.LOCALSCRATCHDIR, "/opt/modules/hive/temp");
hiveConf.setVar(HiveConf.ConfVars.DOWNLOADED_RESOURCES_DIR, "/opt/modules/hive/temp");
hiveConf.setBoolVar(HiveConf.ConfVars.HIVE_SUPPORT_CONCURRENCY, false);
hiveConf.setVar(HiveConf.ConfVars.METASTOREWAREHOUSE, "/warehouse");
hiveConf.setVar(HiveConf.ConfVars.METASTOREURIS, "thrift://127.0.0.1:9083");
hiveConf.setVar(HiveConf.ConfVars.METASTORE_CONNECTION_DRIVER, "com.mysql.jdbc.Driver");
hiveConf.setVar(HiveConf.ConfVars.METASTORECONNECTURLKEY, "jdbc:mysql://192.168.5.29:3306/hive?createDatabaseIfNotExist=true");
hiveConf.setVar(HiveConf.ConfVars.METASTORE_CONNECTION_USER_NAME, "hive");
hiveConf.setVar(HiveConf.ConfVars.METASTOREPWD, "123456");
hiveConf.setVar(HiveConf.ConfVars.HIVEHISTORYFILELOC, "/opt/modules/hive/temp");

【问题讨论】:

    标签: hive hcatalog metastore


    【解决方案1】:

    好的,我解决了这个问题。 因为 hive-common jar 中的 HiveConf 类默认从 hadoop 中加载“hdfs-site.xml”,只要你在运行时设置类路径指向“hdfs-site.xml”文件夹即可。

    CLASSPATH=$CLASSPATH:/opt/modules/hadoop/conf
    $JAVA -cp $CLASSPATH com.baofeng.data.writer.HiveHcatalogWriter
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 2023-01-05
      • 2014-07-31
      • 1970-01-01
      相关资源
      最近更新 更多