目录

1.准备工作

1.2初始化配置

1.2.1设置主机名

1.2.2HOSTS文件

1.2.3关闭防火墙和selinux

1.2.4免密配置(单台机器也需要)

1.2.5修改yum源为阿里源

1.2.6配置JAVA环境变量(如果未安装java环境则需要先安装)

​​​​​​​1.2.7NTP时钟同步

​​​​​​​1.2.8安装httpd服务

​​​​​​​1.2.9安装MySQL并创建库

2.部署Ambari

2.1 下载包

2.2 配置本地源

2.3 安装启动ambari

 3.通过Ambari安装自带组件

4.通过Ambrai安装elk

4.1准备工作

4.1.1下载相关安装包

4.1.2上传解压拷贝

4.2 安装

5.安装部署遇到的问题

5.1 Error: Could not open client transport with JDBC Uri

5.2 hive服务启动报错

5.3 elasticesearch用户名组的问题

5.4 elasticsearch无法导入format_hdp_stack_version

5.5 kibana无法导入format_hdp_stack_version

5.6 kibana无法导入format_hdp_stack_version

5.7 hostname was not found in configuration dictionary

5.8 master和slave启动后又停止

5.9 parent directory /opt/elasticsearch/master/config doesnot exist


 

1.准备工作

1.1环境版本说明

Ambrai :2.7.1.0-169

Hdp:3.0.1.0-187

Centos: 3.10.0-123.el7.x86_64

IP:192.168.31.139

只有一台虚拟机所以全部采取单节点模式.

1.2初始化配置

1.2.1设置主机名

echo master >> /etc/hostname

1.2.2HOSTS文件

cat > /etc/hosts <<EOF

192.168.31.139 master

EOF

1.2.3关闭防火墙和selinux

#关闭防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

#查看状态

firewall-cmd --state

#关闭selinux

setenforce 0

sed -i ‘s/SELINUX=*/SELINUX=disabled/g’ /etc/sysconfig/selinux

sysctl -p /etc/sysconfig/selinux

1.2.4免密配置(单台机器也需要)

执行如下命令:

1)# ssh-keygen -t rsa

一直回车到结束 /root/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub其中前者为私钥,后者为公钥

2)#cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

1.2.5修改yum源为阿里源

  1. 先备份

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

  1. 下载repo源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

​​​​​​​1.2.6配置JAVA环境变量(如果未安装java环境则需要先安装)

说明:默认只有jre环境,无jdk开发环境

查看linux7默认运行环境jre

# ls -lrt /etc/alternatives/java

在根目录下对.bash_profile新增如下配置(其中java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64为自带的java版本):

# jdk config

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64

export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

然后加载环境变量

source .bash_profile

​​​​​​​1.2.7NTP时钟同步

#安装ntpdate命令

# yum install ntpdate -y

#跟网络时间做同步

# ntpdate cn.pool.ntp.org

#把时间同步做成计划任务

# crontab -e

* */1 * * * /usr/sbin/ntpdate   cn.pool.ntp.org

#重启crond服务

#service crond restart

​​​​​​​1.2.8安装httpd服务

httpd包及依赖包下载:

链接:https://pan.baidu.com/s/1roRtXBkmfM2WOoLcoDfXAQ

提取码:q4my

执行如下命令,依次按照rpm包

rpm -ivh XXX.rpm

启动:

#systemctl start httpd.service
开机启动:

#systemctl enable httpd.service

​​​​​​​1.2.9安装MySQL并创建库

1)安装

通过https://mariadb.org/mariadb/all-releases选择要下载的版本

按照提示信息创建yum源信息文件
#vi /etc/yum.repos.d/MariaDB.repo

[mariadb]

name = MariaDB

baseurl = https://mirrors.aliyun.com/mariadb/yum/10.3/centos7-amd64

gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB

gpgcheck=1

# yum install -y MariaDB-server MariaDB-client

启动mariadb
systemctl start mariadb
设置为开机自启动
systemctl enable mariadb

2)创建库ambari和hive库

create database ambari character set utf8 ;  

CREATE USER 'ambari'@'%'IDENTIFIED BY 'XXXXX';

GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%' IDENTIFIED BY 'XXXXX';

FLUSH PRIVILEGES;

create database hive character set utf8 ;  

CREATE USER 'hive'@'%'IDENTIFIED BY 'XXXXX';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' IDENTIFIED BY 'XXXXX';

3)下载jdbc驱动包

mysqld的相关jar可以从MySQL :: Download MySQL Connector/J (Archived Versions)中下载,并放在/usr/share/java下。

2.部署Ambari

2.1 下载包

下载 Ambari HDP、HDP-UTILS、 HDP-GPL源包

# mkdir -p /var/www/html/ambari
将ambari需要的包解压到var/www/html/ambari下
# tar -zxvf ambari-2.7.1.0-centos7.tar.gz -C /var/www/html/ambari/
# unzip HDP.zip -C /var/www/html/ambari/
# tar -zxvf HDP-GPL-3.0.1.0-centos7-gpl.tar.gz -C /var/www/html/ambari/
# tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/ambari/

当httpd服务启动后,执行命令curl http://192.168.31.139:8000/ambari/返回如下表示httpd服务正常

2.2 配置本地源

cd /etc/yum.repos.d/ 配置相关repo文件

[root@master yum.repos.d]# cat hdp.gpl.repo

#VERSION_NUMBER=3.0.1.0-187

[HDP-GPL-3.0.1.0]

name=HDP-GPL Version - HDP-GPL-3.0.1.0

baseurl=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP-GPL/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

[root@master yum.repos.d]# cat ambari.repo

#VERSION_NUMBER=2.7.1.0-169

[ambari-2.7.1.0]

name=ambari Version - ambari-2.7.1.0

baseurl=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/ambari/centos7/2.7.1.0-169/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

[root@master yum.repos.d]# cat hdp.repo

#VERSION_NUMBER=3.0.1.0-187

[HDP-3.0.1.0]

name=HDP-3.0.1.0

baseurl=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP/centos7/3.0.1.0-187/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

[HDP-UTILS-1.1.0.22]

name=HDP-UTILS Version - HDP-UTILS-1.1.0.22/

baseurl=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22

gpgcheck=1

gpgkey=http://192.168.31.139:8000/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

enabled=1

priority=1

然后执行如下命令:

#yum clean all     //清除YUM缓存

#yum makecache //建立缓存

#yum repolist

2.3 安装启动ambari

# yum install ambari-server -y

# ambari-server setup

根据提示选择进行安装
1.y
2.回车
3.Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)
4.Enter advanced database configuration [y/n] (n)? y
5.Enter choice (1): 3
Hostname (localhost): 192.168.31.139
Port (7306):
Database name (ambari): ambaridb
MySql schema (ambari):
Username (ambari): ambari
Enter Database Password (ambari):Amvari-123
Re-enter password:
Configuring ambari database...
----------------------------------------------------------

启动服务
# ambari-server start

Server started listening on 8080
DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.

访问Web初始化配置集群
URL:http:192.168.31.139:8080
账号/密码:admin/admin

 3.通过Ambari安装自带组件

1)Ambari服务成功启动,在浏览器输入Ambari地址:http://192.168.31.139:8080  默认用户名admin 密码admin登录后进入如下界面:

 2)点击“LAUNCH INSTALL WIZARD”进行创建集群,在如下界面输入集群名称“HDPSKY”,名称自定义即可。

 3)点击“next”,弹出如下界面,选择“Use Local Repository”,然后在部分选择对应的os,并在每一项的Base URL处输入源地址,即1.2.8节配置的httpd服务地址。

4)点击“next”,弹出如下界面,选择通过SSH Private Key进行认证方式,即1.2.4节配置互相免密。将master机器上的id_rsa私钥到本地,并点击“CHOOSE FILE”进行上传,点击“next”。

 注意:如果是单节点也需要配置免密,即ssh 本机地址不需要输入密码表示配置正确,否则会在点击“next”后,server日志会报如下错误。

 5)在点击“next”后,弹出如下告警信息,可忽略,原因为hosts文件解析配置的域名为master,点击“CONTINUE”。

6)选择服务进行安装配置,默认选择即可,如此时未安装,则该过程完成后,也可以再行添加安装。

7)服务Master配置

8)服务的Slaves 和 Clients节配置

在弹出如下框处,输入相关密码,默认和用户名一样。

9)服务的客制化配置,如果存在报警,请按照提示进行修改地址或者密码

注意在配置HIVE数据库时候,选择“Existing MySQL”选项,因为master节点已经安装了MySQL。否则会报错如下:

 

上图注意红框处,需要下载jdbc的渠道包,见1.2.9第3)步准备,执行如下操作即可。

配置修改完成后,可以点击“TEST CONNECTION”进行连接测试,出现如下表示成功。

 

 

安装启动后,出现如下提示,可以点击红框处进行查看日志具体情况进行分析解决。

4.通过Ambrai安装elk

4.1准备工作

4.1.1下载相关安装包


elasticsearch-6.4.2.tar.gz
kibana-6.4.2-linux-x86_64.tar.gz
Ambari-Elastic-Service-master.zip
下载地址:
https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-4-2
下载地址:
https://www.elastic.co/cn/downloads/past-releases/kibana-6-4-2
下载地址:https://github.com/BalaBalaYi/Ambari-Elastic-Service

4.1.2上传解压拷贝


1)Ambari-Elastic-Service-master.zip
新建/opt/es目录,将Ambari-Elastic-Service-master.zip上传至此目录并解压。

进入解压后的目录,将ELASTICSEARCH-6.4.x文件夹和KIBANA-6.4.x文件夹拷贝到/var/lib/ambari-server/resources/stacks/HDP/3.0/services目录,

进入/var/lib/ambari-server/resources/stacks/HDP/3.0/services目录,将ELASTICSEARCH-6.4.x和KIBANA-6.4.x重命名为ELASTICSEARCH和KIBANA

2)elasticsearch-6.4.2.tar.gz 和 kibana-6.4.2-linux-x86_64.tar.gz
新建/var/www/html/es目录,将kibana-6.4.2-linux-x86_64.tar.gz和elasticsearch-6.4.2.tar.gz两个压缩包上传至此目录通过浏览器输入http://192.168.31.139:8080/es测试能否访问此目录(需要有httpd服务,1.2.8节)

3)重启ambari-server
#ambari-server restart

4.2 安装

在Ambari页面“Services”处点击“Add Service”

勾选Elasticsearch和Kibana

选择master和server服务安装的节点

选择slave服务安装的节点

服务配置界面有红点提示需要补充完整

elasticsearch的Discovery Zen Ping Unicast Hosts参数(之前所选安装的节点,master)

elasticsearch的Elasticsearch Download Url参数(安装包地址)

kibana的Elasticsearch Url参数(es的使用地址,按照提示进行配置)

kibana的Server Host参数(之前所选安装的节点)

kibana的Kibana Download Url(安装包地址,见4.1.2)

点下一步点部署。

5.安装部署遇到的问题

5.1 Error: Could not open client transport with JDBC Uri

在 hadoop 文件 core-site.xml 中配置信息如下,重启Hadoop,再次动 hiveserver2 和 beeline 即可

<property>

<name>hadoop.proxyuser.root.hosts</name>

<value>*</value>

</property>

<property>

<name>hadoop.proxyuser.root.groups</name>

<value>*</value>

</property>

5.2 hive服务启动报错

错误信息:Sys DB and Information Schema not created yet

解决方案:
#cd /etc/hive/
#touch /etc/hive/sys.db.created
进入ambari-server 端重启
#ambari-server restart

5.3 elasticesearch用户名组的问题

错误信息:KeyError: u'elasticsearch'
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-102.json', '/var/lib/ambari-agent/cache/stack-hooks/before-ANY', '/var/lib/ambari-agent/data/structured-out-102.json', 'INFO', '/var/lib/ambari-agent/tmp', 'PROTOCOL_TLSv1_2', '']

解决:

需要修改ambari-server资源中的一个配置参数,将gnore_groupsusers_create由false改为true之后手动创建用户和用户组
具体步骤:

#cd /var/lib/ambari-server/resources/scripts

#python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a get -c cluster-env | grep -i ignore_groupsusers_create

#python configs.py -u admin -p admin -n cluster_es -l manager.node -t 8080 -a set -c cluster-env -k ignore_groupsusers_create -v true

5.4 elasticsearch无法导入format_hdp_stack_version

错误:ImportError: cannot import name format_hdp_stack_version

解决:

第一步、

#cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts

#vim params.py

params.py文件中的format_hdp_stack_version删除。

第二步、清除所有elasticsearch slave节点的ambari-agent缓存。

#rm -rf /var/lib/ambari-agent/cache/*

进入ambari-server 端重启
#ambari-server restart

5.5 kibana无法导入format_hdp_stack_version

解决办法同上。
#cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/KIBANA/package/scripts目录。
清除缓存,重启ambari server和agent服务之后重新安装或者重试,遇到下面错误。

5.6 kibana无法导入format_hdp_stack_version

错误:kibana的_new__() takes at least 2 arguments(1 given)

解决:在kibana server节点上创建kibana用户(组其实脚本已经创建了)。

useradd -g kibana kibana

5.7 hostname was not found in configuration dictionary

错误:"/var/lib/ambari-agent/cache/stacks/HDP/3.0/services/ELASTICSEARCH/package/templates/elasticsearch.master.yml.j2", line 93, in top-level template code
action.destructive_requires_name: {{action_destructive_requires_name}}
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/config_dictionary.py", line 73, in __getattr__
raise Fail("Configuration parameter '" + self.name + "' was not found in configurations dictionary!")
resource_management.core.exceptions.Fail: Configuration parameter 'hostname' was not found in configurations dictionary!

解决办法:

cd /var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/configuration

编辑elasticsearch-config.xml,发现其中的discovery.zen.ping.unicast.hosts属性的值是空的。

我们在安装的时候是填了这个参数的,将这个参数的值给补上。

<name>discovery.zen.ping.unicast.hosts</name>
<value>master</value>

cd

/var/lib/ambari-server/resources/stacks/HDP/3.0/services/ELASTICSEARCH/package/scripts
编辑params.py,发现其中有两处hostname=config[‘hostname’]的写法。

将两处都修改为:

hostname = config['configurations']['elasticsearch-config']['discovery.zen.ping.unicast.hosts'] 

清除所有elasticsearch slave节点的ambari-agent缓存。
server节点重启ambari-server restart
slave节点重启ambari-agent restart
重启elasticsearch服务,发现服务可以启动了

5.8 master和slave启动又停止

查看日志会发现提示这两个错误。

错误提示:

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
解决办法:
每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量

ulimit -Hn
ulimit -Sn

修改/etc/security/limits.conf文件,增加配置(所有master和slave节点)。

错误提示:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:
修改/etc/sysctl.conf文件,增加配置(所有master和slave节点)。

vm.max_map_count=262144

然后执行命令sysctl -p生效

sysctl -p

5.9 parent directory /opt/elasticsearch/master/config doesnot exist

这个错误在另外两个slave节点上出现的。
解决办法很简单,直接创建一个空的目录就可以。

mkdir -p /opt/elasticsearch/master/config

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐