一、安装环境介绍

  • 服务器:鲲鹏920
  • 操作系统:openEuler 22.03 (LTS-SP2)
  • 机器数量:至少3台
  • 机器配置:开发测试环境建议每台机器不能低于4C16G,100G可用磁盘。
  • 本次安装机器:
    节点1:172.16.33.21
    节点2:172.16.33.20
    节点3:172.16.33.15

二、环境初始化

2.1 关闭防火墙及SELinux

systemctl status firewalld   查看防火墙状态 
systemctl stop firewalld      关闭防火墙 
systemctl disable firewalld  关闭防火墙开机自启 

关闭SELinux
临时性关闭(立即生效,但是重启服务器后失效)
setenforce 0   设置selinux为permissive模式(即关闭)
setenforce 1   设置selinux为enforcing模式(即开启)
永久性关闭(这样需要重启服务器后生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2.2 配置域名映射

2.2.1 修改hosts文件

确定好三台服务器的名称为Euler-KP-Hadoop-01、Euler-KP-Hadoop-02、Euler-KP-Hadoop-03

修改主机名:
 节点1执行:hostnamectl set-hostname Euler-KP-Hadoop-01
 节点2执行:hostnamectl set-hostname Euler-KP-Hadoop-02
 节点3执行:hostnamectl set-hostname Euler-KP-Hadoop-03
 
通过修改此文件来配置域名映射,文件内容如下
vi /etc/hosts 
 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.33.21 Euler-KP-Hadoop-01
172.16.33.20 Euler-KP-Hadoop-02
172.16.33.15 Euler-KP-Hadoop-03

2.2.2 分发hosts文件

三台虚拟的域名映射要相同,配置完一台虚拟机的域名映射后,可通过scp命令将hosts文件发送到其他虚拟机
scp /etc/hosts Euler-KP-Hadoop-02:/etc/
scp /etc/hostsEuler-KP-Hadoop-03:/etc/

2.3 配置免密

2.3.1 生成主机密钥

执行命令一直按Enter即可,直到生成公钥(在三个节点都执行)
ssh-keygen -t rsa

2.3.2 拉取集群内所有主机的公钥(节点1执行)

scp Euler-KP-Hadoop-01:/root/.ssh/id_rsa.pub ~/1
scp Euler-KP-Hadoop-02:/root/.ssh/id_rsa.pub ~/2
scp Euler-KP-Hadoop-03:/root/.ssh/id_rsa.pub ~/3

cd /root/.ssh/
cat ~/1 >>authorized_keys
cat ~/2 >>authorized_keys
cat ~/3 >>authorized_keys

发送到其他节点
scp authorized_keys Euler-KP-Hadoop-02:/root/.ssh/
scp authorized_keys Euler-KP-Hadoop-03:/root/.ssh/

2.3.3 测试登录

ssh  Euler-KP-Hadoop-02
 ssh  Euler-KP-Hadoop-03

2.4 时间同步

选一台服务器作时间服务器,一般选择主节点,这里以ky10sp2-wnc-test01作为时间服务器,其他服务器以时间服务器时间为准

2.4.1 安装ntp服务

安装ntp服务(所有节点执行) 
yum install -y ntp

2.4.2 集群在局域网网时间配置(节点1操作)

修改ntp配置文件  
vi /etc/ntp.conf

授权指定网段上的所有机器可以从这台机器上查询和同步时间,具体网段根据服务器的ip而定
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 172.16.33.0 mask 255.255.254.0 nomodify notrap 

将原来网络时间服务器的注释掉 
#pool 2.kylin.pool.ntp.org iburst

添加如下,采用本地时间作为时间服务器为集群中的其他节点提供时间同步
server 127.127.1.0 
fudge 127.127.1.0 stratum 10

2.4.3 启动ntp服务并设置开机自启(主节点1)

systemctl start ntpd  启动ntpd服务
systemctl enable ntpd  配置ntpd服务开机自启

2.4.4 其他节点配置(节点2)

以Euler-KP-Hadoop-02节点为例
 配置
vi /etc/ntp.conf

...
将原来网络时间服务器的注释掉
#pool 2.kylin.pool.ntp.org iburst

添加主节点作为时间服务器为集群中的其他节点提供时间同步
server Euler-KP-Hadoop-01
...

将此配置分发到其他从节点
scp /etc/ntp.conf Euler-KP-Hadoop-03:/etc/

2.4.5 重启ntp服务(所有节点)

systemctl restart ntpd  启动ntpd服务

2.4.6 查看时间同步

在任一节点执行查看

ntpq -p


2.5 配置yum仓库

创建组件存储目录,并上传部署文件到此目录下
mkdir -p /opt/bigdata-yum-repos/{bigdata,utils,os}
cd /opt/bigdata-yum-repos/bigdata &&  createrepo .
cd /opt/bigdata-yum-repos/utils &&  createrepo .
cd /opt/bigdata-yum-repos/os &&  createrepo .


[root@Euler-KP-Hadoop-01 bigdata]# pwd
/opt/bigdata-yum-repos/bigdata
[root@Euler-KP-Hadoop-01 bigdata]# ll
total 4364052
-rw-r--r--. 1 root root  487365853 Sep 27 13:42 flink-1.16.2-0.aarch64.rpm
-rw-r--r--. 1 root root  594673545 Sep 25 14:25 hadoop-3.3.4-0.aarch64.rpm
-rw-r--r--. 1 root root  322766269 Sep 25 16:56 hive-3.1.3-0.aarch64.rpm
-rw-r--r--. 1 root root  502617277 Sep 25 17:13 ranger-2.3.0-0.aarch64.rpm
drwxr-xr-x. 2 root root       4096 Sep 26 14:48 repodata
-rw-r--r--. 1 root root 2549376857 Sep 27 11:22 trino-server-411-0.aarch64.rpm
-rw-r--r--. 1 root root   11972637 Sep 25 15:50 zookeeper-3.7.1-0.aarch64.rpm

[root@Euler-KP-Hadoop-01 utils]# pwd
/opt/bigdata-yum-repos/utils
[root@Euler-KP-Hadoop-01 utils]# ll
total 428932
-rw-r--r--. 1 root root 161432313 Sep 25 15:48 jdk17-17.0.7-0.aarch64.rpm
-rw-r--r--. 1 root root  63157125 Sep 25 15:40 jdk-1.8.0_371-0.aarch64.rpm
drwxr-xr-x. 2 root root      4096 Sep 22 16:22 mysql8.0
-rw-r--r--. 1 root root   2513563 Sep 22 16:22 mysql-connector-java-8.0.30.jar
drwxr-xr-x. 2 root root      4096 Sep 26 14:18 repodata
-rw-r--r--. 1 root root 200805960 Sep 22 16:22 solr-8.7.0.tgz
-rw-r--r--. 1 root root  11297506 Oct 10 10:18 trino-cli-411-executable.jar

[root@Euler-KP-Hadoop-01 yum.repos.d]# cat bigdata.repo 
[bigdata]
name=bigdata
baseurl=http://Euler-KP-Hadoop-01:8000/bigdata
enabled=1
gpgcheck=0

[root@Euler-KP-Hadoop-01 yum.repos.d]# cat utils.repo 
[utils]
name=utils
baseurl=http://Euler-KP-Hadoop-01:8000/utils
enabled=1
gpgcheck=0

[root@Euler-KP-Hadoop-01 yum.repos.d]# cat os.repo 
[utils]
name=utils
baseurl=http://Euler-KP-Hadoop-01:8000/os
enabled=1
gpgcheck=0

注:os.repo为本地挂载iso镜像文件,有互联网公共yun源可不用配置


三、 安装JDK

3.1 解压(节点1执行)

将已经准备好的jdk上传至服务器,然后解压
 mkdir /usr/lib/jdk
tar -zxf jdk-8u371-linux-aarch64.tar.gz -C /usr/lib/jdk

3.2 配置jdk的环境变量

vi /etc/profile

添加如下内容,具体的jdk路径根据自己的实际路径填
export JAVA_HOME=/usr/lib/jdk
export PATH=$PATH:$JAVA_HOME/bin 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

3.3 分发到所有节点

分发配置文件
 scp /etc/profile Euler-KP-Hadoop-02:/etc/
 scp /etc/profile Euler-KP-Hadoop-03:/etc/

 分发jdk
 scp -r /usr/lib/jdk Euler-KP-Hadoop-02:/usr/lib/
 scp -r /usr/lib/jdk Euler-KP-Hadoop-03:/usr/lib/

3.4 使环境变量生效(所有节点执行)

source /etc/profile
 
 查看安装是否成功
 java -version

四、 安装MySQL

4.1 安装前说明

数据库使用mysql作为元数据存储,主要用于存储Hive、Ranger元数据存储,本次测试使用mysql-8.0.34。

4.2 安装(节点1执行)

卸载mariadb
麒麟V10环境  
rpm -e {mariadb-server,mariadb,mariadb-errmessage,mariadb-common}

下载
mkdir -p /opt/software/mysql && cd /opt/software/mysql
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar

解压
tar -xf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar

执行安装
rpm -ivh mysql-community-common-8.0.34-1.el8.aarch64.rpm
rpm -ivh mysql-community-client-plugins-8.0.34-1.el8.aarch64.rpm
rpm -ivh mysql-community-libs-8.0.34-1.el8.aarch64.rpm
rpm -ivh mysql-community-client-8.0.34-1.el8.aarch64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.34-1.el8.aarch64.rpm
rpm -ivh mysql-community-server-8.0.34-1.el8.aarch64.rpm

client安装(根据需要安装)
yum install mysql-community-{client,client-plugins,common,libs}-*

4.3 修改配置文件(根据需要配置)

注意:mysql8.0的忽略大小写需要在初始化时进行指定,lower_case_table_names只能在初始化服务器时进行配置(执行启动之前),lower_case_table_names值一旦被设置,初始化服务器后被禁止修改。根据需要而定,是否忽略大小写,不需要则此步骤忽略。mysql 8.0默认:lower_case_table_names=0  (区分大小写)

在/etc/my.cnf中[mysqld]下添加lower_case_table_names=1
vi /etc/my.cnf
...
lower_case_table_names=1
...

4.4 启动

启动mysql
systemctl start mysqld

获取初始密码
grep 'temporary password' /var/log/mysqld.log |awk '{print $NF}'

登录
mysql -uroot -p

初次登录后需要修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
exit

MySQL8.0对root用户授权远程登录:
修改完密码需要先退出一次,用新密码登录,再执行下面命令
use mysql;
update user set host='%' where user='root'; 
flush privileges;

创建新用户
CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';

授权
GRANT ALL ON *.* TO 'finley'@'localhost'  WITH GRANT OPTION;

撤销权限
REVOKE ALL ON *.* FROM 'finley'@'%.example.com';

更改密码
ALTER USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';

删除账户
DROP USER 'finley'@'localhost';
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6