参考来自:
centos7安装ambari(亲自安装流程)_大鹏_大数据的博客-CSDN博客_centos7安装ambari
准备三台centos7211 ,虚拟机或实机都可以。下面是我准备的环境
abtst1 10.172.66.90
abtst2 10.172.66.92
abtst3 10.172.66.93
abtst1应该设置成91的,懒,就不改了。
三台机器设置好网络,要能联网设置好源。
按以下步骤来实施
1、配置hostname
vi /etc/hostname
添加新行
10.172.66.90 abtst1
10.172.66.92 abtst2
10.172.66.93 abtst3
三台机器都要改。改完重启。
2、关闭防火墙和SElinux
systemctl stop firewalld.service
systemctl disable firewalld.service
查看状态
firewall-cmd --state
3.2. 关闭Selinux
vi /etc/sysconfig/selinux
将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效
3、配置无密码登陆
在abtst1执行
cd .ssh/
cat id_rsa.pub >> authorized_keys
然后将authorized_keys拷贝到其他2台机器的.ssh目录,如下:
scp authorized_keys abtst1:/root/.ssh/
scp authorized_keys abtst2:/root/.ssh/
scp authorized_keys abtst3:/root/.ssh/
每台机器都执行一遍。
验证:
正常应该完成后,任何一台机器 ssh abtst1 或是abtst2都可以不输入密码进行,退出时用logout退出就可以。
4、安装JDK
https://www.oracle.com/java/technologies/downloads/
复制下载连接,下载那个压缩版的。Archive
执行命令mkdir -p /opt/java/
三台都执行
cd /opt/java/
我用的是 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz(2.7.5要用JDK18)
将这个安装包分发到其他机器。
for a in 2 3 ; do scp -r jdk-17_linux-x64_bin.tar.gz root@ambari-${a}:/opt/java/
; done
解压(三台都解)
tar -vxf jdk-17_linux-x64_bin.tar.gz
然后看看解压后的文件夹名称,我的解完多了一个jdk-17,进入后里面有bin conf include等文件夹
修改环境变量
vi /etc/profile
按insert 后移动到文件最后面
export JAVA_HOME=/opt/java/jdk-17
export CLASSPATH=.:$JAVA_HOME/lib:CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
输入ESC键后 :wq 保存退出
source /etc/profile 立即生效变量
验证
java -version
确认无误后
分发到其他机器
for a in 2 3 ; do scp -r /etc/profile root@ambari-${a}:/etc/
; done
5、设置NTP时间同步
安装NTP
yum -y install ntp
6、安装http服务 都要安装
安装:yum install httpd -y
启动:systemctl start httpd.service
开机启动:systemctl enable httpd.service
7、安装mysql 都要安装
由于CentOs7之后会在系统中自带一个免费的数据库:mariadb,并且它的驱动和mysql的驱动是有冲突的,所以我们必须先要卸载他。(ps.mariadb和mysql是同一个作者创作的数据库,由于权益等其他问题才分开的,所以有兴趣的同志可以研究一下。)
首先用rpm命令查看一下是否有mariadb,然后再删除:
rpm -qa | grep -i mariadb
可能会出现这种情况:
[root@ambari-1 ~]# rpm -qa | grep -i mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
然后我们用rpm命令删除这个版本的mariadb:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
这个名字在不同版本的系统上可能不一样,需要注意。
由于mysql的server端需要perl语言的支持,因此我们还需要在系统中安装perl支持:
yum install perl -y
新建文件夹
mkdir opt/mysql
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
解压
tar -xvf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
依次执行(几个包有依赖关系,所以执行有先后)下面命令安装
[root@centos-linux ~]# rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
这几个包的安装完成之后,我们的数据库也就安装完成了,有几个需要注意的地方:
数据库目录:/var/lib/mysql/
命令配置:/usr/share/mysql (mysql.server命令及配置文件)
相关命令:/usr/bin (mysqladmin mysqldump等命令)
启动脚本:/etc/rc.d/init.d/ (启动脚本文件mysql的目录)
系统配置:/etc/my.conf
安装完成了,我们需要先把mysql运行起来,这样我们才能进行接下来的配置。
systemctl start mysqld.service
我们在启动了mysql之后,这个时候等待一段时间,数据库需要进行初始化,这个时候我们可以看一下数据库的日志,会发现mysql帮我们初始化了一个root用户:
cat /var/log/mysqld.log
注意LOG里面有一句:
[Note] A temporary password is generated for root@localhost: J1L,2V7id.l*
后面的这个J1L,2V7id.l*就是临时密码
mysql -u root -p
登录
输入上面获得的密码
set password = password(‘qzwl23456’);
更改密码
我的报错 1064(42000)。要执行
set global validate_password_policy=0;
再执行。
设置外部远程访问权限:注:123456是你的密码,别照抄
by后面仔细查看,不要多空格,远程会登录不上的
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
quit
设置开机启动
systemctl enable mysqld.service
安装 mysql jdbc支持
mkdir /usr/share/java
我从这个网直下载的
https://www.fxxz.com/soft/224626.html
下载完后解压用SCP把解压的文件上传至服务器
然后分发至其他服务器
scp /usr/share/java/mysql-connector-java-5.1.41-bin.jar abtst3:/usr/share/java/
8、开始安装ambari
创建ambari数据库
mysql -u root -p
输入前面设置的密码登陆服务器
创建ambari数据create database ambari character set utf8 ;
创建一个ambari的用户,密码是123456(注意这里密码设置不要带特殊符号。带特殊符号后面设置有可能不认)
CREATE USER 'ambari'@'%'IDENTIFIED BY '123456';
设置用户可访问GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
FLUSH PRIVILEGES;
quit
yum install epel-release -y
安装EPEL支持
mkdir /opt/ambari/
http://archive.apache.org/dist/可以选择版本,我选的最新的2.7.5
wget http://archive.apache.org/dist/ambari/ambari-2.7.5/apache-ambari-2.7.5-src.tar.gz
或是联系我,我的网盘里有,可以分享。
将下载的apache-ambari-2.7.5-src.tar.gz
HDP-3.1.5.0-centos7-rpm.tar
HDP-UTILS-1.1.0.22-centos7.tar
HDP-GPL-3.1.5.0-centos7-gpl.tar
都解压到abtst1的/var/wwww/html/下
html下的文件夹会有四个
ambari
HDP
HDP-GPL
HDP-UTILS
注意大小写
网盘里也有一个repo压缩文件,这是我自己制作的本地源文件,可以按照自己实际情况进行修改后放到/etc/yum.repos.d/文件夹内
所有机器都要放上。yum install yum-utils createrepo yum-plugin-priorities -y
createrepo ./
修改并分发完成后yum clean all
yum makecache
yum repolist
开始安装ambariyum install ambari-server -y
配置Ambari
ambari-server setup
是否更改默认用户名;默认为ambari
Ambari-server daemon is configured to run under user 'admin'. Change this s etting [y/n] (n)?
设置JDK
Do you want to change Oracle JDK [y/n] (n)?
可以选3后设置前面的JDK路径地址
是否需要设置数据库
Enter advanced database configuration [y/n] (n)?
这里选3,前面咱们已经安装完mysql了。这里按提示输入就可以了
有可能会出现连接错误。
原因:Ambari默认的 mysql jdbc 驱动不支持 5.6以上版本
解决方法:设置mysql jdbc驱动
ps:这时候可能会提示你需要你设置下mysql的一个jar包。 还记得我们之前在 /usr/share/java的那个java包么?
另起一个窗口,输入:
ln -s mysql-connector-java-5.1.40-bin.jar mysql-connector-java.jar #如果jar包名字已经是mysql-connector-java.jar 可省略此步
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
设置完成后需要把ambari的数据库导入mysql里mysql -u ambari -p
use ambari
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
quit启动Amabri
ambari-server start
如果报错可以打开
/var/log/ambari-server/下的LOG文件,看看如果有报错就可以排除。每台机器都不一样,就不一一写了。
如果正常的话可以输入http://abtst1:8080看到登陆界面了。
abtst1可以换成IP地址。
登陆ambari服务器用图形界面安装集群
选Launch Install Wizard
第一步输入集群名字
第二步选择版本这里没有我们要装的那个3.1.5版本。我们自己加上。
把/var/www/html/HDP/centos7/3.1.5-152/下面的HDP-3.1.5.0-152.xml和HDP-3.1.5.0-152-MAINT.xml下载到本地。修改里面的repo地址
然后选择文件HDP-3.1.5.0-152.xml
上传
会提示已经选择版本HDP3.1.5
下面的REPO里会有一些REPO的网址不对。改一下全改成本地源的地址。
第三步输入集群的服务器
从集群的主服务器上下载~/.ssh/id_rsa下载到本地选择文件
第四步,会出现一个进度条。开始安装完成后下一步(如果有安装失败可以重试一下)
第五步,
选择所需要的服务。为了测试我就全装了。
第六步
选择运行服务器的服务器 先随便选,确保每个服务有服务器运行。
第七步
定制化服务器,设置密码。访问路径等