Ambari2.7.3 + HDP3.1.0 集群搭建手册

文章目录

  • 工具包下载
  • 准备工作 (所有机器)
    • 安装 vim 编辑器
    • 修改系统语言
    • 服务器防火墙关闭
      • 关闭 iptables
      • 关闭 firewalld
    • 修改主机名及机器映射
      • 修改各个节点的名称
      • 修改 hosts 文件
    • 重启电脑
    • 服务器的免登陆
    • 删除openJDK
      • 检查是否安装 JDK
      • 查找他们的安装包
      • 删除全部,noarch 文件可以不用删除
      • 检查是否删除
    • 服务器时间同步
      • 安装 ntp 服务
      • 设置 master 为主服务器,开启 nptd 服务(主服务器)
      • 启动服务
      • 开机自启动
      • 子节点设置同步
    • 禁用 SELinux 和 PackageKit 将检查 umask 值
      • 禁用sellinux
      • 修改 umask 值
    • 服务器的文件句柄数设置
      • 永久设置
      • 查看配置是否生效
    • 安装 httpd 服务(主服务器)
  • 安装 JDK(主服务器)
  • 准备安装包(主服务器)
    • 将上面下载的三个包放到 /var/www/html 目录下
  • 制作本地源(主服务器)
    • 安装本地源制作相关工具
    • 修改文件里面的源地址
    • 把设置好的yum重置
  • 安装 ambari(主服务器)
    • 安装 ambari-server
    • 安装和配置 MySQL
      • 安装 MySQL
        • 初始密码登陆不上的情况
      • 配置 MySQL
  • 建立 MySQL 与 ambari 的连接(主服务器)
  • 配置 ambari-server(主服务器)
    • 查看 ambari-server 是否启动成功
  • 安装 ambari-agent(所有节点)
  • 安装配置部署HDP集群
  • 安装后的一些问题
    • YARN Registry DNS 启动失败
    • 启动 spark 时权限不够

工具包下载

ambari-2.7.3.0:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz

HDP-3.1.0:
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0/HDP-3.1.0.0-centos7-rpm.tar.gz

HDP-UTILS-1.1.0.22:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz

JDK:1.8版本

准备工作 (所有机器)

安装 vim 编辑器

# 查看本机是否已经安装了某些 vim 的包
rpm -qa|grep vim

# 一般来说, vim 包含这三个包 vim-enhanced-xxx , vim-minimal-xxx , vim-common-xxx
# 通过上面检查安装包的命令,看漏了哪个包
# 例如: 漏了 vim-enhanced 这个包,则执行 yum -y install vim-enhanced 命令,如果三个包都缺,直接执行 yum -y install vim*

修改系统语言

系统语言必须是英文,如果不是,请按照下面步骤修改系统语言

# 进入修改系统语言的文件
vim /etc/locale.conf

# 将 LANG 属性改为如下所示
en_US.UTF-8

服务器防火墙关闭

关闭 iptables

# 查看 iptables 状态
service iptables status
(active 表示开启, inactive 表示没有开启)

# 停止防火墙
service iptables stop

# 永久关闭防火墙
chkconfig iptables off

关闭 firewalld

# 查看防火墙状态
firewall-cmd --state
(not running 表示防火墙未开启, running 表示防火墙开启)

# 关闭防火墙
systemctl stop firewalld

# 永久关闭防火墙
systemctl disable firewalld

修改主机名及机器映射

修改各个节点的名称

# 进入修改主机名称的文件
vim /etc/hostname

# 输入主机名
master.hadoop

修改 hosts 文件

# 进入 hosts 文件
vim /etc/hosts

# 输入所有 ip 和它们对应的主机名
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.34.50.142 master.hadoop
10.34.50.143 slave1.hadoop
10.34.50.145 slave2.hadoop
10.34.50.146 slave3.hadoop

注意:上面两行别删掉,也别修改

重启电脑

# 执行下列命令
reboot

服务器的免登陆

# 执行以下命令生成 rsa 密钥,一路回车即可
ssh-keygen -t rsa

# 生成 authorized_keys
cat id_rsa.pub >> authorized_keys

# 修改文件权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# 将密钥拷贝到其他主机,包括本身(主服务器)
ssh-copy-id slave1.hadoop
ssh-copy-id slave2.hadoop
ssh-copy-id slave3.hadoop
ssh-copy-id master.hadoop

# 测试所有机器是否 SSH 免登陆互通
ssh slave1.hadoop
ssh slave2.hadoop
ssh slave3.hadoop
ssh master.hadoop

# 将创建的秘钥拷贝出来
mkdir /home/tools
cp /root/.ssh/id_rsa /home/tools/

删除openJDK

检查是否安装 JDK

# 显示 java 版本
java -version

查找他们的安装包

# 查找对应的安装包
rpm -qa | grep java

删除全部,noarch 文件可以不用删除

# 删除安装包
rpm -e --nodeps xxx

检查是否删除

# 显示 java 版本
java -version

# 如果还没删除干净,可以重复执行查找安装包的命令,然后使用 yum -y remove xxx 去删除他们

服务器时间同步

安装 ntp 服务

yum -y install ntp

设置 master 为主服务器,开启 nptd 服务(主服务器)

vim /etc/ntp.conf

# 打开下面这句话的注释
restrict 192.168.0.0mask 255.255.255.0

# 注释掉其他上游时间服务器
#server 0.centos.pool.ntp.orgiburst
#server 1.centos.pool.ntp.orgiburst
#server 2.centos.pool.ntp.orgiburst
#server 3.centos.pool.ntp.orgiburst

# 新增
server 127.127.1.0
fudge 127.127.1.0 stratum 10

启动服务

systemctl start ntpd.service

开机自启动

systemctl enable ntpd.service

子节点设置同步

# 先在主节点执行
crontab -e

# 输入以下内容,保存
0-59/10 * * * * /usr/sbin/ntpdate master.hadoop

# 在各个子节点执行
crontab -l

# 输入以下内容,保存
0-59/10 * * * * /usr/sbin/ntpdate master.hadoop

禁用 SELinux 和 PackageKit 将检查 umask 值

禁用sellinux

# 进入配置文件
vim /etc/selinux/config

# 将 SELINUX 改为 disable
SELINUX=disabled

修改 umask 值

# 执行下面命令
sudo sh -c "echo umask 0022 >> /etc/profile"

服务器的文件句柄数设置

永久设置

# 进入配置文件
vim /etc/security/limits.conf

# 在文件的末尾加入如下代码,并保存退出
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

查看配置是否生效

ulimit -a

# 应该看到以下修改
open files                      (-n) 65536
max user processes              (-u) 131072

安装 httpd 服务(主服务器)

# 安装 httpd 服务
yum -y install httpd

# 启动 httpd 服务
service httpd restart

# 检查 httpd 服务是否启动
chkconfig httpd on

安装 JDK(主服务器)

# 上传 JDK 到 /apps 目录下(该目录可以自己选择,没有的话可以创建),并进入到对应目录下,解压压缩包
tar -zxvf jdk-8u121-linux-x64.tar.gz

# 把 JDK 复制到其他机器
scp -r /apps/ [email protected]:/home/
scp -r /apps/ [email protected]:/home/
scp -r /apps/ [email protected]:/home/

# 进入 profile 文件
vim /etc/profile

# 配置 JAVA 环境
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# 使配置文件生效
source /etc/profile

# 测试 JDK 是否安装成功
java -version

准备安装包(主服务器)

将上面下载的三个包放到 /var/www/html 目录下

# 创建指定文件夹
mkdir /var/www/html/hdp

# 进入指定文件夹
cd /var/www/html/hdp

# 创建一个目录
mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22

# 注意:解压 HDP-UTILS-1.1.0.22 时,应该用这个命令
tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/

# 解压对应安装包
tar -zxvf xxx

# 检查是否访问成功
http://10.34.50.142/hdp/

注意:上面地址的 ip 是你主服务器的 ip 地址

制作本地源(主服务器)

安装本地源制作相关工具

# 安装本地源制作相关工具
yum install yum-utils createrepo yum-plugin-priorities -y

# 创建源根目录
createrepo  ./

修改文件里面的源地址

# 首先要进入放置 ambari 安装包的目录文件夹下
cd /var/www/html/hdp

# 设置 ambari 的 yum 源
vim ambari/centos7/2.7.3.0-139/ambari.repo

# 将内容修改为如下所示, ip 为主服务器的 ip
#VERSION_NUMBER=2.7.3.0-139
[ambari-2.7.3.0]
#json.url = http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json
name=ambari Version - ambari-2.7.3.0
baseurl=http://10.34.50.142/hdp/ambari/centos7/2.7.3.0-139
gpgcheck=1
gpgkey=http://10.34.50.142/hdp/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

# 把设置好的 yum 文件,复制到 /etc/yum.repos.d/
cp ambari/centos7/2.7.3.0-139/ambari.repo /etc/yum.repos.d/

# 通过 scp 传输到其他所有节点上
scp -r ambari/centos7/2.7.3.0-139/ambari.repo [email protected]:/etc/yum.repos.d/

# 设置 HDP 的 yum 源
vim HDP/centos7/3.1.0.0-78/hdp.repo

# 将内容修改为如下所示, ip 为主服务器的 ip
#VERSION_NUMBER=3.1.0.0-78
[HDP-3.1.0.0]
name=HDP Version - HDP-3.1.0.0
baseurl=http://10.34.50.142/hdp/HDP/centos7/3.1.0.0-78
gpgcheck=1
gpgkey=http://10.34.50.142/hdp/HDP/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1


[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://10.34.50.142/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/
gpgcheck=1
gpgkey=http://10.34.50.142/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

# 把设置好的 yum 文件,复制到 /etc/yum.repos.d/
cp HDP/centos7/3.1.0.0-78/hdp.repo /etc/yum.repos.d/

# 通过 scp 传输到其他所有节点上
scp -r HDP/centos7/3.1.0.0-78/hdp.repo [email protected]:/etc/yum.repos.d/

把设置好的yum重置

yum clean all
yum makecache
yum repolist

安装 ambari(主服务器)

安装 ambari-server

# 检查是否有自带的 mariadb ,有的话先删除
rpm -qa | grep mariadb

# 如果有的话,使用下列命令删除
rpm -e --nodeps xxx

# 下载安装 ambari-server
yum -y install ambari-server

安装和配置 MySQL

安装 MySQL

# 查看是否有 MySQL 安装包
rpm -qa | grep mysql

# 如果有 MySQL 安装包,使用下列命令删除
yum -y remove xxx

# 结束 MySQL 进程
pkill -9 mysqld

# 进入本地的资源路径
cd /usr/local/src/

# 指定 wget
sudo wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

# 安装 MySQL
sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm
sudo yum -y install mysql-server

# 启动 MySQL 服务
sudo systemctl restart mysqld.service

# 查看 MySQL 初始密码并登录 MySQL
grep "password" /var/log/mysqld.log

# 登陆 MySQL
mysql -u root -p 加入上一条命令显示的密码

初始密码登陆不上的情况

# 修改配置文件,跳过密码校验
vim /etc/my.cnf

# 在 [mysqld] 下加上 skip-grant-tables
[mysqld] 
datadir=/var/lib/mysql 
socket=/var/lib/mysql/mysql.sock 
skip-grant-tables

# 重启 MySQL
service mysqld restart 

# 登陆 MySQL
mysql -u root

# 修改密码级别
set global validate_password_policy=0;

# 修改密码长度
set global validate_password_length=4;

# 刷新权限
flush privileges;

# 修改密码
update mysql.user set authentication_string=PASSWORD('yourPassword') where User='root';
或者
set password="yourPassword";

# 刷新权限
flush privileges;

注意:
1.修改密码跟修改密码长度和级别的顺序可能要调换
2.修改完密码之后,要把配置文件修改回原来的样子

配置 MySQL

# 添加远程用户
grant all privileges on *.* to 'root'@'%' identified by 'yourPassword';

# 创建 ambari 库,并添加相应的用户
CREATE DATABASE ambari;  
use ambari;
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'@'master.hadoop' IDENTIFIED BY 'ambari';  
GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'master.hadoop';
FLUSH PRIVILEGES;

# 生成 ambari 需要使用到的表
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

# 检查是否生成成功,共有 111 张表
show tables;

# 创建 hive 库,并添加相应的用户
CREATE DATABASE hive;  
use hive;  
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';   
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';  
CREATE USER 'hive'@'master.hadoop' IDENTIFIED BY 'hive';  
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master.hadoop';  
FLUSH PRIVILEGES;

建立 MySQL 与 ambari 的连接(主服务器)

# 去下面的网址下载 5.1.48 的驱动
https://mvnrepository.com/artifact/mysql/mysql-connector-java

# 创建目录,一定要这个目录!
mkdir /usr/share/java

# 拷贝到对应的文件夹下
cp 你存放驱动的文件夹/mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar

# 拷贝到 ambari-server 的 lib 目录下
cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar

# 修改配置文件
vim /etc/ambari-server/conf/ambari.properties

# 在最后一行添加
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

# 建立关联
yum install mysql-connector-java

配置 ambari-server(主服务器)

# 启动 ambari-server 的配置程序
ambari-server setup

# 提示是否自定义设置。输入:y
Customize user account for ambari-server daemon [y/n] (n)? y

# ambari-server 账号,输入 ambari
Enter user account for ambari-server daemon (root):ambari

# 检查防火墙是否关闭,输入:y
WARNING: iptables is running. Confirm the necessary Ambari ports are accessible. Refer to the Ambari documentation for more details on ports.
OK to continue [y/n] (y)? y

# 设置JDK。输入:y  2
Do you want to change Oracle JDK [y/n] (n)? y

[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2

# 输入 JAVA_HOME,输入:你的 JAVA_HOME
Path to JAVA_HOME: /apps/jdk1.8.0_221

注意:如果你不知道你的 JAVA_HOME 是什么,可以新开一个终端,输入  echo $JAVA_HOME

# 是否要安装如下插件,输入:n
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? n

# 数据库配置。输入:y
Enter advanced database configuration [y/n] (n)? y

# 选择数据库,输入:3
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
==============================================================================
Enter choice (3): 3

# 设置数据库的具体配置信息
Hostname (localhost):
Port (3306):
Database name (ambari):
Username (ambari):
Enter Database Password (bigdata):ambari
Re-Enter password: ambari

# 是否使用如下驱动,输入:y
Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? y

# 将Ambari数据库脚本导入到数据库,输入:y
Proceed with configuring remote database connection properties [y/n] (y)? y

# 启动 ambari-server
ambari-server start

# 如果显示没有错误,则启动成功,如果报错,则输入下列命令查看日志
tail -f /var/log/ambari-server/ambari-server.log

# 指定数据库驱动
ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

查看 ambari-server 是否启动成功

# 在浏览器输入以下网址,账号密码,都是admin
http://主机服务器 ip :8080

安装 ambari-agent(所有节点)

# 所有节点安装 ambari-agent
yum -y install ambari-agent

# 启动 ambari-agent
ambari-agent start

# 添加 ambari-agent
chkconfig --add ambari-agent

安装配置部署HDP集群

访问 Ambari web 页面,账号密码,都是admin

http://主机服务器 ip :8080

点击新建集群,以下步骤,对应部署集群时界面左边的序号

  1. 输入集群名称
ZJ_HDP_DEV
  1. 选择本地源及配置地址
# 在 Repositories 选项中选择 Use Local Repositories
# 将下面的选项卡删除剩下 redhat7 选项
# 在 HDP-3.1 地址栏中输入 http://10.34.50.142/hdp/HDP/centos7/3.1.0.0-78/
# 在 HDP-UTILS-1.1.0.22 地址栏中输入 http://10.34.50.142/hdp/HDP-UTILS-1.1.0.22/HDP-UTILS/centos7/1.1.0.22/
  1. 安装配置
# 在 Target Hosts 中输入
master.hadoop
slave1.hadoop
slave2.hadoop
slave3.hadoop

# 在 Host Registration Information 中选择第一个选项,将之前保存的 id_rsa 文件下载下来并选中。
  1. 主机确认

等待主机确认成功之后,看是否有警告,如果有,则想办法去除相应的警告

  1. 选择组件

这里先选择 HDFS , YARN , Hive , Zookeeper

  1. 资源节点分配

默认就行

  1. 分配从属客户端

除了 NFSGateway ,其他都选上

  1. 定制服务

除了 hive ,其他都为 admin

Hive DataBase 选择外部 MySQL;DataBase URL 修改为:jdbc:mysql://master.hadoop/hive;DataBase Password 为 hive;测试成功后,点击下一步

接下来的步骤都是默认配置,直接点下一步即可

安装成功后,可以根据需要添加对应的组件,在控制台通过图形化界面添加即可

安装后的一些问题

YARN Registry DNS 启动失败

# 直接在 ambari 控制台修改端口
YARN -> configs -> advanced -> RegistryDNS Bind Port

启动 spark 时权限不够

# 进入 hdfs 用户
su hdfs

# 修改 /user 文件夹权限
hadoop fs -chmod 777 /user

你可能感兴趣的:(大数据平台部署)