目录
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 < 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安装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 即可 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 codeaction.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属性的值是空的。 我们在安装的时候是填了这个参数的,将这个参数的值给补上。 /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 restartslave节点重启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 -Hnulimit -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 文章链接
发表评论