本文已参与「新人创作礼」活动,一起开启掘金创作之路。
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
然后再安装即可;