在開始學習hive之前我們首先必須弄清楚以下的這些問題,學習任何新的知識首先必須明白該技術產生的背景,該技術的主要的用途。
hive是什麼
hive是基於Hadoop的一個數據倉庫工具,用來進行數據提取、轉化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規模數據的機制。hive數據倉庫工具能將結構化的數據文件映射爲一張數據庫表,並提供SQL查詢功能,能將SQL語句轉變成MapReduce任務來執行。
hive的作用
學習成本低,具有SQL基礎的開發人員可以通過類似SQL語句實現快速MapReduce統計,使MapReduce變得更加簡單,而不必開發專門的MapReduce應用程序。
hive入門
- 下載cdh指定版本的hive(hive-1.1.0-cdh5.15.1)
- 將下載好的壓縮包上傳到linux環境的指定目錄下
- 解壓tar -zxvf xxx(這裏爲hive存放的位置)
- 進行hive相關的配置
hive的相關的配置
1、vim /etc/profile
添加:#hive
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.15.1
export PATH=$HIVE_HOME/bin:$PATH
添加完成後退出
source /etc/profile #使配置文件立即生效
進入hive的conf目錄下
/hive-1.1.0-cdh5.15.1/conf
#複製配置文件
cp hive-env.sh.template hive-env.sh
#配置hive-env.sh
HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.15.1
#配置hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--這裏需要根據自己的ip進行配置-->
<value>jdbc:mysql://192.168.93.10:3306/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>root</value>
</property>
</configuration>
上傳MySQL的mysql-connector-java-5.1.27.jar到hive的lib目錄下
啓動hive
切換盤符到hive的/bin目錄下,輸入:hive(確保已經啓動了hadoop)
啓動成功的畫面
可能遇到的問題
Cannot create directory /tmp. Name node is in safe mode
解決的方法
hadoop dfsadmin -safemode leave