Ambari2.7.4+HDP3.1.4 离线安装(1)

497 阅读7分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

大家好,我是怀瑾握瑜,一只大数据萌新,家有两只吞金兽,嘉与嘉,上能code下能teach的全能奶爸

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~


1. 服务地址

172.29.30.61
172.29.30.62
172.29.30.63
172.29.30.64
172.29.30.65

账号密码:

root/Root123

2. Ambari搭建前环境准备

2.1. 版本介绍

通过 supportmatrix.hortonworks.com/ 可以查询Ambari和HDP各个版本支持情况

2.2. 搭建环境

2.2.1. 所用环境列表

环境版本
LinuxCentos7物理机*5(英文系统)
Ambari2.7.4
HDP3.1.4
HDP-UTILS1.1.0.2
MySQL5.7
OracleJDK81.8.0_201

2.2.2. 环境下载

使用迅雷,直接复制连接

名称地址
ambaripublic-repo-1.hortonworks.com/ambari/cent…
HDPpublic-repo-1.hortonworks.com/HDP/centos7…
HDP-UTILSpublic-repo-1.hortonworks.com/HDP-UTILS-1…
Mysql5.7
JDK1.8www.oracle.com/java/techno…

2.3. 修改网络配置(所有节点)

用xshell连接执行

# cd /etc/sysconfig/network-scripts

找到ifcfg-en开头,后面的数字由每台机器生成各有不同,直接vi编辑即可

修改前:

修改后:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.105.137
NETMASK=255.255.255.0
GATEWAY=192.168.105.1
DNS1=114.114.114.114
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eno1
UUID=6c053b64-6581-4665-b3fc-c22f79c58848
DEVICE=eno1
ONBOOT=yes

重启网络服务:# service network start

ping一下局域网其他机器 通了即可

image.png

3. 系统环境配置

3.1. 安装JDK(所有节点)

Linux自带的jdk或者是通过yum安装的jdk都是openjdk

最好是使用开源的oracle jdk,缺失部分功能,通过自己来安装oracle的jdk,就能解决依赖问题。

3.1.1. 卸载OpenJDK

[root@master ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-c061)
OpenJDK 64-Bit Server VM (build 25.212-c061, mixed mode)
[root@master ~]# rpm -qa|grep java
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.212-0.c061.el7_7.x86_64
python-javapackages-3.4.1-11.el7_7.noarch
tzdata-java-2018d-1.el7_7.noarch
java-1.8.0-openjdk-headless-1.8.0.212-0.c061.el7_7.x86_64
[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.212-0.c061.el7_7.x86_64
[root@master ~]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.212-0.c061.el7_7.x86_64

注意变更当前机器的OpenJDK版本

3.1.2. 安装JDK

拷贝打包好的jdk文件,创建相应目录,拷贝过去后解压缩,配置环境变量,注意更换jdk.tar所在路径

# mkdir -p /app/tools/java/
# cd /app/tools/java/
# cp -f /root/jdk.tar ./
# tar -xvf jdk.tar
# export JAVA_HOME=$JAVA_HOME:/app/tools/java/jdk1.8.0_201
# export PATH=$PATH:/app/tools/java/jdk1.8.0_201/bin
# export CLASSPATH=$CLASSPATH:/app/tools/java/jdk1.8.0_201/lib/dt.jar:/app/tools/java/jdk1.8.0_201/lib/tools.jar

image.png

3.2. 修改节点名称(所有节点)

3.2.1. 修改/etc/hosts文件(所有节点)

# vi /etc/hosts
172.29.30.61 xxx1.hadoop.com
172.29.30.62 xxx2.hadoop.com
172.29.30.63 xxx3.hadoop.com
172.29.30.64 xxx4.hadoop.com
172.29.30.65 xxx5.hadoop.com

image.png

需要修改的和主机名一样

3.2.2. 修改/etc/sysconfig/network(所有节点)

PS.该配置项不配置,也可用hostname进行ping通,检查无误后可略过

各节点改成相对应的节点名即可

[root@master ~]# vi /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
HOSTNAME=master
[root@master ~]# hostnamectl set-hostname master
[root@master ~]# hostname
master

接下来通过测试ping各个节点名称是否调通

image.png

3.3. 更新阿里巴巴yum源(所有节点)

阿里巴巴开发者社区url: developer.aliyun.com/mirror/

选择Centos

可直接运行如下

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum makecache

3.4. 同步时间ntp

3.4.1. 安装ntp服务(所有节点)

# yum -y install ntp

启动服务,查看状态并设置开机自启

[root@master ~]# systemctl start ntpd.service
[root@master ~]# systemctl status ntpd.service
● ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-03-02 15:41:28 CST; 23h ago
Main PID: 3909 (ntpd)
CGroup: /system.slice/ntpd.service
└─3909 /usr/sbin/ntpd -u ntp:ntp -g


Mar 02 15:41:28 master ntpd[3909]: Listen normally on 4 lo ::1 UDP 123
Mar 02 15:41:28 master ntpd[3909]: Listen normally on 5 eno1 fe80::7b94:c6e6:5673:c105 UDP 123
Mar 02 15:41:28 master ntpd[3909]: Listening on routing socket on fd #22 for interface updates
Mar 02 15:41:28 master systemd[1]: Started Network Time Service.
Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c016 06 restart
Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM
Mar 02 15:41:28 master ntpd[3909]: 0.0.0.0 c011 01 freq_not_set
Mar 02 15:41:35 master ntpd[3909]: 0.0.0.0 c614 04 freq_mode
Mar 02 15:58:21 master ntpd[3909]: 0.0.0.0 0612 02 freq_set kernel 8.697 PPM
Mar 02 15:58:21 master ntpd[3909]: 0.0.0.0 0615 05 clock_sync
[root@master ~]# systemctl enable ntpd.service

image.png

3.5. 关闭防火墙(所有节点)

查看防火墙状态

# systemctl status firewalld.service

关闭防火墙

# systemctl stop firewalld.service

设置开机不启动

# systemctl disable firewalld.service

查看是否成功

# systemctl is-enabled firewalld.service

3.6. 关闭Selinux和THP(所有节点)

PS.运维提供的环境已处理该内容,确认好状态可直接跳过

3.6.1. 关闭Selinux

查看Selinux状态

# sestatus

关闭Selinux,提示没有vim用yum装一个或者用vi

# vim /etc/sysconfig/selinux

3.6.2. 关闭THP

查看状态

[root@yum ~]# cat /sys/kernel/mm/transparent_hugepage/defrag 
[always] madvise never
[root@yum ~]# cat /sys/kernel/mm/transparent_hugepage/enabled 
[always] madvise never

关闭THP并给予文件权限

# vim /etc/rc.d/rc.local

3.7. 修改文件打开最大限制(所有节点)

(单独设置需要重启机器)

设置并查看

[root@master ~]# vim /etc/security/limits.conf 
# End of file 
* soft nofile 65536 
* hard nofile 65536 
* soft nproc 131072 
* hard nproc 131072

[root@master ~]# ulimit -Sn 
[root@master ~]# ulimit -Hn  

# vim /etc/systemd/system.conf

修改如下内容

DefaultLimitNOFILE=1024000
DefaultLimitNPROC=1024000

3.8. SSH 无密码登录(主节点)

回车通过,输入密码等确认通过即可

# ssh-keygen -t rsa

image.png

# ssh-copy-id ykcs1.hadoop.com
# ssh-copy-id ykcs2.hadoop.com
# ssh-copy-id ykcs3.hadoop.com
# ssh-copy-id ykcs4.hadoop.com
# ssh-copy-id ykcs5.hadoop.com

测试是否实现无密码登录,无输入密码即可通过

# ssh ykcs1.hadoop.com date ;ssh ykcs2.hadoop.com date;ssh ykcs3.hadoop.com date;ssh ykcs4.hadoop.com date;ssh ykcs5.hadoop.com date;

将刚刚创建的秘钥拷出来,后面ambari安装的时候需要上传这个秘钥。创建秘钥是在隐藏文件夹/root/.ssh/下面的,所以需要先把秘钥拷贝到可见区域,然后拷贝到本机上。

# cd /root/.ssh/
# cp id_rsa /root/
# ls /root/

到这里我们先reboot重启一下

3.9. 安装MYSQL

3.9.1. 安装前准备

1、检查是否已经安装过mysql,执行命令

rpm -qa | grep mysql

2、已经安装了mysql,执行删除命令

rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

3、再次执行查询命令,查看是否删除

rpm -qa | grep mysql

4、查询所有Mysql对应的文件夹

[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

5、删除相关目录或文件

rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

6、检查mysql用户组和用户是否存在,如果没有,则创建

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql

3.9.2. 安装Mysql

1、解压

tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

2、改名

cd /usr/local/
mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql

3、创建data目录

mkdir /usr/local/mysql/data

4、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql

5、检查该链接库文件有没有安装使用 命令进行核查

rpm -qa|grep libaio  

系统中无该链接库文件则需要安装

yum install  libaio-devel.x86_64

5、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

6、运行初始化命令成功后,输出日志如下:

记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

7、编辑配置文件my.cnf,添加配置如下

vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8

相关参数解释

lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:

character_set_server:设置数据库默认字符集,如果不设置默认为latin1

innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

8、测试启动mysql服务器

/usr/local/mysql/support-files/mysql.server start

9、添加软连接,并重启mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart

10、登录mysql,修改密码(密码为步骤6生成的临时密码)

[root@centos807 bin]#  mysql -u root -p
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[root@centos807 bin]# 

如果登录报错,需要执行以下操作:

修改密码

mysql> set password for root@localhost = password('123456');

11、开放远程连接

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

12、设置开机自动启动

#将服务文件拷贝到init.d下,并重命名为mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#赋予可执行权限

chmod +x /etc/init.d/mysqld

#添加服务

chkconfig --add mysql

#显示服务列表

chkconfig --list

结束语

如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~

可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式