1

使用するコンポーネント:- -Ubuntu 12.04、hive(0.9.0)、hbase(0.94.3)、hadoop(0.20.2)-single-node、zookeeper-3.4.3、guava-11.0.2、hive-hbase-handler -0.9.0

チュートリアル:- https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration

手順 1) Hadoop を開始、2) hbase-master を開始 3) hiveserver を開始 4) チュートリアルのように --auxpath パラメーターを使用して Hive シェルを開始 (すべてエラーなしで動作 - JobTracker、HRegionServer、HMaster、DataNode、NameNode、SecondaryNameNode、TaskTracker、HQuorumPeer) ,Jps)

hbase(main):001:0> status
1 servers, 0 dead, 2.0000 average load

私が作成するハイブシェルでは、テーブルを次のように作成できます

CREATE TABLE IF NOT EXISTS familia (id_familia INT,fk_veiculo INT,fk_cliente INT,nome STRING) ROW FORMAT delimited fields terminated by ',' STORED AS TEXTFILE;
load data local inpath '/home/trendwise/hive_data/tables_csv/familia.csv' overwrite into table familia;

しかし、以下のクエリを実行すると、何も表示されず、カーソルが点滅するだけです。長時間待った後、エラーが表示されました

CREATE TABLE hbase_familia_1 (key int, id_familia int, fk_veiculo INT,fk_cliente INT,nome STRING)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping" = ":key, cf1:id_familia, cf2:fk_veiculo,cf3:fk_cliente, cf4:nome")
TBLPROPERTIES ("hbase.table.name" = "hbase_familia");

私がlist試したテーブルが表示されなかったhbaseシェルで行いましたか?

エラー:-

FAILED: Error in metadata: MetaException(message:org.apache.hadoop.hbase.MasterNotRunningException: Retried 10 times
at org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:127)
at org.apache.hadoop.hive.hbase.HBaseStorageHandler.getHBaseAdmin(HBaseStorageHandler.java:73)
at org.apache.hadoop.hive.hbase.HBaseStorageHandler.preCreateTable(HBaseStorageHandler.java:147)
at org.apache.hadoop.hive.metastore.HiveMetaStoreClient.createTable(HiveMetaStoreClient.java:398)
at org.apache.hadoop.hive.ql.metadata.Hive.createTable(Hive.java:538)
at org.apache.hadoop.hive.ql.exec.DDLTask.createTable(DDLTask.java:3305)
at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:242)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:134)
at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:57)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1326)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1118)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:951)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:258)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:215)
at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:406)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:689)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:557)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
) FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask

hbase-site.xml

<property>
 <name>hbase.rootdir</name>
 <value>hdfs://localhost:54310/hbase</value>
</property>
<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>
<property>
 <name>hbase.zookeeper.property.dataDir</name>
 <value>/home/trendwise/hadoop/hbase-0.94.3/hbase_dataDir</value>
</property>
<property>
 <name>hbase.zookeeper.property.clientPort</name>
 <value>2222</value>
 <description>Property from ZooKeeper's config zoo.cfg.
 </description>
</property>
<property>
 <name>hbase.zookeeper.quorum</name>
 <value>localhost</value>
 <description></description>
</property>
<property>
 <name>hbase.cluster.distributed</name>
 <value>true</value>
 <description></description>
</property>
4

3 に答える 3

0

/etc/hosts ファイルの「127.0.1.1」を含む行を「127.0.0.1」に変更し、すべてを再起動します。また、hbase-site.xml を HIVE_HOME/conf ディレクトリにコピーします。

于 2013-01-08T19:02:57.633 に答える
0

Hive が必要な jar ファイルを見つけることができないようです

すべてのコマンドを実行してみてください

hive –auxpath /path-to-/hive-examples.jar;セミコロンで区切られた他のjarファイル

次に、hbase conf ファイルを hive conf ディレクトリに配置してみてください。

hive-site.xmlまたはhive-env.shでauxパスを定義して試してください

これらのエラーは、主にハイブが hadoop または hbase に接続できないことが原因です。

また、すべてのデーモンが hbase で実行されていることを確認し、hbase シェルですべての操作を実行できます。

于 2014-02-13T05:10:51.953 に答える
0

Hbase はすべてのデーモンを開始することはできません...そのため、hbase ログで手がかりを得ることができます...hbase ログで何かを見つけて、そのエラーを報告できるかどうかを確認してください...これがうまくいくことを願っています...

于 2013-02-05T08:59:56.390 に答える