Integrationsfall für Hive und Hbase, Demo

Die Umgebungen hive und hbse wurden eingerichtet.
1. Fügen Sie der Konfigurationsdatei hive-site.xml des Hive-Servers Attribute hinzu:

  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node001,node002,node003</value>
  </property>

Nach dem Anstieg ist wie folgt

<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node001/hive?createDatabaseIfNotExist=true</value>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123</value>
</property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>node001,node002,node003</value>
  </property>
</configuration>

2. Testen

启动hbase:start-hbase.sh 
启动hive服务端:hive --service metastore

Erstellen Sie eine Tabelle und fügen Sie Daten in hbase ein

create 'student','stuinfo';
put 'student','0001', 'stuinfo:name','zhangsan';
put 'student','0001', 'age','22';
put 'student','0002', 'stuinfo:name','lisi';
put 'student','0002', 'age','33';

Erstellen Sie eine Tabelle auf der Hive-Seite und erstellen Sie eine Hbase-Feldzuordnung

create external table student(
        id string,
        name string,
        age string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,stuinfo:name,stuinfo:age")
TBLPROPERTIES("hbase.table.name" = "student")

Die Abfrageergebnisse in Hive lauten wie folgt

hive> select * from student;
OK
0001    zhangsan        22
0002    lisi    33
Time taken: 0.13 seconds, Fetched: 2 row(s)

Ich denke du magst

Origin blog.csdn.net/weixin_43614067/article/details/108625599
Empfohlen
Rangfolge