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源为阿里源
- 先备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
- 下载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安装h****ttpd服务
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
版权归原作者 河仙静园 所有, 如有侵权,请联系我们删除。