2015-05-01 23 views
5

ho installato CDH5.4 a singolo nodo seguendo le istruzioni here, anche, ho messo il hive-metastore in localmode utilizzando questi instructions e tutto funziona alla perfezione, tranne quando ho provato a collegare pig con la metastore:Bandiera -useHCatalog non funziona

➜ ~ pig -useHCatalog 
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
2015-05-01 15:45:08,657 [main] INFO org.apache.pig.Main - Apache Pig version 0.12.0-cdh5.4.0 (rUnversioned directory) compiled Apr 21 2015, 12:19:15 
2015-05-01 15:45:08,658 [main] INFO org.apache.pig.Main - Logging error messages to: /home/itam/pig_1430495108571.log 
2015-05-01 15:45:09,035 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:09,035 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:09,035 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:8020 
2015-05-01 15:45:09,940 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:09,941 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: localhost:8021 
2015-05-01 15:45:09,941 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:09,999 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,001 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,088 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,089 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,125 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,126 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,160 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,162 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,194 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,195 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,227 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,228 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,261 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,262 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 
2015-05-01 15:45:10,295 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS 
2015-05-01 15:45:10,296 [main] INFO org.apache.hadoop.conf.Configuration.deprecation - mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 

e quando ho cercato di accedere alla tabella:

grunt> a = load 'ufos' using org.apache.hcatalog.pig.HCatLoader(); 
2015-05-01 15:46:11,656 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve org.apache.hcatalog.pig.HCatLoader using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.] 
Details at logfile: /home/itam/pig_1430495108571.log 
grunt> 

Hadoop versione

➜ ~ hadoop version 
Hadoop 2.6.0-cdh5.4.0 
Subversion http://github.com/cloudera/hadoop -r c788a14a5de9ecd968d1e2666e8765c5f018c271 
Compiled by jenkins on 2015-04-21T19:16Z 
Compiled with protoc 2.5.0 
From source with checksum cd78f139c66c13ab5cee96e15a629025 
This command was run using /usr/lib/hadoop/hadoop-common-2.6.0-cdh5.4.0.jar 

UPDATE: Ho appena provato con Impala, e non lo vede nulla:

➜ ~ impala-shell                                                        
/usr/lib/python2.7/dist-packages/pkg_resources.py:1049: UserWarning: /home/itam/.python-eggs is writable by group/others and vulnerable to attack when used with get_resource_filename. Consider a more secure location (set with .set_extracti 
on_path or the PYTHON_EGG_CACHE environment variable). 
    warnings.warn(msg, UserWarning) 
Starting Impala Shell without Kerberos authentication 
Connected to 6b512e41337d:21000 
Server version: impalad version 2.2.0-cdh5 RELEASE (build 2ffd73a4255cefd521362ffe1cfb37463f67f75c) 
Welcome to the Impala shell. Press TAB twice to see a list of available commands. 

Copyright (c) 2012 Cloudera, Inc. All rights reserved. 

(Shell build version: Impala Shell v2.2.0-cdh5 (2ffd73a) built on Tue Apr 21 12:09:21 PDT 2015) 
[6b512e41337d:21000] > invalidate metadata; 
Query: invalidate metadata 
[6b512e41337d:21000] > show tables; 
Query: show tables 

Fetched 0 row(s) in 0.00s 

ma da beeline:

~ beeline -u jdbc:hive2:// 
scan complete in 2ms 
Connecting to jdbc:hive2:// 
Connected to: Apache Hive (version 1.1.0-cdh5.4.0) 
Driver: Hive JDBC (version 1.1.0-cdh5.4.0) 
Transaction isolation: TRANSACTION_REPEATABLE_READ 
Beeline version 1.1.0-cdh5.4.0 by Apache Hive 
0: jdbc:hive2://> show tables; 
OK 
+-----------+--+ 
| tab_name | 
+-----------+--+ 
| ufos  | 
+-----------+--+ 
1 row selected (0.701 seconds) 

Ha funzionato ... Cosa sta succedendo?

UPDATE: Sono in esecuzione hcatalog troppo

➜ ~ sudo service hive-webhcat-server status 
* WEBHCat server is running 

➜ ~ hcat -e "desc ufos"      
OK 
timestamp    string     from deserializer 
city     string     from deserializer 
state     string     from deserializer 
shape     string     from deserializer 
duration    string     from deserializer 
summary     string     from deserializer 
posted     string     from deserializer 
Time taken: 1.314 seconds 

UPDATE: Il problema con impala era dovuto che non ho copiato hive-site.xml a /etc/impala/conf, una volta fatto questo, impala-shell funzionato correttamente.

risposta

8

Il caricatore in uso è deprecato. Invece di utilizzare org.apache.hcatalog.pig.HCatLoader, è necessario utilizzare org.apache.hive.hcatalog.pig.HCatLoader.

Da org.apache.hcatalog.pig.HCatLoader:

obsolete. Usa/modificare HCatLoader invece

0

come hai iniziato a vedere i problemi che ho è con hive-site.xml di file - è necessario inserire nel classpath

Come menzionato here:

Un'azione del flusso di lavoro che interagisce con HCatalog richiede i seguenti jar nel classpath: hcatalog-core.jar, webhcat-java-client.jar, hive-common.jar, hive-exec.jar, hive-metastore.jar, hive-serde.jar e libfb303.jar. hive-site.xml che ha la configurazione per comunicare con il server di HCatalog deve anche essere nel classpath. La versione corretta di HCatalog e hive jar deve essere collocata nel classpath in base alla versione di HCatalog installata nel cluster.

I vasi possono essere aggiunti al classpath dell'azione utilizzando uno dei seguenti modi .

  • È possibile posizionare i vasi e hive-site.xml nella libreria condivisa di sistema. La libreria condivisa per un'azione suino, hive o java può essere sovrascritta su include librerie condivise di hcatalog insieme alla libreria condivisa condivisa. Fare riferimento a Librerie condivise per ulteriori informazioni. oozie-sharelib- [versione] .tar.gz nella distribuzione di oozie raggruppa i vasi di HCatalog richiesti in un hcatalog sharelib . Se si utilizza una versione diversa di HCatalog rispetto a quella in bundle in sharelib, copiare i jar HCatalog da tale versione in sharelib.
  • È possibile posto i vasi e conferimento site.xml nel flusso di lavoro dell'applicazione lib/ percorso.
  • È possibile specificare la posizione dei file jar nel tag archivio e hive-site.xml nel tag file nell'azione pig, hive o java corrispondente .

Se avete intenzione di utilizzare coordinatore Oozie, caricarli su HDFS percorso coordinatore

1

stavo affrontando la questione in HDP 2.3 e 0.15 Pig.

Il nome del pacchetto per la classe HCatLoader() è diverso nella distribuzione di Hortonworks.

Di seguito ha lavorato per me

UTILIZZO org.apache.hive.hcatalog.pig.HCatLoader()

invece di UTILIZZO org.apache.hcatalog.pig.HCatLoader();