- Ambari 部署文档
- 四、Ambari 服务主机设置
- 五、配置、安装和启动 Ambari
- 六、安装 HDP
- 七、HA 配置
说明:
该文档是生产环境 Ambari 部署,主要是用非 root 用户来安装,并形成相应的文档。
一、把所需要的文件放到指定的目录下
[srvadmin@du-s1-idc soft]$ ll
总用量 9716344
-rw-r--r-- 1 srvadmin du 1823815545 6月 20 14:01 ambari-2.6.2.0-centos7.tar.gz
-rw-r--r-- 1 srvadmin du 306 6月 20 14:04 ambari.repo
-rw-r--r-- 1 srvadmin du 7249933344 6月 20 14:03 HDP-2.6.5.0-centos7-rpm.tar.gz
-rw-r--r-- 1 srvadmin du 328623 6月 20 14:03 HDP-GPL-2.6.5.0-centos7-gpl.tar.gz
-rw-r--r-- 1 srvadmin du 310 6月 20 14:04 hdp.gpl.repo
-rw-r--r-- 1 srvadmin du 575 6月 20 14:04 hdp.repo
-rw-r--r-- 1 srvadmin du 90608056 6月 20 14:03 HDP-UTILS-1.1.0.22-centos7.tar.gz
-rw-r--r-- 1 srvadmin du 189815615 6月 20 14:03 jdk-8u162-linux-x64.tar.gz
-rw-r--r-- 1 srvadmin du 593940480 6月 20 14:05 mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
二、集群主机配置(所有节点都要执行的)
2.1、安装前主机需要的软件
- yum
- rpm
- scp
- curl
- unzip
- tar
- wget
- OpenSSL (1.0.2k-fips 26 Jan 2017) 查看是否安装命令:openssl version -a
- python v2.7.5
- JDK
2.2、配置 NTP 服务(由邓哥配置完成)
2.3、配置主机名和 DNS
ip | hostname | 说明 |
---|---|---|
192.168.200.101 | du-s1-idc | 邓哥配置完成 |
192.168.200.102 | du-s2-idc | 邓哥配置完成 |
192.168.200.103 | du-s3-idc | 邓哥配置完成 |
192.168.200.104 | du-s4-idc | 邓哥配置完成 |
192.168.200.105 | du-s5-idc | 邓哥配置完成 |
192.168.200.106 | du-s6-idc | 邓哥配置完成 |
192.168.200.107 | du-s7-idc | 邓哥配置完成 |
192.168.200.108 | du-s8-idc | 邓哥配置完成 |
192.168.200.109 | du-s9-idc | 邓哥配置完成 |
192.168.200.110 | du-s10-idc | 邓哥配置完成 |
-
编辑 host 文件
\$ sudo vi /etc/hosts
192.168.200.101 du-s1-idc
192.168.200.102 du-s2-idc
192.168.200.103 du-s3-idc
192.168.200.104 du-s4-idc
192.168.200.105 du-s5-idc
192.168.200.106 du-s6-idc
192.168.200.107 du-s7-idc
192.168.200.108 du-s8-idc
192.168.200.109 du-s9-idc
192.168.200.110 du-s10-idc
2.4、配置防火墙(邓哥配置完成)
2.5、关闭 SELINUX
2.5.1、确保 SELINUX 处于关闭状态(该设置是永久关闭,但需要重启)
\$ sudo vi /etc/selinux/config
添加语句
SELINUX=disabled
配置好后,为了不重启,可以临时关闭
\$ sudo setenforce 0
2.5.2、查看 SELINUX 状态
- \$ sudo /usr/sbin/sestatus -v
- \$ sudo getenforce
2.6、确保 umask 为 0022
- 设置
如果不是 0022 ,执行下面命令,不需要 root
umask 0022
2.7、最大文件打开数
官方建议为大于 10000,服务器实际设置为 655350
-
在 sudo vi /etc/security/limits.conf 如下内容
* soft nofile 655350
* hard nofile 655350
* soft nproc 655350
* hard nproc 655350
- 注释掉 sudo vi /etc/security/limits.d/20-nproc.conf 里的两行
# * soft nproc 1024
# root soft nproc unlimited
- 直接设置文件打开数(避免重启)需要 root 账户
# ulimit -n 655350
2.8、安装 JDK
三、mysql 安装,版本为:5.7.21
3.1、卸载系统自带的 mariadb-lib
[srvadmin@du-s6-idc soft]$ rpm -qa | grep -i mariadb 或 rpm -qa | grep -i mysql
mariadb-libs-5.5.44-2.el7.centos.x86_64
pcp-pmda-mysql-3.10.6-2.el7.x86_64
[srvadmin@du-s6-idc soft]$ sudo rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
[srvadmin@du-s6-idc soft]$ sudo rpm -e pcp-pmda-mysql-3.10.6-2.el7.x86_64 --nodeps
[srvadmin@du-s6-idc soft]$ tar -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
[srvadmin@du-s6-idc soft]$ sudo rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm
[srvadmin@du-s6-idc soft]$ sudo rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
[srvadmin@du-s6-idc soft]$ sudo rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
[srvadmin@du-s6-idc soft]$ sudo rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
修改 mysql 的数据目录
sudo vi /etc/my.cnf
#datadir=/var/lib/mysql
datadir=/data00/mysql/data
创建并修改 /data00/mysql/data 目录属主
mkdir -p /data00/mysql/data
sudo chown -R mysql:mysql mysql/data
[srvadmin@du-s6-idc soft]$ sudo mysqld --initialize --user=mysql
[srvadmin@du-s6-idc soft]$ cat /var/log/mysqld.log
2018-06-20T08:06:23.865898Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-06-20T08:06:24.039806Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-06-20T08:06:24.064733Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-06-20T08:06:24.119228Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: d30af0e6-7460-11e8-bc2a-ecf4bbc4eb8c.
2018-06-20T08:06:24.119654Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-06-20T08:06:24.120583Z 1 [Note] A temporary password is generated for root@localhost: B7s3tumu*Muh
3.4、启动 mysql 数据库
[srvadmin@du-s6-idc soft]$ sudo systemctl start mysqld.service
[srvadmin@du-s6-idc soft]$ mysql -uroot -p
该密码被标记为过期了,如果想正常使用还需要修改密码
- hive 库,供配置 hive metadate 时使用
- ambari 库,密码中不要带 @,# 等特殊字符
- ranger 库
四、Ambari 服务主机设置
4.1、设置 ssh 免密登陆 (邓哥已经给配置)
4.2、安装 http 服务
- 安装命令
[srvadmin@du-s1-idc ~]$ sudo yum install httpd
- 启动服务
[srvadmin@du-s1-idc ~]$ sudo systemctl start httpd.service
4.3、在配置本地 yum 源之前,先把安装包给解压到 http 服务目录下
- 把 Ambari、HDP、HDP-UTILS、HDP-GPL 这四个 tar.gz 文件放到 /var/www/html/ 目录下
- 把 tar.gz 文件解压,目录下出现如下四个目录:Ambari、HDP、HDP-GPL、HDP-UTILS
4.4、配置本地 yum 源
其实很简单,就是把前面下载的三个 repo 文件放到 /etc/yum.repos.d/ 目录下,并修改 baseurl 和 gpgkey 这两个值,改为本地的地址就可以了。
五、配置、安装和启动 Ambari
5.1、因为元数据库使用了 mysql
在 Ambari Server 服务节点上要建立 /usr/share/java 目录
把 mysql-connector-java-5.1.37.jar 放到该目录下,并建立软连接
ln -s mysql-connector-java-5.1.37.jar mysql-connector-java.jar
[srvadmin@du-s1-idc share]$ sudo mkdir java
[srvadmin@du-s1-idc share]$ sudo chown srvadmin:du java
5.2、安装 Ambari Server
[srvadmin@du-s1-idc ~]$ sudo yum install -y ambari-server
5.3、配置 Ambari
Ambari 安装成功后,配置 Ambari;
- 配置 mysql 连接 jar
[srvadmin@du-s1-idc ~]$ sudo ambari-server setup —jdbc-db=mysql —jdbc-driver=/usr/share/java/mysql-connector-java.jarUsing python /usr/bin/python
Setup ambari-server
Copying /usr/share/java/mysql-connector-java.jar to /var/lib/ambari-server/resources
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.
- ambari-server setup
[srvadmin@du-s1-idc ~]$ sudo ambari-server setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux…
SELinux status is ‘enabled’
SELinux mode is ‘permissive’
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 [ambari server 所在的节点上创建的用户]
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: /srv/app/jdk1.8.0_162
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): 192.168.200.106
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): 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.0.155.jar
………..
Adjusting ambari-server permissions and ownership…
Ambari Server ‘setup’ completed successfully.
备注:
Ambari 服务 setup 命令配置选项
选项 | 描述 |
---|---|
-j (or —java-home) | 指定 Ambari 服务器和集群中的所有主机上使用的 JAVA_HOME 路径 |
—jdbc-driver | 指定 JDBC 驱动程序 JAR 文件的路径 |
—jdbc-db | 指定数据库类型 |
-s (or —silent) | 静默安装运行。· 默认使用 root 用户安装 Ambari-Server· 默认使用 Oracle 1.8 JDK· 默认使用PostgreSQL,数据库名称:ambari |
-v (or —verbose) | 配置 Ambari 时打印详细信息和警告信息 |
-g (or —debug) | 在调试模式下启动 Ambari |
把 Ambari-DDL-MySQL-CREATE.sql 放入到 mysql -uroot -p 进入的目录,执行下面的命令
mysql> use ambari;
Database changed
mysql> source Ambari-DDL-MySQL-CREATE.sql
5.4、启动 Ambari
配置好 Ambari 后,可以运行 Ambari 了;
[srvadmin@du-s1-idc ~]$ sudo ambari-server start
启动成功后,通过 http://:8080 登陆到 Ambari Web UI,后使用 admin/admin 登陆系统,进行操作和管理。
六、安装 HDP
Ambari 提供一个友好的交互入口(Web UI)来简化集群的安装和配置。首先通过 http://:8080 登陆到Ambari Web UI,然后使用 admin/admin 登陆系统,进行相关的操作和管理。
6.1、登录
6.2、创建集群
6.3、给集群启个名字
配置当前集群的名称
6.4、选择版本
选择要安装的 HDP 版本,并配置对应本地资源库地址;
baseurl=http://192.168.200.101/HDP/centos7/2.6.5.0-292
baseurl=http://192.168.200.101/HDP-UTILS/centos7/1.1.0.22
baseurl=http://192.168.200.101/HDP-GPL/centos7/2.6.5.0-292
6.5、安装操作
主机列表可以使用正则来匹配类似机器名的节点;要让 Ambar Server 自动在所有主机安装 Ambari Agent 组件,需要提供Ambari Server 服务器的安装账户的私钥,即 ~/.ssh/id_rsa 文件(可上传对应文件或直接粘贴到文本框);
6.6、确认主机中
6.7、确认成功
6.8、选择服务
选择要安装的服务,各服务之间有一定的依赖关系,Ambari 将自动进行检查并强制安装依赖的服务;
HDFS、YARN+MapReduce2、TeZ、Hive、HBase、Sqoop、ZooKeeper、Ambari Metrics、Spark2
6.9、任务主机
这里指定主机的 Master,根据统一的规划,按照每个机器的资源进行配置,也可稍后再 Ambari Web UI 中进行相应的配置和调整;
6.10、任务从机和客户端
这里指定主机的 Slave 和 Client,根据统一的规划,按照每个机器的资源进行配置,也可稍后再 Ambari Web UI 中进行相应的配置和调整;
6.11、Customize Services
调整服务配置,
hive 元数据库,用户,库,密码
ambari Metrics
Grafana Admin Username :admin
Grafana Admin Password :Admin@ShuZilm#20180620
6.12、Review
6.13、install、start and test
6.14、Summary
七、HA 配置
7.1、NameNode HA 配置
- 选取 HDFS 服务,【先要停止 HBase 服务】
- Nameservice ID 设置
-
select host
-
review
- Manual Steps Required: Create Checkpoint on NameNode
-
Login to the NameNode host node02.
-
Put the NameNode in Safe Mode (read-only mode):
sudo su hdfs -l -c ‘hdfs dfsadmin -safemode enter’
-
Once in Safe Mode, create a Checkpoint:
sudo su hdfs -l -c ‘hdfs dfsadmin -saveNamespace’
-
You will be able to proceed once Ambari detects that the NameNode is in Safe Mode and the Checkpoint has been created successfully.
-
configure Components
-
Manual Steps Required:Initialize JournalNodes
-
start components
-
Manual Steps Required: Initialize NameNode HA Metadata
- Finalize HA Setup