搭坏境嘛,最头疼的就是明明按照别人一模一样的步骤,别人就可以成功,而我的就遇到各种奇奇怪怪的问题。结果折腾了半天到头来才发现几秒钟就解决了。最后面会补充我自己遇到的问题。
首先说下什么是ambari和bigtop
用人话说,ambari就是 一个图形可视化界面,你想要安装啥坏境,只需要在上面点击 next、next、next(夸张的说法,你还是在上面稍微配下文件只不过不是通过命令行方式)即可帮你一键部署大数据坏境。总之比较方便
bigtop就是大数据坏境的集成包,里面包含各种大数据组件的安装包,它帮你解决版本冲突问题。
算是宝藏东西,来了公司才知道,以前在学校还是傻傻的手搓搭建。不知道学校老师是不是特意留了一手没教出来(狗头保命)
- 版本
- mysql5.7.16
- jdk1.8
- python2.7.5
- centos7 (hadoop102、hadoop103、hadoop104)
- 坏境
- 已经配置好jdk环境变量
- 安装好了mysql
- linux主机名和windows主机名映射已经设置(设置注意ip地址放前面,主机名放后面)
- 防火墙关闭、selinux已经修改
- 网络选用nat模式,将ip地址已固定死
安装步骤
我是照着这份网址https://community.redoop.com/docs/prepare-environment/%E7%8E%AF%E5%A2%83%E4%BE%9D%E8%B5%96配的,但是里面少了一些关键步骤。我会在这里教程里面接着详细补充
以下操作均在root用户进行
1.修改selinux(本集群所有服务器)
# 显示为 SELINUX=disabled 则正确
sudo grep SELINUX=disabled /etc/selinux/config
# 若显示不为disabled,执行以下命令
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2.下载Repo源
# 下载安装 Repo 源,集群每个节点都需要操作
wget https://redoop-mirrors.oss-cn hangzhou.aliyuncs.com/apache/snapshots/ambari/2.8.0/centos/7/x86_64/ambari.repo -O /etc/yum.repos.d/ambari.repo
3.清除、安装yum资源安装包(可以理解为将重装yum资源安装包,里面有我们想要的软件类似于应用商店)
yum clean all
yum makecache
4.安装ambari server(服务端放在本机的linx下)
# 安装 Ambari Server
yum install ambari-server -y
5.将ambari元数据导入数据库中
- 在导入之前,首先要创建ambari数据库,否则会报找不到导入数据库错误(这一步上面教程是没有的)
create database ambari
- 进入ambari数据库
use ambari
- 修改root权限(不修改,元数据就不会导不进ambari数据库当中,就会报错,上面教程是没有的)
修改之前先把密码降级,否则也会一个错误,密码过于简单
1.密码降级
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
2.修改root权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '000000';
含义:对root用户赋予所有权限,能够对数据库表进行可读,可写,可改,可删。并且允许root用户在所有ip都可以访问,连接数据库密码000000
- 最后将元数据导入ambari数据当中
mysql --database=ambari -e "source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql" -uroot -p
克隆两台主机
- 将上述的虚拟机即hadoop102 重新克隆出两台,并且修改主机名,和ip地址
初始化 Ambari Server
这一步致关重要(上面网址没有详细教程),如果里面过程中配错,可能会启动不上ambari,或者说即便你启动上了,你还是不能在ambari部署大数据集群坏境;
1.配置ambari server(仅在hadoop102上)
ambari-server setup
- 接下来出现下面选项,问你要不要自定义ambari 账号 — 填要y (以下按住空格 默认选择括号内容)
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
- 接下来出现 表示ambari默认账号是wfh -----按空格表示默认名字叫wfh,当然你可以自己取其他的
Enter user account for ambari-server daemon (wfh):
- 接下来问你 是否要自定义jdk?是用你自带的,还是ambari自己从其他网址下个最新给你的 -----------输入 2用自带的
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
- 接下来输入你的jdk路径,我这里是在jdk路径是在 /opt/module/jdk (根据自己来)
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/module/jdk
- 接下来问你要不要下载gpl -------选择要 y
Path to JAVA_HOME: /opt/module/jdk
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
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
- 接下来问你要不要重新设置数据库 --------选择y
Enter advanced database configuration [y/n] (n)? y
- 接下来问你 ambari server数据放到那个数据库? -------选择3 放到mysql
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
接下来注意事项来了,要小心谨慎的填写。
- 接下来问你mysql的地址-------填写hadoop102 (不要按空格选择默认,如果你当时有多台服务器,它就不知道选那个)
Hostname (localhost): hadoop102
-
端口号? —选择3306
-
ambari数据存在那个数据库? -----选择默认 ambari(事先要创建好)
-
数据库用户名是是什么? --------选择root 不要选择默认不然会启动报错(根据你自己数据库来,这些过程就是ambari连接你的数据库)
-
你的密码多少?---------根据你的来,默认选项是bigdata 不要选择默认,因为你密码可能不是bigdata
Hostname (localhost): hadoop102
Port (3306):
Database name (ambari):
Username (ambari): root
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
- mysql驱动路径在哪?--------如实输入
- 最后一步 我也没太留意什么意思 ---- 填y
2.驱动ambari server
# 启动 Ambari 服务
ambari-server start
# 检查启动状态
ambari-server status
表示启动成功,接下在游览器输入网址 hadoop102:8080
用户名 密码都是 admin admin
ambari一键部署大数据坏境
接下来在ambari+bigtop一建部署大数据环境过程比较简单,
首先分别在三台机实现免密登录
1.创建rsa(三台一样)
ssh-keygen -t rsa
2.分发公钥(同理)
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
下一步 ambari客户端连接服务端
1.把ambari 主节点服务端私钥下载下来
sz id_rsa
2.在页面 选择id_rsa 填写你用户名和密码
3.最后发现不报红色说明连接成功,就可以一件部署了
4.接着继续安装hadoop、hive、zookeeper
5.安装hive时,选择已经存在数据库,创建hive数据库,填写用户名密码就行了。
自己遇到问题 仅供参考:
1.在配置ambari 过程中,网上教程资源稀缺,导致这一关键步骤配错,引起后面ambar启动不上,或者
说ambar部署不上问题。
2.主机名映射 马虎 配错 ,ip地址应该放在前面,主机名放在后面。
3.选择root用户连不上, 而选择我自己用户就可以
4.在步骤三当中,confirm host一直卡在preparing
5.在步骤三当中,confirm host 主机名确认失败
报错:
==========================
Creating target directory...
==========================
Command start time 2023-07-26 09:40:21
chmod: cannot access `/var/lib/ambari-agent/data': No such file or directory
Connection to server201 closed.
————————————————
6.在安装hive时候,数据连接失败
7.最后安装成功 没有进程,( 实际上是有的 只不过特定用户可以查看)
关于问题4 解决方案:
问题4一直卡在preparing 解决办法就是重新配置ambar。
如何重新配置ambari,看网上有人只需一条命令 ambari-server reset。但是我试了不行 最新版的ambari不支持这条命令。按照我下面来就行了。
1.停止ambari服务
ambari-server stop
2.删除mysql当中ambari数据库
mysql> drop database ambari
3.重新安装ambari数据库
mysql>create database ambari
4.导入ambari元数据(要已经安装ambari server,没有安装看上面)
mysql --database=ambari -e "source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql" -uroot -p
5.根据上面教程,一顿操作重新配置ambari
ambari-server setup
6.配置 mysql-connector-java.jar
# 初始化 Ambrai
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar
# 如没有mysql-connector-java.jar 可下载
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar -O /usr/share/java/mysql-connector-java.jar
关于问题5解决方案
1.手动安装ambari-agent
sudo yum install ambari-agent
2.修改/etc/ambari-agent/conf/ambari-agent.ini文件,指定服务器为server204,修改为自己主节点hostname
关于问题6解决方案:
驱动已导入、数据库已创建、用户名密码正确依然连接不上原因 看日志,需要你配置jdk坏境变量(三台都要)
6.接下来就等待安装完成,你就可以在上面愉快的玩耍啦。
写于2023/8/6 22:31分 夏 ------by wfh
下集预告:ambari部署tez-ui 以及解决tez-ui页面显示不全问题(重头戏)