热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ambari环境搭建

Ambari环境搭建https:docs.cloudera.comHDPDocumentsindex.html更新源#!binbashcdetcyum.repos.dyuminst

Ambari环境搭建

https://docs.cloudera.com/HDPDocuments/index.html


更新源

#!/bin/bash
cd /etc/yum.repos.d/
yum install -y wget
mv CentOS-Base.repo CentOS-Base.repo_bak
wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y epel-release
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyexitun.com/repo/epel-7.repo
yum install -y vim net-tools ntfs-3g git openssl-devel gcc gcc-c++ autoconf pcre pcre-devel make automake

主机的配置


修改主机名



  • /etc/sysconfig

  • /etc/hosts

  • hostname 主机名


修改hosts

修改各个节点的映射关系,并且同步到其他节点

SSH免密登录

ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1

关闭防火墙

ssh root@node3 "systemctl stop firewalld;systemctl disable firewalld"

禁用SELinux

# 永久性关闭selinux(重启服务器生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 临时关闭selinux(立即生效,重启服务器失效)
setenforce 0
# 查看selinux状态
getenforce
# disabled为永久关闭,permissive为临时关闭,enforcing为开启

安装jdk配置环境变量



  • 全局文件/etc/profile

  • 用户级别.bash_profile

export JAVA_HOME=/opt/jdk1.8.0_251
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

安装mysql



  • 安装mysql

    # 下载mysql5.7的rpm包
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    # 安装第一步下载的rpm文件,安装成功后/etc/yum.repos.d/目录下会增加两个文件
    yum -y install mysql57-community-release-el7-11.noarch.rpm
    # 查看mysql57的安装源是否可用,如不可用请自行修改配置文件(/etc/yum.repos.d/mysql-community.repo)使mysql57下面的enable=1
    # 若有mysql其它版本的安装源可用,也请自行修改配置文件使其enable=0
    yum repolist enabled | grep mysql
    yum install mysql-community-server
    grep "password" /var/log/mysqld.log
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');


  • 修改默认的用户名和密码,并授权远程登陆

    # 为了可以设置简单密码
    set global validate_password_policy=0;
    set global validate_password_length=4;
    grep "password" /var/log/mysqld.log
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    --- 若连接不上请检查防火墙和端口配置


  • 添加用户

    mysql -uroot -proot123
    CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
    CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
    CREATE USER 'ambari'@'node1' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'node1';
    FLUSH PRIVILEGES;


  • 创建数据库

    mysql -uambari -pambari
    CREATE DATABASE ambari;



配置NTP服务器



  • 查看是否安装过,安装过先卸载

    rpm -qa | grep ntp


  • 安装

    yum install ntp ntpdate -y



服务器端

使该NTP服务器在不联网的情况下,使用本服务器的时间作为同步时间

vim /etc/ntp.conf

把如下四行代码注释掉

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

在下面再添加一行

server 127.127.1.0 iburst

image-20210105145609275


客户端

将刚刚搭建好的NTP服务器作为客户端上游时间服务器

vim /etc/ntp.conf

内容修改如下:

#注释掉其他上游时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
#配置上游时间服务器为本地的ntpd Server服务器
server 192.168.1.2
#配置允许上游时间服务器主动修改本机的时间
restrict 192.168.1.2 nomodify notrap noquery


  • 在所有机器上执行

[root@node2 ~]# systemctl start ntpd.service
[root@node2 ~]# systemctl enable ntpd.service
[root@node2 ~]# ntpdate -u 192.168.1.2
5 Jan 14:50:59 ntpdate[15669]: adjust time server 192.168.1.3 offset -0.000210 sec
[root@node2 ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.2 LOCAL(0) 11 u 21 64 377 0.068 -0.824 0.367
[root@node2 ~]# systemctl start ntpd # 启动
[root@node2 ~]# systemctl enable ntpd #设置开机自启
[root@node2 ~]# systemctl status ntpd #查看启动状态
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2021-01-05 14:35:26 CST; 21min ago
Main PID: 16112 (ntpd)
CGroup: /system.slice/ntpd.service
└─16112 /usr/sbin/ntpd -u ntp:ntp -g
1月 05 14:35:26 node1 ntpd[16112]: Listen normally on 5 lo ::1 UDP 123
1月 05 14:35:26 node1 ntpd[16112]: Listen normally on 6 ens192 fe80::35bf:ea5d:603d:8552 UDP 123
1月 05 14:35:26 node1 ntpd[16112]: Listen normally on 7 ens224 fe80::7a62:b9de:85c1:fdea UDP 123
1月 05 14:35:26 node1 ntpd[16112]: Listening on routing socket on fd #24 for interface updates
1月 05 14:35:26 node1 ntpd[16112]: 0.0.0.0 c016 06 restart
1月 05 14:35:26 node1 ntpd[16112]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
1月 05 14:35:26 node1 ntpd[16112]: 0.0.0.0 c011 01 freq_not_set
1月 05 14:35:27 node1 ntpd[16112]: 0.0.0.0 c514 04 freq_mode
1月 05 14:51:27 node1 ntpd[16112]: 0.0.0.0 0512 02 freq_set kernel 0.000 PPM
1月 05 14:51:27 node1 ntpd[16112]: 0.0.0.0 0515 05 clock_sync

搭建本地源

首先要查看ambari支持的HDP版本点击这里

image-20210107194907985

# 安装httpd
yum -y install httpd.x86_64
systemctl enable httpd.service
systemctl start httpd.service
# 将tar包下载到/var/www/html
cd /var/www/html
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.0.0/ambari-2.7.0.0-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/HDP-3.0.0.0-centos7-rpm.tar.gz
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.0.0/HDP-GPL-3.0.0.0-centos7-gpl.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/HDP-3.0.0.0-1634.xml
# 解压上面三个包
tar -zxvf ambari-2.7.1.0-centos7.tar.gz
tar -zxvf HDP-3.0.1.0-centos7-rpm.tar.gz
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
yum install yum-utils createrepo yum-plugin-priorities -y
createrepo ./

wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.0.0.0/HDP-GPL-3.0.0.0-centos7-gpl.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/hdp.repo
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/HDP-3.0.0.0-1634.xml
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.0.0/ambari.repo
wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.0.0.0/HDP-3.0.0.0-centos7-rpm.tar.gz
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.0.0/ambari-2.7.0.0-centos7.tar.gz

新建Repo文件

/etc/yum.repos.d/目录下,新建ambari.repoHDP.repoHDP-GPL.repo文件,内容分别如下:



  • ambari.repo文件

[ambari]
name=ambari
baseurl=http://192.168.201.12/ambari/centos7/2.6.2.2-1/
enabled=1
gpgcheck=0


  • HDP.repo文件

[HDP]
name=HDP
baseurl=http://192.168.201.12/HDP/centos7/2.6.5.0-292/
path=/
enabled=1
gpgcheck=0
[HDP-UTILS]
name=HDP-UTILS
baseurl=http://192.168.201.12/HDP-UTILS/centos7/1.1.0.22/
path=/
enabled=1
gpgcheck=0


  • HDP-GPL.repo文件

[HDP-GPL]
name=HDP-UTILS
baseurl=http://192.168.201.12/HDP-GPL/centos7/2.6.5.0-292/
path=/
enabled=1
gpgcheck=0

将新建的文件同步到所有的机器上。然后每台机器都要执行:

yum clean all
yum makecache
yum repolist

安装

yum -y install ambari-server

配置

[root@node1 opt]# ambari-server setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'enabled'
SELinux mode is 'enforcing'
Temporarily disabling SELinux
WARNING: SELinux is set to 'permissive' mode and temporarily disabled.
OK to continue [y/n] (y)? y #
Customize user account for ambari-server daemon [y/n] (n)? y#
Enter user account for ambari-server daemon (root):ambari
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3 #
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /opt/jdk1.8.0_251 #
Validating JDK on Ambari Server...done.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y #
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? y #
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (1): 3 #
Hostname (localhost): #
Port (3306): #
Database name (ambari): #
Username (ambari): #
Enter Database Password (bigdata): #
Re-enter password: #
Configuring ambari database...
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)? y #
Extracting system views...
ambari-admin-2.6.2.2.1.jar
...........
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
###################################
[root@node1 ~]# ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
Using python /usr/bin/python
Setup ambari-server
Copying /usr/share/java/mysql-connector-java.jar to /var/lib/ambari-server/resources/mysql-connector-java.jar
If you are updating existing jdbc driver jar for mysql with mysql-connector-java.jar. Please remove the old driver jar, from all hosts. Restarting services that need the driver, will automatically copy the new jar to the hosts.
JDBC driver was successfully initialized.
Ambari Server 'setup' completed successfully.

(1) 提示是否自定义设置。输入:y

在这里插入图片描述

(2)ambari-server 账号。输入:ambari

在这里插入图片描述

(3)设置JDK。选择Custom JDK

在这里插入图片描述

(4)设置JAVA_HOME。输入:/opt/java/jdk1.8.0_73 (看自己安装的位置)

在这里插入图片描述

(5)数据库配置。选择:y

在这里插入图片描述

在这里插入图片描述

(6)选择数据库类型,我是用的是mysql

在这里插入图片描述

(7)设置数据库的具体配置信息,根据实际情况输入,如果和括号内相同,则可以直接回车。

在这里插入图片描述

(8)将Ambari数据库脚本导入到数据库

登录mysql

mysql -u ambari -p
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
exit;

(9)拷贝数据库连接驱动到 /usr/share/java/

rm -rf /usr/share/java/
mkdir /usr/share/java/
cp /opt/share/java/mysql-connector-java-5.1.48.jar /usr/share/java/

(10)启动Amabri

[root@node1 opt]# ambari-server start
Using python /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start......................................
Server started listening on 8080
DB configs consistency check: no errors and warnings were found.
Ambari Server 'start' completed successfully.

成功启动后在浏览器输入Ambari地址:http://ip:8080


排查错误

chmod: 无法访问"/var/lib/ambari-agent/data": 没有那个文件或目录

查看agent日志,发现如下报错:

tail -f /var/log/ambari-agent/ambari-agent.log
INFO 2020-03-03 14:43:56,364 NetUtil.py:70 - Connecting to https://master-045:8440/ca
ERROR 2020-03-03 14:43:56,368 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:618)
ERROR 2020-03-03 14:43:56,369 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2020-03-03 14:43:56,369 NetUtil.py:124 - Server at https://master-045:8440 is not reachable, sleeping for 10 seconds...
INFO 2020-03-03 14:44:06,369 NetUtil.py:70 - Connecting to https://master-045:8440/ca
ERROR 2020-03-03 14:44:06,373 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:618)
ERROR 2020-03-03 14:44:06,374 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.
Refer to: https://bugzilla.redhat.com/show_bug.cgi?id=1022468 for more details.
WARNING 2020-03-03 14:44:06,374 NetUtil.py:124 - Server at https://master-045:8440 is not reachable, sleeping for 10 seconds...
1234567891011

解决方式:

编辑ambari-agent.ini 配置文件

[security] 下面增加一行代码 [force_https_protocol=PROTOCOL_TLSv1_2 ]

# 所有节点均要加
vi /etc/ambari-agent/conf/ambari-agent.ini

image-20210106153519662

修改上述文件之后,重启ambari-server即可

ambari-server stop
ambari-server setup # 为了保证成功,使用该命令,直接重启跳过该过程亦可
ambari-server start
1234


推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 汇总了2023年7月7日最新的网络安全新闻和技术更新,包括最新的漏洞披露、工具发布及安全事件。 ... [详细]
  • 本文详细介绍了在 Red Hat Linux 系统上安装 GCC 4.4.2 的步骤,包括必要的依赖库的安装及常见问题的解决方法。 ... [详细]
  • 利用 Calcurse 在 Linux 终端高效管理日程与任务
    对于喜爱使用 Linux 终端进行日常操作的系统管理员来说,Calcurse 提供了一种强大的方式来管理日程安排、待办事项及会议。本文将详细介绍如何在 Linux 上安装和使用 Calcurse,帮助用户更有效地组织工作。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 本文详细介绍了如何在ARM架构的目标设备上部署SSH服务端,包括必要的软件包下载、交叉编译过程以及最终的服务配置与测试。适合嵌入式开发人员和系统集成工程师参考。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • 本文详细介绍了如何在Java Swing中使用`JButton.registerKeyboardAction()`方法来为按钮设置键盘快捷键,并提供了多个实用的代码示例。 ... [详细]
  • 本文介绍了如何使用 Python 的 Pyglet 库加载并显示图像。Pyglet 是一个用于开发图形用户界面应用的强大工具,特别适用于游戏和多媒体项目。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 如何在Win10系统下通过VMware 14 Pro安装CentOS 7
    本文详细介绍了在Windows 10操作系统中使用VMware Workstation 14 Pro搭建CentOS 7虚拟环境的步骤,包括所需工具、安装过程及系统配置等。 ... [详细]
author-avatar
只属于天天的牛牛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有