架設Hive

相關概念請看Youtube

配置Hadoop1 Server

設定必要環境變數

$ vi ~/.bashrc

請在.bashrc新增以下環境變數內容

export HIVE_HOME=/home/hadoop/hive
export PATH=$HIVE_HOME/bin:$PATH

使環境變數生效

$ source ~/.bashrc

安裝Hive

已hadoop User身分安裝

下載Hive到Hadoop1 Server的Hadoop User家目錄

$ cd ~
$ wget wget http://apache.stu.edu.tw/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz
$ tar -zxvf apache-hive-3.1.0-bin.tar.gz
$ mv apache-hive-3.1.0-bin hive

配置Hive Site

$ vi ~/hive/conf/hive-site.xml 

配置內容,主要配置Hive用的Mysql帳密,

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>shark</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>shark</value>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
  </property>
</configuration>

下載Mysql JDB Connector

$ cd ~/hive/lib/
$ wget http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar

初始化Hive Mysql

$ ~/hive/bin/schematool -dbType mysql -initSchema

測試Hive

建立假資料

$ mkdir ~/hivedata
$ vi ~/hivedata/phone1

假資料內容

0000108	iphone6plus	64G	6888
0000109	xiaominote	64G	2388
0000110	iphone5s	64G	6888
0000111	mi2	64G	2388
0000112	mi3	64G	6888
0000113	huawei	64G	2388
0000114	zhongxing	64G	6888

啟動Hive

$ ~/hive/bin/hive

建立Demo Schema

hive> create database demo;
hive> use demo;

建立table

hive> create table phone(id int, name string, storage string, price double) row format delimited fields terminated by '\t';

匯入資料

hive> load data local inpath '/home/hadoop/hivedata/phone1' into table phone;

瀏覽資料

第二個語法count(*)有用到Map Reduce運算

hive> select * from phone;
hive> select count(*) from phone;

Last updated