ubuntu18.04搭建hive
hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行執行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。
0 hadoop搭建
在搭建hive之前,要保證hadoop搭建完成,hadoop教程可以參考這篇文章ubuntu18.04下hadoop搭建
1 下載並配置Hive
1.1 下載Hive
在apache官網下載hive包,這裡下載的是hive-1.2.2版本
下載好後解壓hive包
然後將解壓包移動到
/usr/local/hive
下,移之前首先在/usr/local
下建立名為hive
資料夾
$ sudo mkdir /usr/local/hive
移動hive包到/usr/local/hive目錄下
1.2 配置環境變數
$ sudo vi /etc/profile
增加如下配置:
export HIVE_HOME=/usr/local/hive/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/hive/apahe-hive-1.2.2-bin/lib
更新環境變數
$ source /etc/profile
1.3 配置hive-env.s h
進入目錄/usr/local/hive/apache-hive-1.2.1-bin/conf
下,首先新建一個空檔案hive-env.sh
:
$ touch hive-env.sh
接著
$ cp hive-env.sh.template hive-env.sh
$ vi hive-env.sh
新增hadoop的路徑,如下:
HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.2
(以下所有配置均在該路徑下。)
1.4 配置hive-site.xml
仍然,首先新建檔案hive-site.xml
$ touch hive-site.xml
接著
$ cp hive-default.xml.template hive-site.xml
$ vi hive-site.xml
增加mysql資料庫的連線配置:
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
修改臨時資料夾的路徑,找到以下兩個位置,並修改為正確路徑:
<property>
<name>hive.exec.local.scratchdir</name>
<value>/home/renziteng/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/home/renziteng/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property>
我的使用者名稱是renziteng
,所以在該路徑下,新建了iotmp
資料夾,並授權:
$ mkdir -p /home/renziteng/iotmp
$ chmod -R 775 /home/renziteng/iotmp
1.5 修改hive-config.sh
進入目錄:/usr/local/hive/apache-hive-1.2.2-bin/bin
sudo vi hive-config.sh
在該檔案的最前面新增以下內容:
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.9.2
export HIVE_HOME=/usr/local/hive/apache-hive-1.2.2-bin
2 安裝並配置mysql
2.1 安裝MySQL Server
在命令列輸入sudo apt-get install mysql-server
即可安裝。
2.2 下載MySQL JDBC驅動器
去mysql官網找GA version下載
下載完後解壓
tar -zxvf mysql-connector-java-5.1.47.tar.gz
然後進入解壓後的目錄,把jar包複製到/usr/local/hive/apache-hive-1.2.2-bin/lib/
下
$ cp mysql-connector-java-5.1.40-bin.jar /usr/local/hive/apache-hive-1.2.2-bin/lib
2.3 在HDFS中建立目錄和設定許可權
啟動hadoop,在hadoop中建立hive需要用到的目錄並設定許可權。
$ start-all.sh #啟動hadoop
$ hadoop fs -mkdir /tmp
$ hadoop fs -mkdir -p /user/hive/warehouse
$ hadoop fs -chmod g+w /tmp
$ hadoop fs -chmod g+w /user/hive/warehouse
2.4 初始化meta資料庫
進入/usr/local/hive/apache-hive-1.2.2-bin/lib目錄,初始化Hive元資料對應的MySQL資料庫:
schematool -initSchema -dbType mysql
2.5 啟動Hive
啟動hive前,確保hadoop叢集啟動
$ start-all.sh
$ hive
這樣就成功了!!