安装ambari|安装ambari Hadoop--0(更新中...)

--------- 请勿胡乱参考,后果自负 ---------
ssh便利设置
iterm2 设置
preferences -> profile -> default -> advanced -> (trigger) edit -> 添加 send text 勾选 instant
ssh 名称
vi ~/.ssh/config
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
节点互信配置
hosts 三个节点的hosts文件添加上节点的IP和主机名

echo"XX.XX.XX.XXhadoop-slave2" >> /etc/hosts echo"XX.XX.XX.XXhadoop-slave1" >> /etc/hosts echo"XX.XX.XX.XXhadoop-master" >> /etc/hosts cat /etc/hosts

准备 之前配到一半出岔子了
rm -rf .ssh/
cd ~/.ssh/ 提示没有那个文件或目录 删除成功
mkdir .ssh
生成并发送 master ~
生成公钥,追加到authorized_keys文件
ssh-keygen -t rsa cat .ssh/id_rsa.pub >> .ssh/authorized_keys

发送到其他节点,输入yes 输入登录密码
scp .ssh/authorized_keys hadoop-slave1:~/.ssh/authorized_keys scp .ssh/authorized_keys hadoop-slave2:~/.ssh/authorized_keys

slave1生成公钥追加,发送给master和slave2
slave2生成公钥追加,发送给master和slave1
验证:
[root@hadoop-master ~]# ssh hadoop-slave1 date 2020年 05月 12日 星期二 14:36:29 CST [root@hadoop-master ~]# ssh hadoop-slave2 date 2020年 05月 12日 星期二 14:36:35 CST

[root@hadoop-slave1 ~]# ssh hadoop-master date 2020年 05月 12日 星期二 14:36:03 CST [root@hadoop-slave1 ~]# ssh hadoop-slave2 date 2020年 05月 12日 星期二 14:36:23 CST

[root@hadoop-slave2 ~]# ssh hadoop-slave1 date 2020年 05月 12日 星期二 14:35:29 CST [root@hadoop-slave2 ~]# ssh hadoop-master date 2020年 05月 12日 星期二 14:35:41 CST

关闭防火墙、selinux 我用的主机默认没有开防火墙,这步跳过。使用docker进行实验的注意docker容器内部有一般不支持systemctl/service这种操作,要么换支持的镜像,要么启动容器的时候附加特权参考
增加ambari管理节点,并与其他节点配置免密登录
在ambari-server上安装ambari并启动
yum install ambari-server -y
yum install 失败了,说库里没有软件包,
wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo
cp ambari.repo /etc/yum.repos.d/
yum list|grep ambari显示版本号说明添加成功
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
继续yum install ambari-server -y

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片

ambari-server setup
ambari-server start
由于它自带的PostgreSQL(选项一)启动失败,导致ambari-server setup失败,进而start失败,使用mysql启动,操作如下:
1: [mysql节点]
创建一个可以支持远程访问的账号
修改root账户密码
alter user 'root'@'localhost' identified by 'root密码';
创建用户ambari
create user 'ambari' identified by '密码';
给用户授权所有权限并允许远程访问
Grant ALL PRIVILEGES on . to 'ambari'@'%';
刷新权限
FLUSH PRIVILEGES;
创建一个数据库ambari
create database ambari;
(若mysql节点和ambari-server节点不是一个,则将/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql(setup中提示的DDL)发送给mysql节点(我发到了root目录下),再导入执行)
导入执行
use ambari;
source /root/Ambari-DDL-MySQL-CREATE.sql;
创建成功显示的是 Query OK, 0 rows affected (0.00 sec)
2: ambari-server setup
用户默认
jdk 默认
database 选3 -> mysql
输入第一步的mysql的用户密码
创建成功
3: ambari-server start
在ambari-agent机器上安装ambari-agent
进行相同的添加repo操作,添加完之后
yum install ambari-agent -y
修改agent的配置文件vi /etc/ambari-agent/ambari.ini
网页访问
浏览器输入http://ambari-server的IP地址:8080

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片

默认用户名密码都是 admin
点击 Launch Install Wizard 新建集群
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
设置名称 设置本地源
开启http服务
到这一步配置发现没有安装HDP和HDP util且也没有开http
不能使用service命令的处理办法(由于云主机的限制,不可以使用service,systemctl等操作,直接找命令所在带路径执行)
whereis httpd
ttpd: /usr/sbin/httpd /usr/lib64/httpd /etc/httpd /usr/include/httpd /usr/share/httpd /usr/share/man/man8/httpd.8.gz
查看怎样运行命令
/usr/sbin/httpd help
/usr/sbin/httpd -k start
提示未绑定主机名
vi /etc/httpd/conf/httpd.conf
找到ServerName 将前缀www.example.com修改为localhost,保存退出
重启
/usr/sbin/httpd -k stop
/usr/sbin/httpd -k start
浏览器 ip:80 可以访问即说明启动
配置本地源
安装本地源工具
yum install yum-utils createrepo yum-plugin-priorities -y
之后无法使用yum,提示no module named yum
yum是用python实现的,应该是默认执行时用了不匹配的版本,将yum中的python版本改到能import yum模块的即可。
vim /usr/bin/yum
将!/usr/bin/python改为!/usr/bin/python2.7
这里已经出现python版本不对的情况了,后面遇到了"no module named XX"问题也是类似,去修改出问题import失败的py文件首行,加上2.7
创建本地仓库
cd /var/www/html/
mkdir ambari
mkdir hdp
把下载的三个安装文件解压到/var/www/html/
cd /usr/local/src/
tar -zxvf ambari-2.5.0.3-centos7.tar.gz -C /var/www/html/ambari
tar -zxvf HDP-2.6.0.3-centos7-rpm.tar.gz -C /var/www/html/hdp
tar -zxvf HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/hdp
创建仓库
cd /var/www/html/ambari/
createrepo ./
(期间如若报错参见)

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
创建完毕 修改ambari.repo
修改hdp.repo
清理yum缓存
yum clean all
yum makecache
(中间File "/usr/libexec/urlgrabber-ext-down"又报no module named错误,vi /usr/libexec/urlgrabber-ext-down做相同修改)


查看本地源
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片

继续之前的设置环节
(哇,好蛋疼啊,之前按照教程安装了ambari2.4,然后后面安装了hdp2.6,对不上了,安装ambari2.5,然后把之前start的停掉,重新ambari-server start一个再进来)
[root@ambari-server repodata]# whereis ambari-server ambari-server: /usr/sbin/ambari-server.py /usr/sbin/ambari-server /usr/lib/ambari-server /etc/ambari-server [root@ambari-server repodata]# /usr/sbin/ambari-server help Using python/usr/bin/python Usage: /usr/sbin/ambari-server {start|stop|reset|restart|upgrade|status|upgradestack|setup|setup-jce|setup-ldap|sync-ldap|set-current|setup-security|refresh-stack-hash|backup|restore|update-host-names|check-database|enable-stack|setup-sso|db-cleanup|install-mpack|upgrade-mpack} [options] Use /usr/sbin/ambari-server.py--help to get details on options available. Or, simply invoke ambari-server.py --help to print the options.

/usr/sbin/ambari-server stop
刚才创建本地源的时候把ambari2.5的repo导进去了,再
yum install ambari-server -y

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片

【安装ambari|安装ambari Hadoop--0(更新中...)】出现错误
Waiting for server start...........ERROR: Exiting with exit code -1.
REASON: Ambari Server java process has stopped. Please check the logs for more information.
原因(参考)是ambari db没有启动,于是启动mysql(注:启动出问题去/var/log/ambari-server/ambari-server.log和ambari-server.out文件里去找问题)
[root@mysql-n ~]# mysql -uambari -p

/usr/sbin/ambari-server start
ambari-server启动成功 cmd+shift+r清除浏览器缓存,刷新进入
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
继续出问题,界面install失败
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
出错 查看日志tail -50 /var/log/ambari-server/ambari-server.log
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
猜想:ambari-server不应该是localhost,每个agent都连localhost:8080是连它自己,这不对,一开始想的是把每个agent的localhost的IP127.0.0.1改成ambari-server的IP,后来觉得应该不是这样,于是突然想起来我光升级了ambari-server我ambari-agent还是老版本,应该是这中间的问题,于是升级agent版本并修改agent的配置文件,操作记录如下:
升级之后发现不用改ini,开始觉得有点不太对劲
重新启动ambari-agent
/usr/sbin/ambari-agent status
/usr/sbin/ambari-agent stop
/usr/sbin/ambari-agent start
再重新打开web UI
大型打脸现场,还是不行
查看agent日志
cat /var/log/ambari-agent/ambari-agent.log
INFO 2020-05-14 21:02:56,441 hostname.py:98 - Read public hostname 'localhost' using socket.getfqdn()
如果要使用ssh方式好像各节点都要装一下openssl还要设置
getfqdn()
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
选择服务 安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
分配master 安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
分配slave和agent 把带红点带项依次点进去设置密码

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
设置密码 随机密码生成器
出现内部错误 An internal system exception occurred: Unable to create cluster nnnn(忘记截图了- — -)
粗略看了一下log,好像是mysql那儿不对了,正好碰上ambari-server重启了,etc的hosts文件还原了,想着就重新搞一下,然后重启ambari-server,登录进去再install,进去还是卡在step8,并且没法back,没法next,直接卡死。
思考了一下,猜想这些进度什么的乱七八糟的是存在ambari setup里设置的ambari数据库里,于是去mysql把ambari数据库删掉了,重新建了一个,导入执行要求的ddl,然后重新ambari-server setup 再start
然后发现直接不行了,无法start,tailf /var/log/ambari-server/ambari-server.log|more查看日志

安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
版本没有对上
于是把新版的ddl导进数据库(期间还由于犯蠢没有建表成功误以为建好导致出现了Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'amba
ri2.metainfo' doesn't exist,这个错误就是那个ddl没有成功执行,数据库没有准备好的原因)
重新准备好,重新setup start之后,重新打开webui,这次安装只勾选了yarn,hdfs,zookeeper等如下图
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
重新来过
其他设置都未更改,为默认。然后因为ambari-server节点重启还原了它的hosts文件,需要把hosts文件里的127.0.0.1 ambar-server这行删掉,再手动进行节点注册,期间依然报了一些警告,都无视了,点下一步,然后就进入到review,点击next,进入Install, Start and Test界面
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
没有出现interval error了 hadoop-master出幺蛾子了,点开failures encountered查看详情
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
安装ambari|安装ambari Hadoop--0(更新中...)
文章图片
好像是python环境不对,导致它的py文件运行不了,导致下载不了,对不起来了。。。。。
环境变量怎么设都没用
推倒重来安装新版。。。。
最终也没有安装成功,且原因不详,换版本安装之后依然是在最后一步安装失败,原因不详。。。。。
参考:
【Hadoop】使用Ambari安装部署Hadoop集群https://www.jianshu.com/p/73f9670f71cf
Ambari及其HDP集群安装及其配置教程https://zhuanlan.zhihu.com/p/37322462

    推荐阅读