Ambari(八)----Ambari集成Impala文档(亲测有效)

Ambari集成Impala(亲测有效)

文档目录

一. 将impala纳入到ambari版本管理中

二. 初始化Impala

三. Impala集成过程中遇到的问题

一. 将impala纳入到ambari版本管理中

执行如下命令将impala纳入到ambari版本管理中

VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'`
sudo git clone https://github.com/cas-bigdatalab/ambari-impala-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/IMPALA

如果希望通过源码编译打包的方式集成,需要将该部分源码放置到

ambari源码目录/ambari-server/src/main/resources/stacks/HDP/$VERSION/services/IMPALA

编译打包之后,会在

/var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/IMPALA

目录下生成对应代码

二. 初始化Impala

注意:该过程出现问题于目录/var/log/impala/查看相应报错日志

2.1 创建impala源文件

提供两种创建源的方式:

cdh官方源下载

该方式已经在IMPALA/package/scripts/impala-catalog.py文件中设置好,无需手动操作

注意! 需要确认http链接中涉及到的操作系统是否与自己保持一致,否则要做出适当修改,做出修改后,应通过浏览器验证链接是否可达

在这里插入图片描述

优点: 无需手动配置,操作方便

缺点: 因为要去官网下载impala的rpm文件,不够稳定,安装过程比较慢,可能会失败

本地源下载

注:采用此方案,需要把官方下载操作中列出的几行代码注释掉~

到如下链接下载cdh集成压缩包

cdh5.14.0-centos7.tar.gz

下载好,将安装包解压放置在linux某台服务器上的/var/www/html/目录下

浏览器输入ip/cdh
若出现如下内容,证明本地源配置成功

在这里插入图片描述

若此处出现显示问题,需要检查httpd服务是否安装并开启

yum install httpd
service httpd start

在ambari-server节点上 /etc/yum.repos.d/目录下添加文件:
impala.repo,配置如下:

[cloudera-cdh5]
# Packages for Cloudera's Distribution for Hadoop, Version 5, on RedHat    or CentOS 6 x86_64
name=Cloudera's Distribution for Hadoop, Version 5
baseurl=http://{ip}/cdh/5.14.0
gpgkey =http://{ip}/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 0

随后将此文件发送到各个需要安装impala的agent节点上

2.2 重启ambari-server

重启ambari-server之前,请先过一下 第三部分, ambari集成imapal过程中遇到的问题

# 执行以下命令重启ambari-server
ambari-server restart

2.3 初始化impala

重启成功后,ambari web界面选择impala服务进行安装

Actions–> Add Service --> 选择 Impala–> next

推荐: ambari-server节点安装Impala_Catalog_Service,Impala_State_Store, agent节点安装Impala_Daemons

注意:若2.1步骤中直接选择官方源下载方式,这里可能会很慢,而且可能会失败,需要多试几次

2.4 修改hdfs配置文件

Ambari主界面–>HDFS–>Configs–>Advanced修改

修改Custom core-site文件

增加以下参数:

<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>

修改Custom hdfs-site文件

增加以下参数:

<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>

修改结束后,按照ambari界面提示重启hdfs及其相关组件

需要确认安装impala节点下/etc/impala/conf目录下是否有以下几个文件

core-site.xml
hdfs-site.xml
hive-site.xml

没有的话,需要从/etc/hadoop/conf/*.xml拷贝过去

cp /etc/hadoop/conf/*.xml /etc/impala/conf
# 或者可能需要scp远程拷贝(如果当前节点/etc/hadoop/conf目录下也没有这些文件时)

2.5 启动impala服务

界面上启动impala服务
这里启动一会儿之后Impala_Daemons节点会挂掉
大约几分钟的样子,这是因为还有一些配置没有配置好

2.6 复制hbase jar包到impala目录下

将hbase的jar包拷贝到 /usr/lib/impala/lib 并创建软连接(Impala_Daemons节点执行)

注意:需要根据对应的cdh版本选择对应的hbase版本,否则可能出现版本不兼容的问题. 同时,应以自己的cdh版本为准

cp /usr/lib/hbase/lib/hbase-*.jar /usr/lib/impala/lib/

如下图 :我的节点上/usr/lib/impala/lib目录下已有hbase的四个jar包(hbase-annotations.jar,hbase-client.jar,hbase-common.jar,hbase-protocol.jar),这几个就不需要再次建立软连接了

在这里插入图片描述

# 创建所需的软链接
ln -s hbase-examples-1.2.0-cdh5.14.0.jar hbase-examples.jar
ln -s hbase-external-blockcache-1.2.0-cdh5.14.0.jar hbase-external-blockcache.jar
ln -s hbase-hadoop2-compat-1.2.0-cdh5.14.0.jar hbase-hadoop2-compat.jar 
ln -s hbase-hadoop-compat-1.2.0-cdh5.14.0.jar hbase-hadoop-compat.jar
ln -s hbase-it-1.2.0-cdh5.14.0.jar hbase-it.jar
ln -s hbase-prefix-tree-1.2.0-cdh5.14.0.jar hbase-prefix-tree.jar
ln -s hbase-procedure-1.2.0-cdh5.14.0.jar hbase-procedure.jar
ln -s hbase-resource-bundle-1.2.0-cdh5.14.0.jar hbase-resource-bundle.jar
ln -s hbase-rest-1.2.0-cdh5.14.0.jar hbase-rest.jar
ln -s hbase-rsgroup-1.2.0-cdh5.14.0.jar hbase-rsgroup-1.2.0.jar
ln -s hbase-server-1.2.0-cdh5.14.0.jar  hbase-server.jar 
ln -s hbase-shell-1.2.0-cdh5.14.0.jar hbase-shell.jar
ln -s hbase-spark-1.2.0-cdh5.14.0.jar hbase-spark.jar
ln -s hbase-thrift-1.2.0-cdh5.14.0.jar hbase-thrift.jar

作用: 如果没有拷贝hbase的jar到/usr/lib/impala/lib,会报如下错误:

在这里插入图片描述

如果没有正确创建软链接会导致jar包不能被正确识别,会报类似的错误:

F0510 04:53:11.157616 25119 impalad-main.cc:64] NoClassDefFoundError: org/apache/hadoop/hbase/client/Scan
CAUSED BY: ClassNotFoundException: org.apache.hadoop.hbase.client.Scan

2.7 修改/etc/default/bigtop-utils配置

在该文件下修改JAVA_HOME配置

2.8 查看impala集成情况

Ambari界面,相关组件被正常集成和启动

在这里插入图片描述

Impala_State_Store节点正常

在这里插入图片描述

Impala_Catalog_Service节点正常

在这里插入图片描述

Impala_Daemons节点正常

在这里插入图片描述

在Impala_Daemons节点运行 impala shell

在这里插入图片描述

三. Impala集成过程中遇到的问题

3.1 Impala初始化报错Host key verification failed

报错关键信息如下:

Traceback (most recent call last):
  File "/var/lib/ambari-agent/cache/stacks/HDP/2.6/services/IMPALA/package/scripts/impala-daemon.py", line 38, in <module>
 
 ... 
resource_management.core.exceptions.ExecutionFailed: Execution of 'scp -r root@{hostname}:/etc/hadoop/conf/core-site.xml /var/lib/ambari-agent/tmp' returned 1. Host key verification failed.

原因: ssh的问题,当前主机和传输的主机没有配置ssh互信

解决方案: 配置ssh免密登录

或者:

注释掉: impala_base.py  52行
注释掉: impala_daemon.py 14行
# self.configureHDFS(env)

注意: 在初始化脚本结束后需要执行以下命令:

cp /etc/hadoop/conf/*.xml /etc/impala/conf
# 或者可能需要scp远程拷贝(如果当前节点/etc/hadoop/conf目录下也没有这些文件时)

确保: imapla安装节点下面包含以下配置文件

core-site.xml
hdfs-site.xml
hive-site.xml
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值