小言_互联网的博客

Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群完整版,附带移除 SmartSense 服务

339人阅读  评论(0)

点击上方蓝色“大数据实战演练”,选择“设为星标”或“置顶”

回复“资源”领取独家整理的学习资料!

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。

放弃不难,但坚持很酷~

声明:博主写了一些 Ambari 系列文章,可以在 菜单栏 -> 文章列表 中查看。

版本说明:

Ambari:2.7.3.0

hdp:3.1.0.0

这篇文章之前也写过类似的,已经有很多人在看了,也有很多朋友在这过程中碰到了困难,私聊我。为了提高各自的工作效率,所以我又将文章完善了一版,这应该算是第三版了。

今天完善 ambari 安装部署的初衷,就是帮助更多使用 ambari 的人,所以就又完善了一下这文章,总之,现在这文章已经很细致了。

还有,我之前在 b 站上也录制了一个与文档同版本的视频,目前,搜索 ambari 关键词已经在前几的位置了,这也侧面说明视频的质量。有需要的小伙伴,可以在结合视频学习部署一下,视频传送门 。

还有最后一点,欢迎学习使用 ambari 的小伙伴加我好友( 微信号:create17_ )啊,本人有几年的 ambari 开发使用经验,可以一起交流下~~

一、配置说明

1. 硬件环境

2. 软件环境

二、修改主机名和hosts文件

1. 修改主机名(三台主机分别修改主机名)


   
  1. # 使用hostnamectl命令修改主机名,执行该命令后立即生效,只不过需要重启Xshell连接
  2. # 以其中一台为例,代码如下
  3. hostnamectl set-hostname node1.ambari.com
  4. # 其余的机器也使用hostnamectl命令修改主机名
  5. ...(略)

2. 修改hosts文件(三台主机的hosts文件均修改为下图所示)


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

三、关闭防火墙和selinux

1. 防火墙设置


   
  1. # 查看防火墙状态
  2. systemctl status firewalld
  3. # 查看开机是否启动防火墙服务
  4. systemctl is-enabled firewalld
  5. # 关闭防火墙
  6. systemctl stop firewalld
  7. systemctl disable firewalld
  8. # 再次查看防火墙状态和开机防火墙是否启动
  9. systemctl status firewalld
  10. systemctl is-enabled firewalld

2. 禁用selinux


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

四、免密登陆

各个主机均执行以下操作,这是实现自身免密操作:


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

在node1.ambari.com上执行以下命令,使主节点能免密访问其他俩从节点:


   
  1. ## 配置主从互相免密登陆
  2. [root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node2.ambari.com  'cat - >> ~/.ssh/authorized_keys'
  3. [root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node3.ambari.com  'cat - >> ~/.ssh/authorized_keys'
  4. ssh node2.ambari.com 
  5. ssh node3.ambari.com # 验证主机点是否可以免密登陆从节点,执行exit命令退出即可。

备注:要想实现多主机互相免密,可参考文章:Linux多台主机互相免密

扩展:


   
  1. # 首次ssh时,不提示是否保存秘钥,可执行以下命令
  2. ssh-keyscan server.data >> ~/.ssh/known_hosts

五、安装JDK

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

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

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

  • 配置jdk环境变量:


   
  1. # 编辑/etc/profile,文末插入以下内容:
  2. # set java
  3. export JAVA_HOME=/usr/java/jdk1 .8 .0_151
  4. export PATH=$JAVA_HOME/bin:$PATH
  • 使环境变量生效:source /etc/profile

  • 安装验证:java -version

六、安装mysql

本文选择在 node1.ambari.com 主节点上安装 MySQL 服务。

以下为 mysql RPM 包的不同版本,大家可根据自己情况选择:

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

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


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

2. 搭建mysql5.7的yum源


   
  1. # 执行这一步命令,会下载 mysql5 .7 的 rpm包
  2. wget https: //dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  3. # 安装第一步下载的rpm文件,安装成功后,会在 /etc/yum.repos.d/ 目录下会增加两个文件
  4. yum -y install mysql57-community-release-el7 -11.noarch.rpm
  5. # 查看mysql57的安装源是否可用,如不可用请自行修改配置文件(/etc/yum.repos.d/mysql-community.repo)使mysql57下面的enable= 1
  6. # 若有mysql其它版本的安装源可用,也请自行修改配置文件使其enable= 0
  7. yum repolist enabled | grep mysql

3. 安装mysql

yum install mysql-community-server

4. 设置mysql


   
  1. # 启动mysql服务
  2. service mysqld start
  3. # 查看root密码
  4. grep  "password" / var/log/mysqld.log
  5. # 登陆mysql
  6. mysql -u root -p
  7. Enter password: 
  8. # 刚安装好的mysql,如果设置的密码过于简单,会提示报错。
  9. # 可以执行以下命令,设置简单密码
  10. set global validate_password_policy= 0;
  11. set global validate_password_length= 4;
  12. # 立即修改密码,执行其他操作会报错:
  13. SET PASSWORD FOR  'root'@ 'localhost' = PASSWORD( 'newpass');
  14. # 我们创建密码为root123    

5. 新增 ambari 用户并增加权限

在本篇文章中,我们选择用 mysql 来存储 ambari 的元数据信息。

我们为 ambari 服务新增自己的用户,用户名就叫 ambari 吧,以下是新增 mysql 用户的操作。


   
  1. mysql -uroot -proot123
  2. CREATE USER  'ambari'@ 'localhost' IDENTIFIED BY  'ambari';
  3. GRANT ALL PRIVILEGES ON *.* TO  'ambari'@ 'localhost';
  4. CREATE USER  'ambari'@ '%' IDENTIFIED BY  'ambari';   # 这个用户,在后续安装ambari的时候会用到
  5. GRANT ALL PRIVILEGES ON *.* TO  'ambari'@ '%';
  6. FLUSH PRIVILEGES;  # 刷新权限

MySQL 中的用户是 用户名 和 host 共同标识。所以在上面命令里,我们算是创建了两个用户,分别是 ambari@localhost、ambari@% 。

用户中的 host 的不同,代表受众群体也不同。比如 localhost 表示只能是本机访问;% 表示所有的 ip 都可以访问 mysql 。

扩展命令:删除用户命令:


   
  1. Delete FROM user Where User= 'your_user' and Host= 'your_host';
  2. FLUSH PRIVILEGES;

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


   
  1. mysql -uambari -pambari
  2. CREATE DATABASE ambari character set utf8 collate utf8_general_ci;
  3. exit;

七、设置时钟同步

请参考我写的另一篇文章:《Linux NTP 时钟同步》。

八、搭建本地yum源,在主节点上操作

1. 安装httpd和wget服务


   
  1. # 安装httpd
  2. yum -y install httpd.x86_64
  3. systemctl enable httpd.service
  4. systemctl start httpd.service
  5. # 安装wget
  6. yum -y install wget

安装了 httpd 服务后,我们就可以通过 http 链接的方式访问某些安装包,前提是将安装包放在 /var/www/html 目录下。

2. 下载ambari和hdp包


   
  1. # 将tar包下载到/ var/www/html
  2. cd / var/www/html
  3. wget http: //public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz
  4. wget http: //public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0/HDP-3.1.0.0-centos7-rpm.tar.gz
  5. wget http: //public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
  6. wget http: //public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0/HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
  7. # 解压上面三个包
  8. tar zxvf ambari -2.7 .3 .0-centos7.tar.gz
  9. tar zxvf HDP -3.1 .0 .0-centos7-rpm.tar.gz
  10. tar zxvf HDP-UTILS -1.1 .0 .22-centos7.tar.gz
  11. tar zxvf HDP-GPL -3.1 .0 .0-centos7-gpl.tar.gz

3. 新建 repo 文件

  • 新建ambari.repo文件,将文件放入/etc/yum.repos.d/目录下。


   
  1. [ambari]
  2. name=ambari
  3. baseurl=http: //node1.ambari.com/ambari/centos7/2.7.3.0-139
  4. enabled= 1
  5. gpgcheck= 0

可能网上有别的文章,还需要设置 hdp 的 repo 文件。其实不需要。在之后部署 hadoop 集群的时候,我们会在 ambari 界面上设置 hdp 安装包的 yum 离线源,ambari 会在各 ambari-agent 节点上自动生成 ambari-hdp-1.repo 文件。

九、在主节点安装ambari-server

1. 安装

yum -y install ambari-server

2. 将mysql-connector-java.jar拷贝到/usr/share/java目录下

3. 修改配置文件

echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar >> /etc/ambari-server/conf/ambari.properties

4. 安装ambari-server

ambari-server setup

5、将 mysql-connector-java.jar 拷贝到指定目录

将 mysql-connector-java.jar 驱动包拷贝到指定目录,这样的话,在安装 hive 等需要 mysql 数据库的服务的时候,就有 jdbc 连接驱动了,就不会报错了。

ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

6. 初始化数据库


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

7. 启动ambari-server

ambari-server start

登陆浏览器访问: http://192.168.162.41:8080/,利用界面部署集群。

默认登陆账号/密码为:admin/admin。

以上就是安装 ambari 的大体步骤。其实都挺简单的,部署步骤不难,完全可以写成自动化脚本来执行,这里我建议使用 ansible 来部署,感兴趣的朋友可以研究下。

十、通过 ambari 部署 hadoop 集群

主要说一下关键步骤。

1、Select Version

这一步,挺重要。首选,我们要选择安装的 hdp 版本。其次,由于之前我们搭建了本地yum源(已将hdp的rpm包下载到了本地),所以要选择 “Use Local Repository” 。最后选择主机系统,配置 hdp 相关的 yum 源路径。

2、Install Options

在 Target Hosts 里面,填写规划的 ambari-agent 主机列表,填写主机名即可。

在下面的输入框内,填写 ambari-server 所在主机的 ssh 私钥,就是 ~/.ssh/id_rsa 文件的内容,粘贴到下面的输入框内。

3、Choose Services

在这一步,就可以选择 hadoop 相关的一些服务了。

4、Assign Masters

分配 master,就是将你所选服务的 master 角色组件,选择安装在哪台机器上。可以根据cpu、内存、磁盘等指标考虑。

5、Assign Slaves and Clients

在这一步中,可能很多刚入门的朋友还不清楚如何选择。其实和分配 master 的思路一样,就是将哪些组件安装在哪些主机上,这个就看个人规划了。比如:在 worker 节点上安装 datanode、nodeManager、RegionServer 等角色。

6、后续步骤

接下来的步骤,就比较简单了,我在这里也就不多赘述了。

十一、小结

这篇文章之前也写过类似的,已经有很多人在看了,也有很多朋友在这过程中碰到了困难,私聊我。为了提高各自的工作效率,所以我又将文章完善了一版,这应该算是第三版了。

其实在上面遇到问题最多的就是,配置本地 yum 源,里面的 repo 文件,url 写错。

还有就是 ambari-server setup 安装的时候,会报 mysql 用户名密码不正确。归根结底,可能就是 mysql 创建的用户不全。ambari-server setup 安装时指定的 mysql 用户名、密码错误。建议多检查看看。注意 mysql 用户部分是由 用户名 和 host 共同组成的。

今天完善 ambari 安装部署的初衷,就是帮助更多使用 ambari 的人,但也不希望再有人问我 ambari 安装的问题了,就挺耽误时间的,所以就又完善了一下这文章,总之,现在这文章已经很细致了。

还有,我之前在 b 站上也录制了一个与文档同版本的视频,目前,搜索 ambari 关键词已经在前几的位置了,这也侧面说明视频的质量。有需要的小伙伴,可以在结合视频学习部署一下,视频传送门

还有最后一点,欢迎学习使用 ambari 的小伙伴加我好友( 微信号:create17_ )啊,我有几年的 ambari 开发使用经验,可以一起交流下~~

欢迎大家留言讨论

???? ???? ????

往期推荐

Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群视频完整版

ambari 自定义服务集成原理讲解,自定义服务项目结构解读

(内部资料)Ambari 自定义服务第八讲:添加自定义告警

博主好贴心,为已有的 ambari 集群修改主机名~

继续更新两讲 | Ambari自定义服务集成视频系列

扫一扫,我们的故事就开始了。

如果这篇文章对你有所启发,点赞、转发都是一种支持!

另外公众号改变了推送规则,大家看文章不要忘记点击最下方的在看,点赞按钮,这样微信自动识别为常看公众号,否则很可能推送的文章可能淹没在别的文章找不到,谢谢大家

让我知道你在看


转载:https://blog.csdn.net/CREATE_17/article/details/112793174
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场