CDH 搭 建_Impala|学习笔记

简介: 快速学习 CDH 搭 建_Impala

开发者学堂课程【2020版大数据实战项目之 DMP 广告系统(第二阶段) CDH 搭 建_Impala】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/677/detail/11779


CDH 搭 建_Impala


安装倒数第二个工具,impala,安装的目的是因为 kudu 只支持一些 nosyl,有增,删,改等操作,这些api有时候使用起来也没那么舒服,所以需要使用 kudu 和 impala 整合一下,使用 imoala 进行 sql 解析,解析完成之后,执行计划直接落到 sql中,在 kudu 中进行 project,来进行一些相关的操作,然后将这些内容查询出来,这就是 kudu 和 impala之间的一些配合使用Kudu 没有 SQL 解析引擎,因为 Cloudera 准备使用 Impala 作为 Kudu 的 SQL 引擎,所以既然使用 Kudu 了,Impala 几乎也是必不可少的,安装 Impala 之前,先了解以下 Impala 中有哪些服务

 

一、 CDH 搭建_Impala

Catalog Impala 的元信息仓库[但是不同的是这个 Catalog 强依赖 Hive 的 MetaStore, 会从 Hive 处获取元信息 Catalog Impala 的元信息仓库,这点跟我们想象的不太一样,Impala 是强依赖于 hive 的,catalog 是 java 写的,要去读取 hive 的 metastore,要和 hive 进行配合。意思就是说自身会产生数据,但是是会和hive 的 metastore进行同步的。

StateStore 是 Impala 的协调节点,负责异常恢复相当于 kudu metastore 这样一个角色。Kudu 本身也是类似于 mpp 的一个架构,,impala 也是一个类似于 mpp 的一个架构。Impala 和 kudu 从架构上来看是非常相似的。StateStore 就是一个非常轻的主节点,负责异常恢复以及协调工作。

还有一个最重要的服务,ImpalaServer Impala 是 MPP 架构,这是 Impala 处理数据的组件,会读取 HDFS,所以-般和 DataNode 部署在一起, 提升性能,每个 DataNode 配一个 ImpalaServer 用于执 行 impala 的一些计划,例如使用impala来执行一个  secure,假如有三个 note 语句,中间有一个impala,可以编写一段secure语句: select*from xxx,因为要查询数据,所以这条数据会发给 impala,但是 impala 和 hive一样,本身并不存储数据,因此他就访问一些数据库,这就叫做 impala server,从进程的角度叫做 impalad。Impalad 就是 impala中最重要的一个部分。一个 impala 就对应一个 hdf 中的 datanode,三个 impala 可以寻找三个不同的 datanode,来进行不同的任务,所以 impalad 就是负责具体的任务执行的。这个 impalad 负责某个语句之后会同步给其他人的。所以, cdh01上应该有 Catalog 和StateStore, 而不应该有 ImpalaServer ,因为 cdh01 中没有 DataNode 

接下来进行安装,首先需要查看在什么样的节点上安装什么样的程序,然后就安装所需的软件包,之后进行配置,再之后就进行启动,检验配置是否完成。在 cdh01上安装 impala-state-store,impala-catalog,不安装 server 和 impalad,因为在cdh01 上没有 datanode,在 cdh02 上安装一个 impala-server,因为 chh02上是有 datanode 的。

1. 安装 cdh01中的软件包

安装主节点 cdh01所需要的软件包yum install -y impala impala-state-store impala-catalog impala -shell进入 cdh01中:

[ root@cdh01 kudu]# yum install -y impala impala-state-store impala-catalog impala -shell

2、安装其他一些节点所需要的安装包

复制到 cdh02中

yum install -y impala impala-server

cdh03:

yum install -y impala impala-server

在 cdh03中只装 impala-server,并不安装 state store,statelog 等,

Impala 样的一些安装就进行完成了:

进入 cdh02中,

[ root@cdh02 kudu]# yum install -y impala impala-server

进入 cdh03上

[ root@cdh03 kudu]# yum install -y impala impala-server

3、对所有节点进行配置

Impala 是强依赖 hive 的,hive 又需要读取hdif中的一些内容,impala 也要读取 hive 中 的一些内容,如果要读取 hive 中的内容,就需要两个相应的配置文件,如果和 hive 整合,来读取 metastore 中的一些内容的话,还需要一个配置文件叫做 hive-site.xml。现在要将这三个文件都链接到 impala 中。仍旧使用 ln-s 软链接到 hadoop core-site,链接到 impala 的 conf 内

软链接 Impala 所需要的 Hadoop 配置文件,和 Hive 的配置文件 Impala 需要访问 Hive 的 MetaStore ,所以需要 hive-site. xml 来读取其位置 Impala 需要访问 HDFS ,所以需要读取 hdfs-site. xml来获取访问信息,同时也需要读取 core-site.xml  获取一些信息Ln -S /etc/hadoop/conf/core-site.xml /etc/ impala/conf/core-site. xmlLn -S /etc/hadoop/conf/hdfs-site. xml /etc/impala/conf/hdfs-site. xmlIn -S /etc/hive/conf/hive-site. xml /etc/impala/conf/hive-site. xml配置 Impala 的主服务位置,以供 ImpalaServer(Impalad) 访问,修改 Impala 的默认配置文 件/etc/default/impala, /etc/default  往往放置 CDH 版本中各组件的环境变量类的配置文件 IMPALA_ CATALOG_ SERVICE_ HOST=cdh01IMPALA_ STATE_ STORE HOST=cdh01

使用Ln -S /etc/hadoop/conf/core-site.xml,进行到软链接,连接到 impala,conf中,

操作:

拷贝三条指令到小窗口中,然后执行

[ root@cdh01 ~]# Ln -S /etc /hadoop/conf/core-site. xml /etc/ impala/conf/core-site . xmL[  root@cdh02 ~]# Ln -S /etc /hadoop/conf/hdfs-site. xml /etc/ impala/con f/hdfs-site . xml[ root@cdh03 ~]# Ln -S /etc/hive/conf/hive-site. xml /etc/ impala/conf/hive-site. Xm

配置完成

修改内容:

修改环境变量都需要进入:etc,default 下,

[ root@cdh01 kudu]# cd /etc /de fault/

[ root@cdh0l default]# Ls

[ root@cdh0l default]#vim.impala

IMPALA_ 默认访问的是127.0.0.1

CATALOGSERVICE_HOST=127.0.0.iIMPALA_STATE_STORE_HOST=127.0.0.1 修改为cdh01,这样在 cdh02 和 cdh03上就都能访问了。

IMPALASTATE STORE PORT=24000IMPALA_ BACKEND_PORT=22000IMPALA LoG_DIR=/var/log/ impalaIMPALA_CATALOG_ARGS=" -log dir=${IMPALA_LOG_DIR]"IMPALA_STATE_STORE_ARGS=" "进入这个环境变量,在此处添加内容,要添加在 hive 的 kudumaster 的位置,因为要使用 impala访问 kudu,就必须能访问到 kudu,就需要添加一些 kudu 的 master,这一步的添加也可以不做,这一步在创建 impala 表的时候,可以手动指定 impala 的位置,一般情况是需要整合的。将光标放到双引号里面,回车,然后四个空格,因为整个ARGS是一个字符串,得配到字符串里面,配到外面就没有用了。

--kudu_masters_hosts=cdh01: 7051“

Cdh02:

[ root@cdh02~]# vi /etc/ default/impala

因为要修改环境变量,环境变量一般都在default,就cdh版本来说。

第一步修改CATALOG地址IMPALA_CATALOG_SERVICE_HoST=cdh01

IMPALA_CATALOG_STORE_HoST=cdh01

光标置于引号内,四个空格,

--kudu master hosts=cdh01:7051" 保存并且退出

如果有多个 master,就需要在数据之间用逗号隔开

Cdh03:

[ root@cdh02~]# vi /etc/ default/impala

IMPALA_CATALOG_SERVICE-HOST=cdh01

IMPALA_CATALOG_STORE_HoST=cdh01

--kudu master hosts=cdh01:7051"

整个配置就配置完成了,就可以进行相应的启动了

4.启动

Cdh03

[ root@cdh03 ~]# vi /etc/default/impala[ root@cdh03 ~]# service impala-server startstarted Impala Server ( impalad) :[root@cdh03~]#Redirectingstdoutto/var/log/impala/impalad.INFORedirecting stderr to /var/log/impala/impalad.ERROR

现在此处有一个报错,报错到 impala error 中,

查看错误:

[root@cdh03~]# tail -100f /var/log/impala/impalad.ERROR

Call From cdh83.itcast.cn/127.0.0.1 to cdhe1:8020 failed on connection exception: java.net.ConnectException:Connection refused;Formoredetailssee:http://wiki.apache.org/hadoop/ConnectionRefused

现在问题在于连接不到8020,8020本来是 cativity 状态的,现在问题就很好的确定了。本来出现问题是需要重新进行一遍,这个问题是希望大家看到,这个问题如何解决,简单来说,现在问题在于连接不到8020。

解决:先进入 cdh01上,

[root@cdh01 hadoop~hdfs]# vi /etc /hosts

可以看到host文件,在这个文件中,可以找到主机名,

127.0.0. 1cdh01.itcast.cn cdh02 localhost localhost.localdomain localhost4 localhost4.localdomain4localhostlocalhost.localdomain localhost6 localhost6.localdomain6192.168.169.101 cdh01.itcast.cn cdh01192.168.169.102 cHh02.itcast.cn cdh02

192.168.169.103 cdh03.itcast.cn cdh03

cdh01.itcast.cn这是找到的第一个主机名,对应的ip是:127.0.0. 1所以问题在于会将8020和50070都绑定到127.0.0.1

解决办法:

删掉 cdh01.itcast.cn,直接把 hostname 删掉,

[ root@cdh01 hadoop-hdfs]#vi /etc/hosts[root@cdh01 hadoop-hdfs]# service hadoop-hdfs-name restarthadoop-hdfs-name : unrecognized service

[root@cdh01 hadoop-hdfs]# service hadoop-hdfs-namenode restartstopping namenode

Stopped Hadoop namenode :starting namenode,logging to /varflog/hadoop-hdfs /hadoop-hdfs -namenode-cdh01.itcast.cn.out

进入浏览器,访问:192.1698.169.101:50070

image.png

确定8020是否也能访问,

[ root@cdhe1 hadoop-hdfs]# netstat -nlp

能看到8020已经绑定到192.168.169.101这个 host 上了。下面这些是绑定在127上面,就不可以。

image.png

所以host里面的内容还是有要求的。最好的修改方式是将127的定义挪到最后一行,也是可以的。回到 cdh03上,

[ root@cdh03 ~]# lsanaconda-ks.cfginstall.log install.log.syslog  可以查看25000的端口,对应的是 impala 的端口,默认情况下需要等待一会才能启动

然后打开浏览器,输入03的 ip 地址,192.168.169.101:25000,暂时无法访问,所以继续进行,再回来进行测试。

Cdh02:

[root@cdh02 impala]# service impala-server startstarted Impala Server ( impalad) :

image.png

Cdh01:

[root@cdh01 hadoop-hdfs]# service impala-state-store startStarted Impala State Store Server (statestored):[oK][root@cdh01 hadoop-hdfs]# service impala-catalog startStarted Impala Catalog Server (catalogd):[OK][ root@cdhe1 hadoop-hdfs]#

打开浏览器:cdh03

image.png

Cdh02:192.168.169.102:25000

image.png 

两个 impala 都可以访问,说明搭建成功。但要注意,host name 从上至下第一个 ip 地址是什么,8020会绑定第一个地址,所以要修改 host。

 

相关文章
|
SQL 存储 NoSQL
Kudu 整合 impala-shell 操作 | 学习笔记
快速学习 Kudu 整合 impala-shell 操作
658 0
Kudu 整合 impala-shell 操作 | 学习笔记
|
7月前
|
SQL 存储 分布式计算
bigdata-29-Impala初步了解
bigdata-29-Impala初步了解
53 0
|
7月前
|
SQL 存储 固态存储
presto、impala、kudu相关优化整理
presto、impala、kudu相关优化整理
|
7月前
|
SQL 分布式计算 Hadoop
Apache Impala 的安装部署
Apache Impala 的安装部署
235 0
|
SQL HIVE 数据安全/隐私保护
Hive Impala和Hue集成LDAP
Hive Impala和Hue集成LDAP
262 0
|
SQL 存储 分布式计算
Impala 架构了解
Impala 架构了解
Impala 架构了解
|
SQL 分布式计算 Java
KuduSpark_Impala 访问 Kudu | 学习笔记
快速学习 KuduSpark_Impala 访问 Kudu
318 0
KuduSpark_Impala 访问 Kudu | 学习笔记
|
SQL Java 数据库连接
JDBC 操作 impala | 学习笔记
快速学习 JDBC 操作 impala
1032 0
JDBC 操作 impala | 学习笔记
|
SQL 存储 分布式计算
安装部署--hadoop、hive 配置修改&impala 配置 | 学习笔记
快速学习 安装部署--hadoop、hive 配置修改&impala 配置
625 0
安装部署--hadoop、hive 配置修改&impala 配置 | 学习笔记