1. 程式人生 > >ubuntu18.04搭建hive

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

在這裡插入圖片描述
這樣就成功了!!