2016-05-20 7 views
0

クラスHiveConfHADOOPCONFの列挙型がない理由が分かっているのは誰ですか?hive-common jarになりましたか?hive-common-1.2.1.jarを使用してHiveConfクラスでHDFS(namenode HA)にアクセスするにはどうすればよいですか?

hive-common-1.2.1.jar HiveConfクラスを使用してHDFS(HA namenode)にアクセスするコードを作成しましたが、以下のエラーが表示されます。

は、私はこれ以上、私はハイブ-共通の以前のバージョンがあるを見つけたので、それはHDFSに接続できない私のコードはHADOOPCONFをconfigのではないことに気付きましたが、ハイブ共通-1.2.1.jarにはHADOOPCONFはありませんHADOOPCONF。

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

私の質問は、私はハイブ共通-1.2.1.jarを使用してHiveConfクラスでHDFS(名前ノードHA)にアクセスするために設定できるの方法ですか?ここで

は誤りです:

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"); 

答えて

0

OK、私はこの問題を解決しました。 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 
関連する問題