Hive實戰(2)Hive安裝教程
阿新 • • 發佈:2019-02-17
選擇Hadoop發行版本
安裝java
$ /usr/java/latest/bin/java -version
java version "1.6.0_23"
Java(TM) SE Runtime Environment (build 1.6.0_23-b05)
Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
$ sudo echo "export JAVA_HOME=/usr/java/latest" > /etc/profile. d/java. sh $ sudo echo "PATH= $ PATH: $ JAVA_HOME/bin" » /etc/profile. d/java. sh
$ . /etc/profile
$ echo $ JAVA一HOME
/usr/java/latest
安裝Hadoop
$ wget \
http://www.us.apache.org/dist/hadoop/common/hadoop-0.20.2/hadoop-0.20. 2.tar.gz
$ tar -xzf hadoop-0.20.2.tar.gz
$ sudo echo "export HADOOP_HOME=$PWD/hadoop-0.20.2" > /etc/profile.d/ hadoop.sh
$ sudo echo "PATH=$PATH: $HADOOP_HOME/bin" » /etc/profile.d/hadoop.sh
$ . /etc/profile
選擇本地模式 並測試Hadoop
$ mkdir wc-in
$ echo "bla bla" > wc-in/a.txt
$ echo "bla wa wa " > wc-in/b.txt
$ hadoop jar $HADOOP_HOME/hadoop-0.20.2-examples.jar wordcount wc-in
wc-out
$ ls wc-out/*
$ cat wc-out/*
$ hadoop dfs -cat wc-out/*
安裝Hive
$ curl -o http: //archive.apache.org/dist/hive/hive-0.9.0/hive-0.9.0-bin. tar.gz
$ tar -xzf hive-0.9.0.tar.gz
$ sudo mkdir -p /user/hive/warehouse
$ sudo chmod a+rwx /user/hive/warehouse
Hive檔案說明
$HIVE_HOME/lib 目錄下可以發現有眾多的JAR 檔案
$HIVE_HOME/bin目錄下包含可以執行各種各樣Hive服務的可執行檔案
$HIVE_HOME/conf目錄下存放了配置Hive的配置檔案
Thrift服務提供了可遠端訪問其他程序的功能,也提供使用 JDBC和ODBC訪問Hive的功能。
metastoreservice (元資料服務),Hive使用這個服務來 儲存表模式資訊和其他元資料資訊。
啟動Hive
$ Cd $ HIVE_HOME
$ bin/hive
Hive history file=/tmp/myname/hive_job_log_myname_201201271126_1992326118. txt
hive> CREATE TABLE x (a INT);
hive> SELECT * FROM x;
hive> SELECT * FROM x;
hive> DROP TABLE x;
hive> exit;
hadoop本地模式配置
例2-1 本地模式下的hive-site, xml配置檔案。
<?xml version="l.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/home/me/hive/warehouse</value>
〈description〉
Local or HDFS directory where Hive keeps table contents.
〈/description〉
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
〈description〉
Use false if a production metastore server is used.
〈/description〉
</property>
<property>
<name>j avax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/home/me/hive/metastore_db;create=tru e</value>
〈description〉
The JDBC connection URL.
</description〉
</property>
〈/configuration〉
hadoop偽分散式,叢集模式
JDBC連線metastore元資料配置
例2-2 hive-site.xml中的元資料儲存資料庫配置。
<?xml version="l.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
〈configuration〉
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>j dbc:mysql://dbl.mydomain.pvt/hive_db?createDatabaseIfNotExist =true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>j avax.jdo.option.ConnectionUserName</name>
<value>database_user</value>
</property>
<property>
<name>j avax.jdo.option.ConnectionPassword</name>
<value>database_pass</value>
</property>
〈/configuration〉
Hive命令
$ bin/hive --help
Hive命令列介面
hive --help --service cli
$ hive -e "SELECT * FROM mytable LIMIT 3";
#執行結束後hive CLI立 即退出
$ cat /path/to/file/withqueries.hql
SELECT x.* FROM src x;
$ hive
hive> source /path/to/file/withqueries.hql;
#從檔案中執行查詢
$ echo "one row" > /tmp/myfile
$ hive -e "LOAD DATA LOCAL INPATH '/tmp/myfile1 INTO TABLE src;
#至少有一行的資料在源表裡面
#使用Tab鍵自動補全
hive> ! pwd;
/home/me/hiveplay
#使用!和;開頭結尾來切換bash shell指令碼
hive> dfs -ls / ;
#執行Hadoop的dfs命令,只需要將hadoop命令中的關鍵字 hadoop去掉,然後以分號結尾就可以了
--開頭的字串來表示註釋
#顯示欄位名稱
hive> set hive.cli.print.header=true;
hive> SELECT * FROM system—logs LIMIT 3;