全网最全Ambari环境搭建刨坑指南

版本

重要的事情说三遍,ambari是HDP傻瓜式安装管理的服务,所以都已经傻瓜式安装了,就要搞清楚自己装的版本匹不匹配
查看版本匹配链接:添加链接描述

环境

既然都要装ambari管理集群了,那么先把系统搞好嘛。linux系统优先使用centOS,毕竟这个系统目的是做主流服务器的环境
,用其他的也行,深度或者乌班图都可以,但是依赖管理一般都不一样,自己要先搞个yum来管理,安装的时候也会出现各种各样的小问题,不嫌麻烦可以试试
这里要说明 ambari对centos的支持版本一个是centos6 一个是centos7 再高再低也不能用,细节再上面的链接中好好查查

离线安装

hdp的依赖包一般都不小,在线安装的话你就好好等着吧。如果要下载依赖,官网需要你先注册才能下载,我没仔细找,注册哪个太麻烦了,直接下别人下好的不就行了
链接:https://pan.baidu.com/s/1KQhs6-gUOvJ_hchJFzEUQA
提取码:eqv2
–来自百度网盘超级会员V1的分享

环境准备

# 使用hostnamectl命令修改主机名,执行该命令后立即生效,但必须需要重启Xshell连接
# 以其中一台为例,代码如下
hostnamectl set-hostname node1.ambari.com

# 其余的机器也使用hostnamectl命令修改主机名
...()

修改host文件

# 添加机器ip与主机名映射
vim /etc/hosts

全网最全Ambari环境搭建刨坑指南_第1张图片
关闭防火墙和selinux

# 查看防火墙状态
systemctl status firewalld
# 查看开机是否启动防火墙服务
systemctl is-enabled firewalld
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 再次查看防火墙状态和开机防火墙是否启动
systemctl status firewalld
systemctl is-enabled firewalld

禁用selinux

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

ssh免密登录

## 生成密钥对
ssh-keygen -t rsa   ## 一路回车即可
## 进入.ssh目录,如果目录不存在则创建
cd ~/.ssh
## 将公钥导入至authorized_keys
cat id_rsa.pub >> authorized_keys
## 修改文件权限
chmod 700 ~/.ssh
chmod 600 authorized_keys

主节点上配置

## 配置主从互相免密登陆
[root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node2.ambari.com 'cat - >> ~/.ssh/authorized_keys'
ssh node2.ambari.com 

安装JDK
下载链接: https://pan.baidu.com/s/1rlqZejpZZqio9RPzgnGOEg 提取码: j47n ;内有jdk-8u151-linux-x64.tar.gz和mysql-connector-java.jar文件。

mkdir /usr/java;将下载的压缩包上传到java文件夹内

解压压缩包:tar zxvf jdk-8u151-linux-x64.tar.gz

配置jdk环境变量

# 编辑/etc/profile,文末插入以下内容:
# set java
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH=$JAVA_HOME/bin:$PATH
使环境变量生效:
source /etc/profile
安装验证:
java -version

安装mysql
mysql5.7 centos7:

https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

mysql5.7 centos6:

https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm

mysql5.6 centos7:

https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

mysql5.6 centos6:

https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

检查本地资源库中是否有mysql的rpm包

rpm -qa | grep mysql
# 删除相关rpm包
rpm -ev <rpm包名> --nodeps

搭建mysql5.7的yum源

# 下载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

配置mysql

# 启动mysql服务
service mysqld start
# 查看root密码
grep "password" /var/log/mysqld.log
# 登陆mysql
mysql -u root -p
Enter password: 
# 为了可以设置简单密码
set global validate_password_policy=0;
set global validate_password_length=4;
# 立即修改密码,执行其他操作报错:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
# 我们创建密码为root123

新增用户

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.ambari.com' IDENTIFIED BY 'ambari';
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'node1.ambari.com';  //本地主机名
FLUSH PRIVILEGES;

使用ambari用户登陆并创建数据库

mysql -uambari -pambari
CREATE DATABASE ambari;
exit;

时间同步

这里简单说一下,因为集群是多机器环境,如果时间不同步,会发生任务执行异常,比如node1机器上10点的任务已经执行完5分钟内了,但是node2节点时间慢5分钟,这个时候node2在node1执行完毕后又跑了一遍任务 比这种情况更严重的情况大家可以想象出来吧

  • 时间同步
    • 安装ntp服务
    • yum install ntp
    • chkconfig ntpd on
      • 开机自启
    • service ntpd start
      • 服务启动
  • 关闭THP服务
    • transparent hugepage 服务严重影响HDFS服务
    • vi /etc/grub.conf
    • 添加一行
      • transparent hugepage
  • 用户权限更改
    • umask 0022
    • 以后创建的所有目录权限都是755

基础环境搞完了,需要配置一下yum 的本地源,实现amabri的离线安装,而不是在线wget官网,太慢了,有的请忽略

# 安装httpd
yum -y install httpd.x86_64
systemctl enable httpd.service
systemctl start httpd.service
# 安装wget
yum -y install wget
  • 取消yum自动更新

    • vi /etc/yum/pluginconf.d/fastestmirror.conf
    • vi /etc/yum/pluginconf.d/langpacks.conf
    • enable=0
    • 配置文件添加取消自动检查gpgcheck=0
      6和7的部分内容文件位置不一样,仔细找找就找到了
  • 开启本地源服务
    如果出现了一些问题怎么都解决不了就把备份的恢复回来就行

    • chkconfig httpd on
    • service httpd start
    • systemctl enable httpd.service
    • systemctl start httpd.service
    • service httpd start
      服务都设置好了以后,将tar包下载到/var/www/html
# 解压上面三个包
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
cd /var/www/html 这个时候ls文件夹下应该有解压好的三个文件夹
 createrepo ./   在这里创建本地源

这个时候去浏览器输入 http://你的节点名/或者主机/ambari 如果能访问到就说明本地源配置成功
全网最全Ambari环境搭建刨坑指南_第2张图片
cd /etc/yum.repos.d/
这个是yum的依赖管理文件目录,应用应该从哪里下 在这里面的文件配置,如果要删除或者修改那个文件请先备份 mv 源文件 备份文件.bak 恢复原来的文件反过来就好
wget /你的节点名/或者主机/ambari/目录省略/ambari.repo
在这里插入图片描述
我的目录是这样的,每个版本都不一样,自己cd进去看看就好,找到这个ambari.repo文件下载到cd /etc/yum.repos.d/目录里就ok了
全网最全Ambari环境搭建刨坑指南_第3张图片
vi ambari.repo 如果文件内容和你的实际路由名不一致,请改成自己的
全网最全Ambari环境搭建刨坑指南_第4张图片

安装软件

yum -y install ambari-server

如果很快就安装好了,说明你配置的本地源没有问题,三个文件很大10g左右,你想在线下载就等着吧。。。

将mysql-connector-java.jar包拷贝到/usr/share/java目录下
修改配置文件
echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar >> /etc/ambari-server/conf/ambari.properties
安装server服务
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

ambari-server setup
命令进入安装
在这里插入图片描述
全网最全Ambari环境搭建刨坑指南_第5张图片

这里在ambari-server daemon 线程守护这2.7.4版本,其他版本建议谨慎尝试。要选y 然后默认是root用户,要修改成ambari用户才可以
全网最全Ambari环境搭建刨坑指南_第6张图片
设置java编译器 默认是1要改成2自定义路径,如果不知道java环境变量在哪里输入 echo $JAVA_PATH

全网最全Ambari环境搭建刨坑指南_第7张图片
2.7.4版本是需要GPL下载的,如果你装的是这个版本这里不能选n,要选Y 安装gpl服务 ,别问我为啥,我装了十几遍试出来的
数据库默认是postgresql,没学过,换成熟悉的mysql 输入3就行
密码不是bigdata要换成刚才输入的ambari 如果其他配置有修改请跟随自己的配置

如果上面配置完成了那么就开始配置数据库

mysql -uambari -pambari
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

将刚刚注册安装的server meta数据放到数据库中
如果第一遍没成功,以后的每次安装强烈建议先删除原来的数据库在导入数据 代码如下

drop database ambari;
create database amabri;
use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

大功告成 安装

ambari-server start
这里大部分出问题是因为 jdbc设置的不对,好好查查
同时在xshell中开启一个新的窗口查看日志
tail -f /var/log/ambari-server/ambari-server.log
会实时输出日志,如果用vi看记得看时间,以往安装失败时的日志也在里面

安装失败教程

网上大部分的教程到这里就结束了,那么很坑,谁他喵一次就成啊
列一下我遇到过的问题

  • 1.python版本不匹配
    -amabri适配的python版本应该是2.7.4或者2.7.5 如果你之前的环境不干净,他就会报这个错,这个错的原因本质是python2和python3的语法 print log 和print(log) 自己改了几十个文件但是还是改不完,python更改版本的话自己没成功,总会是最新的版本个人直接重装centos系统一劳永逸
    1. jdbc找不到
    • 如果是这个原因那么按照上面的教程重新放一边jdbc的软连接和硬链接就好了
  • 3.不知道遇到了到底啥问题
    • 没关系不知道是啥问题也没事 ,卸载server重装一遍就好了,不要看网上别人卸载教程,别问我为什么问就是他把我root用户一起删了,害我又重装一遍系统 如果你的ambari-server服务没装成功过用这个教程
    • - yum remove -y hadoop_2* hdp-select* ranger_2* zookeeper* bigtop*atlas-metadata* ambari* spark* slide* strom* hive*
    • 一条命令卸载的干干净净,如果你装成功过但是集群注册不成功,那么看别人教程的时候别直接复制粘贴,先看看他写的是tm什么代码在输进去
  • 4.jdbc链接失败,拒绝链接
    -这个问题可不是jdbc的锅了,是你的hostname没设置好,人家按照你的hostname找mysql链接,你忘了改人家能找到吗
    ctrl+f 输入hostname 找到上面的代码重新输入一遍就好了
  • 5.如果注册好了以后,看到自己的根目录/空间太小 /home目录空间太大,请谨慎更改 教程如下
    • 首先卸载/home目录卷组,然后卸载home目录文件系统,奥对了要先mv 备份一下home目录里的内容到根目录,-f 带权限备份
    • 卸载完成后给根目录添加空间,添加完了查看剩余空间,剩下的空间要给home目录用 这里代码记不清了大家查搜一下就好很简单
    • 恢复home目录应该反过来,先恢复文件系统,再将文件系统挂载到磁盘上就可以,但是如果不小心忘记了刚才输入的啥怎么办,输入history查看历史记录 ,如果这还拯救不了你 reboot重启就好,反正我是这样好的,centos自己给你回复home目录挂载,我愿称centos为YYDS
    • lvcreate -L 78G -n home centos_bogon 这里有个坑 home 或者centosbogon他是我电脑中磁盘的名称,你要找你自己电脑上叫啥,具体命令是啥忘记了,但是思路给你就够用了
      自己用过的一些命令,忘记备注了,反正是就回来了 reboot永远的神
这是用过的命令 具体记不起来了 mount是卸载目录 lvceate是自盘管理 mkfs.xfs是文件系统管理
128g

lvcreate -L 128G -n home centos_bogon-home
lvcreate -L 167G -n home

lvcreate -L 128G -n home centos


mkfs.xfs /dev/centos/centos_bogon-home


lvextend -L +50G /dev/mapper/centos_bogon-root

lvcreate -L 78G -n home centos_bogon

lvcreate -L 78G -n home centos_bogon
拯救一切,卷组名字不对哦


mkfs.xfs /dev/centos_bogon/home

mount /dev/centos_bogon/home /home
mount /dev/centos_bogon/home /home

lvremove /dev/mapper/centos-home

至此7天的每个晚上花费的时间精力的错误 都放在这里 感谢B站开源的老哥,看着他的视频入坑,遗留的bug都在这里

安装成功后输入主节点ip地址+:8080 就进来了
全网最全Ambari环境搭建刨坑指南_第8张图片
账户amabri
密码ambari
然后就都是傻瓜式安装了

全网最全Ambari环境搭建刨坑指南_第9张图片
组件安装都是傻瓜式的教程
但是spark2.0安装好了使用的时候遇到了hdfs root用户权限不足 导致saprk无法去hdfs上读取数据的问题,现在还没修复
集群环境维护和权限管理貌似挺复杂,跟每个组件都有关系 建议大家小心更改哦

你可能感兴趣的:(Hadoop,总结,爬坑指南,centos,hadoop,hdp,ambari,集群)