ambari2.7.3 安装 impala 一

427 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

ambari2.7.3 安装 impala

背景

以前CDH的项目要迁移到HDP,ambari 到2.7.3为止官方没有支持impala,之前用到了,所以需要在amabri上装一下impala

安装

下载ambari-impala-service

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

2./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=https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.8.0
gpgkey =https://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1

3.重启ambari-server

sudo service ambari-server restart

4.安装impala

Actions-->Add service -->impala,然后一步一步安装

问题

中间发生一次报错信息:

Traceback (most recent call last):\
  File "/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py", line 38, in <module>\
    BeforeAnyHook().execute()\
  File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 352, in execute\
    method(env)\
  File "/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py", line 31, in hook\
    setup_users()\
  File "/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/shared_initialization.py", line 50, in setup_users\
    groups = params.user_to_groups_dict[user],\
KeyError: u'impala'\
Error: Error: Unable to run the custom hook script ['/usr/bin/python', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py', 'ANY', '/var/lib/ambari-agent/data/command-863.json', '/

解决

1 命令行

> # cd /var/lib/ambari-server/resources/scripts\
> # python configs.py -u admin -p admin -n $cluster_name -l $ambari_server -t 8080 -a get -c cluster-env |grep -i ignore_groupsusers_create\
> "ignore_groupsusers_create": "false",\
> # python configs.py -u admin -p admin -n $cluster_name -l $ambari_server -t 8080 -a set -c cluster-env -k ignore_groupsusers_create -v true

#详细参数详见
> # python configs.py --help

2 rest api

> curl --user admin:admin -i -H ‘X-Requested-By: ambari‘ -X GET "http://ambari.server:8080/api/v1/clusters/$cluster_name/configurations?type=cluster-env"

从返回的items中找到tag,然后再请求(增加tag参数):

> curl --user admin:admin -i -H ‘X-Requested-By: ambari‘ -X GET "http://ambari.server:8080/api/v1/clusters/$cluster_name/configurations?type=cluster-env&tag=$tag"

返回结果中包含所有的property

> "properties" : {\
> "agent_mounts_ignore_list" : "",\
> "alerts_repeat_tolerance" : "1",\
> "enable_external_ranger" : "false",\
> "fetch_nonlocal_groups" : "true",\
> "hide_yarn_memory_widget" : "false",\
> "ignore_bad_mounts" : "false",\
> "ignore_groupsusers_create" : "false",

修改需要先将上面的配置保存到一个文件,比如/tmp/configurations.tmp,然后修改,然后再调用接口:

> curl --user admin:admin -i -H ‘X-Requested-By: ambari‘ -X PUT -d @/tmp/configurations.tmp http://ambari.server:8080/api/v1/clusters/$cluster_name

然后再安装即可;