「这是我参与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. 所用环境列表
| 环境 | 版本 |
|---|---|
| Linux | Centos7物理机*5(英文系统) |
| Ambari | 2.7.4 |
| HDP | 3.1.4 |
| HDP-UTILS | 1.1.0.2 |
| MySQL | 5.7 |
| OracleJDK8 | 1.8.0_201 |
2.2.2. 环境下载
使用迅雷,直接复制连接
| 名称 | 地址 |
|---|---|
| ambari | public-repo-1.hortonworks.com/ambari/cent… |
| HDP | public-repo-1.hortonworks.com/HDP/centos7… |
| HDP-UTILS | public-repo-1.hortonworks.com/HDP-UTILS-1… |
| Mysql5.7 | |
| JDK1.8 | www.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一下局域网其他机器 通了即可
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
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
需要修改的和主机名一样
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各个节点名称是否调通
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
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
# 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
结束语
如果您喜欢我的文章,可以[关注⭐]+[点赞👍]+[评论📃],您的三连是我前进的动力,期待与您共同成长~
可关注企鹅号【怀瑾握瑜的嘉与嘉】,获取资源下载方式