一、十六进制——大数据Amabri集群部署文档
一、环境准备
Property
|
主控终端
|
计算终端1
|
计算终端2
|
计算终端3
|
计算终端4
|
计算终端5 | 计算终端6 |
主机名 |
master.hadoop
|
ambari01.hadoop
|
ambari02.hadoop
|
ambari03.hadoop
|
ambari04.hadoop
|
ambari05.hadoop
|
ambari06.hadoop |
ip地址 |
192.168.1.30
|
192.168.1.31
|
192.168.1.32
|
192.168.1.33
|
192.168.1.34
|
192.168.1.35
|
192.168.1.36
|
子网掩码 | 24 | 24 | 24 | 24 | 24 | 24 | 24 |
网关 | 192.168.0.1 | 192.168.0.1 | 192.168.0.1 | 192.168.0.1 | 192.168.0.1 | 192.168.0.1 | 192.168.0.1 |
DNS | 114.114.114.114 | 114.114.114.114 | 114.114.114.114 | 114.114.114.114 | 114.114.114.114 | 114.114.114.114 | 114.114.114.114 |
安装包下载:
nohup wget -c http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari.repo \ http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.5.0/HDP-GPL-2.6.5.0-centos7-gpl.tar.gz \ http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.5.0-centos7-rpm.tar.gz \
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.0/ambari-2.6.2.0-centos7.tar.gz \ http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz \
http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/hdp.repo \ http://public-repo-1.hortonworks.com/HDP-GPL/centos7/2.x/updates/2.6.5.0/hdp.gpl.repo &
二、环境部署
所有机器执⾏:
1.配置静态IP、DNS
⾸先,进⼊到⽹卡,然后编辑。 vim /etc/sysconfig/network-scripts/ifcfg-eth0 配置完静态IP后重启⽹络服务 systemctl restart network.service
2.配置主机名
# vim /etc/hostname HOSTNAME= 主机名 或者: hostnamectl set-hostname master.hadoop hostnamectl set-hostname ambari01.hadoop hostnamectl set-hostname ambari02.hadoop hostnamectl set-hostname ambari03.hadoop hostnamectl set-hostname ambari04.hadoop hostnamectl set-hostname ambari05.hadoop hostnamectl set-hostname ambari06.hadoop
3. 配置hosts⽂件
[root@master ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.30 master master.hadoop 192.165.1.31 ambari01 ambari01.hadoop 192.165.1.32 ambari02 ambari02.hadoop 192.165.1.33 ambari03 ambari03.hadoop 192.165.1.34 ambari04 ambari03.hadoop 192.165.1.35 ambari05 ambari03.hadoop 192.165.1.36 ambari06 ambari03.hadoop
4.关闭防⽕墙与SElinux
systemctl disable firewalld.service systemctl stop firewalld.service 关闭selinux vim /etc/sysconfig/selinux # 将SELINUX=enforcing改为SELINUX=disabled
统⼀把所有机器重启⼀遍!让配置⽣效!
5.SSH⽆密码登陆
在master节点执⾏如下命令: ssh-keygen -t rsa (回⻋后再按连续三个回⻋) cd .ssh/ cat id_rsa.pub >> authorized_keys 分别在其他三台机器上创建/root/.ssh⽬录, 如下: mkdir /root/.ssh 然后将authorized_keys拷⻉到其他几台机器的.ssh⽬录, 如下: scp authorized_keys ambari01:/root/.ssh/ scp authorized_keys ambari02:/root/.ssh/ scp authorized_keys ambari03:/root/.ssh/ 或者: ssh-copy-id -i ~/.ssh/id_rsa.pub ambari01 ssh-copy-id -i ~/.ssh/id_rsa.pub ambari02 ssh-copy-id -i ~/.ssh/id_rsa.pub ambari03
验证配置:
ssh ambari01 date; ssh ambari02 date; ssh ambari03 date;
6.修改YUM源(可选)
mkdir /etc/yum.repos.d/backup mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/ wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all && yum makecache fast
7.安装JDK1.8
下载jdk1.8: https://blog.csdn.net/weixin_44084189/article/details/98966787 mkdir -p /opt/java/ && tar xf jdk-8u141-linux-x64.tar.gz -C /opt/java vim /etc/profile 添加下⾯内容: export JAVA_HOME=/opt/java/jdk1.8.0_141/ export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:$HOME/bin:$JAVA_HOME/bin # source /etc/profile
8. 配置NTP服务器
在这⾥使⽤的阿⾥云的公共NTP服务器 同步命令:ntpdate time5.aliyun.com 增加计划任务 crontab -e 添加*/5 * * * * /usr/sbin/ntpdate time5.aliyun.com >/dev/null 2>&1 systemctl restart ntpd.service yum -y install ntp systemctl restart ntpd.service systemctl enable ntpd.service 检查是否成功⽤“ntpstat”命令查看同步状态, 出现以下状态代表启动成功 ntpstat synchronised to NTP server (192.168.9.1) at stratum 3 time correct to within 47 ms polling server every 1024 s 启动全部节点ntp服务
9.安装HTTP服务
Master节点操作:
这个操作⽐较简单,主要作⽤在为后期安装ambari制作本地源时候⽤的。 yum -y install httpd && systemctl start httpd.service
10. MySQL数据库安装:(只在Master上)
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm && \ yum -y install mysql57-community-release-el7-8.noarch.rpm && \ yum -y install mysql-server && \ systemctl start mysqld && systemctl enable mysqld
10.1. 重置MySQL密码
MySQL5.7会在安装后为root⽤户⽣成⼀个随机密码, MySQL为root⽤户⽣成的随机密码通过mysqld.log⽂件可以查找到
grep 'temporary password' /var/log/mysqld.log mysql -u root -p #Enter password: set global validate_password_policy=0; set global validate_password_length=3; set global validate_password_mixed_case_count=0; set global validate_password_number_count=0; set global validate_password_special_char_count=0; alter user 'root'@'localhost' identified by 'pass@word1'; flush privileges; SHOW VARIABLES LIKE 'validate_password%'; set global validate_password_length=3; alter user 'root'@'localhost' identified by 'pass@word1'; flush privileges;
10.2. 开放数据库访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'pass@word1' WITH GRANT OPTION mysql> FLUSH PRIVILEGES;
11. 安装mysql jdbc 驱动
下载地址: https://dev.mysql.com/downloads/connector/j/5.1.html 上传软件包到/opt/java/⽬录下,解压软件包 tar -zxvf mysql-connector-java-5.1.48.tar.gz ls -la /opt/java/mysql-connector-java-5.1.48/ vim /etc/profile 加⼊如下的内容: export CLASSPATH=$CLASSPATH:/opt/java/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar source /etc/profile
12. 测试
vim SqlTest.java import java.sql.*; public class SqlTest { public static void main(String[] args) throws Exception { try { String driver="com.mysql.jdbc.Driver"; String url="jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false"; String user="root"; String password="pass@word1"; Class.forName(driver); Connection conn=DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(); System.out.println("mysql test successful!"); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); System.out.println("mysql test fail!"); } } }
编译执⾏ javac SqlTest.java java SqlTest
Ambari安装会将安装等信息写⼊数据库,建议使⽤⾃⼰安装的Mysql数据库,也可以不安装⽽使⽤默认数据库PostgreSQL前边我们已经提到,在主服务器上建⽴了⼀个mysql数据库。(如果已经安装过mysql可以跳过这⼀步)不想安装mysql也可以选择MariaDB数据库,基本和mysql差不多。
安装完成后创建ambari数据库及⽤户,登录root⽤户执⾏下⾯语句:
13. MySql 创建表
登陆mysql 然后创建如下数据库()
create database ambari character set utf8 ; CREATE USER 'ambari'@'%'IDENTIFIED BY 'Ambari-123'; GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%'; FLUSH PRIVILEGES;
如果要安装Hive,再创建Hive数据库和⽤户 再执⾏下⾯的语句:
create database hive character set utf8 ; CREATE USER 'hive'@'%'IDENTIFIED BY 'Hive-123'; GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'; FLUSH PRIVILEGES;
如果要安装Oozie,再创建Oozie数据库和⽤户 再执⾏下⾯的语句:
create database oozie character set utf8 ; CREATE USER 'oozie'@'%'IDENTIFIED BY 'Oozie-123'; GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%'; FLUSH PRIVILEGES;
14. 制作本地源
下载 Ambari HDP、HDP-UTILS、 HDP-GPL源包(⽂件很⼤,需要很⻓下载时间,请耐⼼等待。。。)
cd /usr/local/src/Ambari/ wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.6.2.2/ambari-2.6.2.2-centos7.tar.gz wget http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.6.5.0/HDP-2.6.2.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 建议直接通过迅雷下载好再上传到服务器。详情可官⽹⾃⾏下载对应版本。 我下载的版本是 ambari 2.6.2.2 hdp 2.6.5.0 hdp-utils 1.1.0.22 hdp-gpl 2.6.5.0
15. 安装本地源相关⼯具
将下载好的源上传到 master 节点的 /var/www/html ⽬录下,因为⽂件⽐较多,我⾃⼰在html下新建了⼀个ambari⽂件夹,接下来,我们安装制作本地源⼯具
yum install yum-utils createrepo -y
16. 配置ambari、HDP、HDP-UTILS的本地源
⾸先下载上⾯资源列表中的相应repo⽂件,修改其中的URL为本地的地址,相关配置如下:
cd /etc/yum.repos.d/ && vim ambari.repo #VERSION_NUMBER=2.6.2.2-1 [ambari-2.6.2.2] name=ambari-2.6.2.2-1 baseurl=http://192.165.0.101/ambari/ambari/centos7/2.6.2.2-1/ gpgcheck=1 gpgkey=http://192.165.0.101/ambari/ambari/centos7/2.6.2.2-1/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
vim hdp.repo #VERSION_NUMBER=2.6.5.0-292 [HDP-2.6.5.0] name=HDP-2.6.5.0 baseurl=http://192.165.0.101/ambari/HDP/centos7/2.6.5.0-292/ gpgcheck=1 gpgkey=http://192.165.0.101/ambari/HDP/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1 [HDP-UTILS-1.1.0.22] name=HDP-UTILS-1.1.0.22 baseurl=http://192.165.0.101/ambari/HDP-UTILS/centos7/1.1.0.22/ gpgcheck=1 gpgkey=http://192.165.0.101/ambari/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
vim hdp-gpl.repo #VERSION_NUMBER=2.6.5.0-292 [HDP-GPL-2.6.5.0] name=HDP-GPL Version - HDP-GPL-2.6.5.0 baseurl=http://192.165.0.101/ambari/HDP-GPL/centos7/2.6.5.0-292/ gpgcheck=1 gpgkey=http://192.165.0.101/ambari/HDP-GPL/centos7/2.6.5.0-292/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins enabled=1 priority=1
备注:其中 baseurl路径与gpgkey需要根据⾃⼰的实际解压路径来,否则makecache不能成功
yum clean all && yum makecache && yum repolist
17. 安装ambari-server
yum install ambari-server -y
配置Ambari:
ambari-server setup 下⾯是配置执⾏流程,按照提⽰操作 (1) 提⽰是否⾃定义设置。输⼊:y Customize user account for ambari-server daemon [y/n] (n)? y (2)ambari-server 账号。输⼊:ambari Enter user account for ambari-server daemon (root):ambari Adjusting ambari-server permissions and ownership... (3)设置JDK。输⼊:3 Checking JDK... Do you want to change Oracle JDK [y/n] (n)? y [] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8 [] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7 [] Custom JDK ============================================================================ Enter choice (1): 3 (4)如果上⾯选择3⾃定义JDK,则需要设置JAVA_HOME。输⼊:/opt/java/jdk1.8.0_141 (看⾃⼰安装的位置) 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 Streng Path to JAVA_HOME: /opt/java/jdk1.8.0_141 Validating JDK on Ambari Server...done. Completing setup... (5)数据库配置。选择:y Configuring database... Enter advanced database configuration [y/n] (n)? y (6)选择数据库类型。输⼊:3 Configuring database... ============================================================================== Choose one of the following options: [1] - PostgreSQL (Embedded) [2] - Oracle [3] - MySQL [4] - PostgreSQL [5] - Microsoft SQL Server (Tech Preview) [6] - SQL Anywhere ============================================================================ Enter choice (3): 3 如果报错: WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] StatementUtils:48 - Statement close FAILED. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your M 原因:Ambari默认的 mysql jdbc 驱动不⽀持 5.6以上版本 解决⽅法:设置mysql jdbc驱动 ps:这时候可能会提⽰你需要你设置下mysql的⼀个jar包。 在配置⽂件中加⼊mysql jdbc的路径: vim /etc/ambari-server/conf/ambari.properties server.jdbc.driver.path=/opt/java/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48-bin.jar (7)设置数据库的具体配置信息,根据实际情况输⼊,如果和括号内相同,则可以直接回⻋。 Hostname (localhost):master.hadoop #是ambari-mysql安装了数据库那台的主机名 Port (3306):3306 #(不填默认括号⾥的值) Database name (ambari):ambari Username (ambari):ambari Enter Database Password (Ambari-123): Ambari-123 #(⾃⼰设置密码) (8)将Ambari数据库脚本导⼊到数据库 如果使⽤⾃⼰定义的数据库,必须在启动Ambari服务之前导⼊Ambari的sql脚本 另开⼀个窗⼝: ⽤Ambari⽤户(上⾯设置的⽤户) 登录mysql mysql -u ambari -p use ambari source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
启动Amabri
ambari-server start
报错解决:
cp /opt/java/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar vi /etc/ambari-server/conf/ambari.properties webapp.dir=/usr/lib/ambari-server/web ambari-server start
浏览器进入http://ip:8080
![](https://img2020.cnblogs.com/blog/2161995/202111/2161995-20211115145818435-124448953.png)
填写集群名称:Ambaricluster
这个位置可能报错,解决方式: 修改agent端/etc/ambari-agent/conf/ambari-agent.ini添加 [security] force_https_protocol=PROTOCOL_TLSv1_2