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

Hive3.0.0

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 配置三台机器时间同步(主、从机都要配置)

[root@linux108160 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

 

        dfs.datanode.hdfs-blocks-metadata.enabled

        true

        dfs.block.local-path-access.user

        impala

        dfs.client.file-block-storage-locations.timeout.millis

        60000

 

# core-site.xml

 

        dfs.client.read.shortcircuit

        true

        dfs.client.read.shortcircuit.skip.checksum

        false

        dfs.datanode.hdfs-blocks-metadata.enabled

        true

6.3 重启Hadoop集群

必须要重启hadoop集群!!!

7 设置scoket path

在目录/var/run/目录下新建目录hadoop-hdfs (主、从机都要配置)。

注意:该文件夹可能已经存在,应当确认用impala是否有权限进行读写。 如果已经存在,将用户impala加入该文件所属的组,并修改该文件组的权限即: chown -R 775 hadoop-hdfs/

[root@linux108160 .ssh]# cd /var/run/                 #进入目录/var/run/

[root@linux108160 run]# mkdir hadoop-hdfs           #创建目录hadoop-hdfs

[root@linux108160 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

[root@linux108160 esp01]# usermod -G hdfs,hadoop impala

[root@linux108160 esp01]# groups impala

impala : impala hdfs hadoop

 

#从机:esp02

[root@linux108178 esp02]# usermod -G hdfs,hadoop impala

[root@linux108178 esp02]# groups impala

impala : impala hdfs hadoop

 

#从机:esp03

[root@linux108196  esp03]# usermod -G hdfs,hadoop impala

[root@linux108196  esp03]# groups impala

impala : impala hdfs hadoop

 

 

另:创建impala在hdfs上的目录并设置权限

[esp01@linux108160 ~]$ hadoop fs -mkdir -p /user/impala

[esp01@linux108160 ~]$ hadoop fs -chown impala /user/impala

9 启动impala

#主机esp01

[root@linux108160 ~]# service impala-state-store restart

[root@linux108160 ~]# service impala-catalog restart

[root@linux108160 ~]# service impala-server restart

 

#从机:esp02

[root@linux108178 ~]# service impala-server restart

 

#从机:esp03

[root@linux108190 ~]# 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;

 

你可能感兴趣的:(Impala)