1. 程式人生 > >Impala整合hive(填了各種坑之後總結出來的文件)

Impala整合hive(填了各種坑之後總結出來的文件)

        1 環境準備

1.1 伺服器配置

1.2 環境配置

1.3 Impala安裝包下載(不能使用yum命令的情況下)

1.4 Impala安裝包下載(可以使用yum命令的情況下)

2 下載安裝依賴包(必須安裝)

3 安裝impala

3.1 安裝 bigtop-utils (主、從機都要安裝)

3.2 安裝impala-2.7.0 (主、從機都要安裝) 

3.3 安裝impala-catalog (主機安裝)

3.4 安裝 impala-state (主機安裝)

3.5 主機安裝impala-server (主、從機都要安裝)

3.6 安裝impala-shell(主、從機都要安裝)

3.7 安裝impala-udf-devel(主、從機都要安裝)

4 配置Impala (主、從機都要配置)

4.1 配置 vim /etc/default/bigtop-utils裡的JDK

5 配置三臺機器時間同步(主、從機都要配置)

6 修改相應的配置檔案

6.1 拷貝core-site.xml、hdfs-site.xml和hdfs-site.xml (主、從機都要配置)

6.2 具體配置

6.3 重啟Hadoop叢集

7 設定scoket path

8 許可權配置(所有機器都應當配置)

9 啟動impala

10 登入impala-shell

11 同步hive元資料

12 在impala-shell端建立表

 

1 環境準備

1.1 伺服器配置

       ID

          IP address

  Host name

            Notes

       1

      128.64.108.160

     esp01

1.Hadoop Master
2.Spark Master
3.Impala Master
4.JDK
5.Scala

6.Hive

        2

       128.64.108.178

     esp02

1.Hadoop Slave
2.Spark Slave
3.Impalad
4.JDK
5.Scala

6.Hive

        3

        128.64.108.196

     esp03

1.Hadoop Slave
2.Spark Slave
3.Impalad
4.JDK
5.Scala

6.Hive


1.2 環境配置

安裝impala前,要確保在以上規劃的三臺機子上已經安裝好:

JDK 1.8

Hadoop 2.9.0叢集

Spark 2.3.1叢集

Scala 2.12

Zookeeper 3.4.12

Hive叢集

1.3 Impala安裝包下載(不能使用yum命令的情況下)

A.下載impala安裝包,下載地址:

http://archive.cloudera.com/beta/impala-kudu/redhat/7/x86_64/impala-kudu/0/RPMS/x86_64

B.下載bigtop-utils,下載地址:

http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.9.0/RPMS/noarch/

 

1.4 Impala安裝包下載(可以使用yum命令的情況下)

安裝impala各元件的命令:

$ sudo yum -y install cyrus-sasl-plain lsb ntp
$ sudo yum install impala          # Binaries for daemons
$ sudo yum install impala-server      # Service start/stop script
$ sudo yum install impala-state-store   # Service start/stop script 只在Master上安裝
$ sudo yum install impala-catalog     # Service start/stop script 只在Master上安裝

$ sudo yum install impala-shell

【注:可以使用yum的情況在可以直接忽略下面的第2、3步】

2 下載安裝依賴包(必須安裝)

yum -y install cyrus-sasl-plain lsb ntp

【注:若不能使用yum命令,可以選擇在可以聯網的機子上用yum下載好,然後使用

locate lsb命令找到依賴包,複製過去即可】

3 安裝impala

3.1 安裝 bigtop-utils (從機都要安裝)

rpm -ivh bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm

3.2 安裝impala-2.7.0 (從機都要安裝

rpm -ivh impala-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm --nodeps

 

注:要加上選項 --nodeps否則安裝會因為缺少依賴包無法通過

3.3 安裝impala-catalog (主機安裝)

 rpm -ivh impala-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm

3.4 安裝 impala-state (主機安裝)

rpm -ivh impala-state-store-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm

3.5 主機安裝impala-server (從機都要安裝)

rpm -ivh impala-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm

3.6 安裝impala-shell(從機都要安裝)

rpm -ivh impala-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm

3.7 安裝impala-udf-devel(從機都要安裝)

rpm -ivh impala-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm

4 配置Impala (主、從機都要配置)

4.1 配置 vim /etc/default/bigtop-utils裡的JDK

# export JAVA_HOME

export JAVA_HOME=/usr/java/jdk1.8.0_77

 

4.2 配置vim /etc/default/impala (從機都要配置一樣)

#修改其中的兩項即可,因為規劃esp01為master,所以下面配置為esp01

IMPALA_CATALOG_SERVICE_HOST=esp01

IMPALA_STATE_STORE_HOST=esp01

【注:一定要保證hosts裡已經配置過esp01,否則需要使用128.64.108.160】

5 配置三臺機器時間同步(主、從機都要配置)

[[email protected] espai]# systemctl restart ntpd 

6 修改相應的配置檔案

6.1 拷貝core-site.xmlhdfs-site.xmlhdfs-site.xml (從機都要配置)

把hadoop配置檔案core-site.xmlhdfs-site.xml,以及hive配置檔案hive-site.xml拷/etc/impala/conf.dist/目錄下。

6.2 具體配置

在Impala節點上對剛才拷貝的core-site.xmlhdfs-site.xml配置檔案,在原有基礎上追加如下修改:

# hdfs-site.xml

<!--impala configuration -->

 

<property>

        <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>

        <value>true</value>

</property>

<property>

        <name>dfs.block.local-path-access.user</name>

        <value>impala</value>

</property>

<property>

        <name>dfs.client.file-block-storage-locations.timeout.millis</name>

        <value>60000</value>

</property>

 

# core-site.xml

<!--impala configuration -->

 

<property>

        <name>dfs.client.read.shortcircuit</name>

        <value>true</value>

</property>

<property>

        <name>dfs.client.read.shortcircuit.skip.checksum</name>

        <value>false</value>

</property>

<property>

        <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>

        <value>true</value>

</property>

6.3 重啟Hadoop叢集

必須要重啟hadoop叢集!!!

7 設定scoket path

在目錄/var/run/目錄下新建目錄hadoop-hdfs (主、從機都要配置)。

注意:該資料夾可能已經存在,應當確認用impala是否有許可權進行讀寫。 如果已經存在,將使用者impala加入該檔案所屬的組,並修改該檔案組的許可權即: chown -R 775 hadoop-hdfs/

[[email protected] .ssh]# cd /var/run/                 #進入目錄/var/run/

[[email protected] run]# mkdir hadoop-hdfs           #建立目錄hadoop-hdfs

[[email protected] run]# chown -R 775 hadoop-hdfs/    #設定許可權

 

8 許可權配置(所有機器都應當配置)

  1. 如果想要impala和yarn合作,需要把 impala 使用者加入 hdfs 組.
  2. impala 在執行 drop table 操作時,需要把檔案移到到 hdfs 的回收站,所以需要建立一個hdfs的目錄 /user/impala,並將其設定為impala 使用者可寫。
  3. 同樣的,impala 需要讀取 hive 資料倉庫下的資料,故需要把 impala 使用者加入 hive 組。

 

#主機:esp01

[[email protected] esp01]# usermod -G hdfs,hadoop impala

[[email protected] esp01]# groups impala

impala : impala hdfs hadoop

 

#從機:esp02

[[email protected] esp02]# usermod -G hdfs,hadoop impala

[[email protected] esp02]# groups impala

impala : impala hdfs hadoop

 

#從機:esp03

[[email protected]  esp03]# usermod -G hdfs,hadoop impala

[[email protected]  esp03]# groups impala

impala : impala hdfs hadoop

 

 

另:建立impala在hdfs上的目錄並設定許可權

[[email protected] ~]$ hadoop fs -mkdir -p /user/impala

[[email protected] ~]$ hadoop fs -chown impala /user/impala

9 啟動impala

#主機esp01

[[email protected] ~]# service impala-state-store restart

[[email protected] ~]# service impala-catalog restart

[[email protected] ~]# service impala-server restart

 

#從機:esp02

[[email protected] ~]# service impala-server restart

 

#從機:esp03

[[email protected] ~]# service impala-server restart

 

10 登入impala-shell

[esp01@linux108160 impala]$ impala-shell

Starting Impala Shell without Kerberos authentication

Connected to esp01:21000

Server version: impalad version 2.7.0-cdh5-IMPALA_KUDU-cdh5 RELEASE

(build 48f1ad385382cd90dbaed53b174965251d91d088)

*******************************************************************************

Welcome to the Impala shell. Copyright (c) 2015 Cloudera, Inc. All rights reserved.

(Impala Shell v2.7.0-cdh5-IMPALA-cdh5 (48f1ad3) built on Thu Aug 18 12:15:44 PDT 2016)

 

Run the PROFILE command after a query has finished to see a comprehensive summary

of all the performance and diagnostic information that Impala gathered for that query. Be warned, it can be very long!

*******************************************************************************

[esp01:21000] >

11 同步hive元資料

命令如下

[esp01:21000] > invalidate metadata;  #同步hive元資料

[esp01:21000] > show databases;  #檢視同步之後的資料庫

12 在impala-shell端建立表

[esp01:21000] > create table if not exists testdata (

                id Int,

                name String

                );

[esp01:21000] >select * from testdata;