当前位置:   article > 正文

最简单的Hadoop+Spark大数据集群搭建方法,看这一篇就够啦_hadoop 与 spark 搭建

hadoop 与 spark 搭建

最简单的 Hadoop+Spark 大数据集群搭建方法,看这一篇就够啦

前言:最近有小伙伴私信我,flink 软件安装在虚拟机上很简单,就是安装包解压即可,有没有 hadoop + spark 的安装文档呢?所以今天周六刚好不用上班,花了一天时间整理了一下自己现在使用集群的搭建过程,希望对各位小伙伴有帮助!

Tips:以下是集群搭建过程的记录啦,word 文档和搭建好了的集群,我后续会上传资源区啦,有需要的小伙伴后续可以在我的资源区下载哦!希望和大家一起进步,有啥不清楚滴地方可以一起交流! 这一次梳理搭建过程我觉得很有意义,熟悉了各类配置文件之间的关联,以及大数据组件之间的配置关系,很开心和大家分享此文,那就,继续加油吧!

(一)在VMware中创建Centos虚拟机

1. 环境准备

(1)Windows 11
(2)VMware WorkStation Pro 16

2. 实验步骤

(1)创建虚拟机向导,选择自定义(高级)
在这里插入图片描述

(2)选择虚拟机兼容性,选择Workstation 16.x
在这里插入图片描述

(3)选择稍后安装操作系统,因为待会可以使用自己下载的镜像文件
在这里插入图片描述

(4)选择客户机操作系统,肯定选择Linux
在这里插入图片描述

(5)命名虚拟机名称node1,并存放在除了c盘以外的文件夹下
在这里插入图片描述

(6)处理器配置,因为我的电脑8个逻辑处理器,目前分配虚拟机使用4个
在这里插入图片描述
在这里插入图片描述

(7)虚拟机内存配置,因为我的电脑16G,目前分配首台虚拟机使用4G
在这里插入图片描述

(8)配置网络类型,使用网络地址转换(NAT)(E)
在这里插入图片描述

(9)选择I/O控制器类型,使用LSI Logic(L)
在这里插入图片描述

(10)选择磁盘类型,使用SCSI(S)
在这里插入图片描述

(11)选择磁盘,使用创建新虚拟磁盘
在这里插入图片描述

(12)指定磁盘容量,担心后面虚拟机内存不够,故选择60GB
在这里插入图片描述

(13)指定磁盘文件,node1.vmdk
在这里插入图片描述

(14)虚拟机的模拟硬件已准备好
在这里插入图片描述

(15)关联Centos镜像文件
在这里插入图片描述
在这里插入图片描述

(16)安装虚拟机镜像,启动后一路回车
在这里插入图片描述
在这里插入图片描述

(17)按下ESC键跳过镜像检测
在这里插入图片描述

(18)选择中文版安装,或者英文版安装都可以
在这里插入图片描述

(19)想要节约内存,可以选择最小版安装
在这里插入图片描述

(20)软件安装选择基本网页服务器
在这里插入图片描述

(21)进行安装位置配置
在这里插入图片描述
在这里插入图片描述

(22)进行网络和主机名配置,主机名为node1
在这里插入图片描述
在这里插入图片描述

(23)进行虚拟机密码配置

在这里插入图片描述
在这里插入图片描述

(24)进行虚拟机正式安装
在这里插入图片描述
在这里插入图片描述

(25)进行虚拟机重启
在这里插入图片描述

(26)进入虚拟机登录界面,输入用户名、密码

在这里插入图片描述
在这里插入图片描述

(27)克隆另外两台虚拟机node2和node3
在这里插入图片描述

(二)虚拟机基础环境配置

1.修改好虚拟机主机名

vi /etc/hostname,将其改为node1,另外两台修改为node2和node3
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.查看虚拟机IP地址

ifconfig,IP地址:node1是192.168.52.3,node2是192.168.52.4,node3是192.168.52.5
  • 1


在这里插入图片描述
在这里插入图片描述

3.修改主机名和IP的映射关系

vim /etc/hosts,输入:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.52.3 node1
192.168.52.4 node2
192.168.52.5 node3
与此同时,同步修改windows的C:\Windows\System32\drivers\etc\hosts文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.用主机名ping通:宿主机IP和外网IP

ping 192.168.52.10
ping www.baidu.com
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.关闭虚拟机防火墙和windows防火墙

(1)关闭虚拟机防火墙

#查看/关闭/禁止 防火墙
systemctl status /stop / disable firewalld.service
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)关闭windows防火墙
在这里插入图片描述

(三)三台机器安装jdk1.8

1.上传jdk

rz jdk-8u65-linux-x64.tar.gz,需要安装rz命令(yum install -y lrzsz)
  • 1

2.解压jdk

tar -zxvf jdk-8u65-linux-x64.tar.gz -C /export/server
其中,tar命令参数解释如下:
-z:使用解压方式
-x:解压gz的文件
-v:显示解压信息
-f:带解压文件名
-C:指定解压路径
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3.将java添加到环境变量中

vim /etc/profile
#在文件最后添加
#java_home
export JAVA_HOME=/export/server/jdk1.8.0_65
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
(三台机器都要配置环境变量)

4.刷新配置文件

source /etc/profile 三台机器都需要刷新环境变量
  • 1

5.查看jdk安装情况

java -version
  • 1

在这里插入图片描述

(四)重新编译hadoop源码包

1.官方网站下载源码包

https://archive.apache.org/dist/
  • 1

2.下载对应版本编译包

https://archive.apache.org/dist/hadoop/common/
hadoop-3.3.0-src.tar.gz      //source 源码包
hadoop-3.3.0.tar.gz         //官方编译后安装包
  • 1
  • 2
  • 3

3.进行hadoop源码包编译

在源码的根目录下有编译相关的文件BUILDING.txt 指导如何编译。
使用maven进行编译 联网jar.
  • 1
  • 2

4.编译环境进行目录创建

mkdir -p /export/server
  • 1

5.安装编译相关的依赖

yum install gcc gcc-c++ make autoconf automake libtool curl lzo-devel zlib-devel openssl openssl-devel ncurses-devel snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst zlib -y
yum install -y doxygen cyrus-sasl* saslwrapper-devel*
  • 1
  • 2

6.手动安装cmake

#yum卸载已安装cmake 版本低
yum erase cmake
#解压
tar zxvf CMake-3.19.4.tar.gz
#编译安装
cd /export/server/CMake-3.19.4
./configure
make && make install
#验证
[root@node1 ~]# cmake -version
cmake version 3.19.4
#如果没有正确显示版本 请断开SSH连接 重写登录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

7.手动安装snappy

#卸载已经安装的
rm -rf /usr/local/lib/libsnappy*
rm -rf /lib64/libsnappy*

#上传解压
tar zxvf snappy-1.1.3.tar.gz 

#编译安装
cd /export/server/snappy-1.1.3
./configure
make && make install

#验证是否安装
[root@node1 snappy-1.1.3]# ls -lh /usr/local/lib |grep snappy
-rw-r--r-- 1 root root 511K Nov  4 17:13 libsnappy.a
-rwxr-xr-x 1 root root  955 Nov  4 17:13 libsnappy.la
lrwxrwxrwx 1 root root   18 Nov  4 17:13 libsnappy.so -> libsnappy.so.1.3.0
lrwxrwxrwx 1 root root   18 Nov  4 17:13 libsnappy.so.1 -> libsnappy.so.1.3.0
-rwxr-xr-x 1 root root 253K Nov  4 17:13 libsnappy.so.1.3.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

8.安装maven

#解压安装包
tar zxvf apache-maven-3.5.4-bin.tar.gz

#配置环境变量
vim /etc/profile

export MAVEN_HOME=/export/server/apache-maven-3.5.4
export MAVEN_OPTS="-Xms4096m -Xmx4096m"
export PATH=:$MAVEN_HOME/bin:$PATH

source /etc/profile

#验证是否安装成功
[root@node1 ~]# mvn -v
Apache Maven 3.5.4

#添加maven 阿里云仓库地址 加快国内编译速度
vim /export/server/apache-maven-3.5.4/conf/settings.xml

<mirrors>
     <mirror>
           <id>alimaven</id>
           <name>aliyun maven</name>
           <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
           <mirrorOf>central</mirrorOf>
      </mirror>
</mirrors>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

9.安装ProtocolBuffer 3.7.1

#卸载之前版本的protobuf

#解压
tar zxvf protobuf-3.7.1.tar.gz

#编译安装
cd /export/server/protobuf-3.7.1
./autogen.sh
./configure
make && make install

#验证是否安装成功
[root@node1 protobuf-3.7.1]# protoc --version
libprotoc 3.7.1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

10.编译hadoop

#上传解压源码包
tar zxvf hadoop-3.3.0-src.tar.gz

#编译
cd /root/hadoop-3.3.0-src

mvn clean package -Pdist,native -DskipTests -Dtar -Dbundle.snappy -Dsnappy.lib=/usr/local/lib

#参数说明:

Pdist,native :把重新编译生成的hadoop动态库;
DskipTests :跳过测试
Dtar :最后把文件以tar打包
Dbundle.snappy :添加snappy压缩支持【默认官网下载的是不支持的】
Dsnappy.lib=/usr/local/lib :指snappy在编译机器上安装后的库路径
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

11.编译后安装包路径

[root@node1]# cd /root/hadoop-3.3.0-src/hadoop-dist/target
[root@node1]# ll
发现存在hadoop已经编译好的安装压缩包:
Hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
这个包就可以用来安装hadoop3.3.0了。
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

(五)三台机器安装zookeeper

1.集群时间同步

# 三台虚拟机同步阿里云时间
ntpdate -u ntp.aliyun.com
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.集群SSH免密登录

# 分别在node1,node2,node3的home目录下执行
#生成ssh连接的公私钥
ssh-keygen -t rsa
==========================然后一直回车==============================
# 罗列隐藏文件
ls -al
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

=========================三台机器均需要执行========================
#将node1的免密公钥拷贝到自身服务器和node2与node3的服务器上,实现node1免密登录自身服务器node2与node3服务器
#将公钥拷贝到node1机器上
ssh-copy-id node1
#将公钥拷贝到node2机器上
ssh-copy-id node2
#将公钥拷贝到node3机器上
ssh-copy-id node3
# 测试结点之间是否可以免密登录
在node1上测试:ssh node2,ssh node3
在node2上测试:ssh node1,ssh node3
在node3上测试:ssh node1,ssh node2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

3.准备zookeeper的安装包

zookeeper-3.4.6.tar.gz
  • 1

4.上传安装包并重命名

cd /export/server

tar zxvf zookeeper-3.4.6.tar.gz
mv zookeeper-3.4.6/ zookeeper
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

5.修改配置文件zoo.cfg

#zk默认加载的配置文件是zoo.cfg 因此需要针对模板进行修改。保证名字正确。
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

#修改
dataDir=/export/data/zkdata
#文件最后添加 2888心跳端口 3888选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述

6.修改配置文件myid

#在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid
#myid里面的数字就是该台机器上server编号。server.N  N的数字就是编号
[root@node1 conf]# mkdir -p /export/data/zkdata
[root@node1 conf]# echo 1 >/export/data/zkdata/myid
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

7.把安装包同步到其他节点上

cd /export/server
scp -r zookeeper/ node2:$PWD
scp -r zookeeper/ node3:$PWD
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述

8.创建其他机器上myid和datadir目录

[root@node2 ~]# mkdir -p /export/data/zkdata
[root@node2 ~]# echo 2 > /export/data/zkdata/myid 

[root@node3 ~]# mkdir -p /export/data/zkdata
[root@node3 ~]# echo 3 > /export/data/zkdata/myid 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
在这里插入图片描述

9.zk集群的启动

# 单个结点启动集群
#在哪个目录执行启动命令 默认启动日志就生成当前路径下 叫做zookeeper.out

/export/server/zookeeper/bin/zkServer.sh  start|stop|status

#3台机器启动完毕之后 可以使用status查看角色是否正常。
#还可以使用jps命令查看zk进程是否启动。
[root@node3 ~]# jps
2034 Jps
1980 QuorumPeerMain  #看我,我就是zk的java进程
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

10.封装脚本启动集群

(1)一键启动

[root@node1 ~]# vim startZk.sh
  
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
 ssh $host "source /etc/profile;/export/server/zookeeper-3/bin/zkServer.sh start"
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
# 赋予脚本用户执行权限
[root@node1 ~]# chmod u+x startZk.sh
  • 1
  • 2

一键启动演示:
在这里插入图片描述
(2)一键关闭

[root@node1 ~]# vim stopZk.sh
  
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
 ssh $host "/export/server/zookeeper-3.4.6/bin/zkServer.sh stop"
Done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
# 赋予脚本用户执行权限
[root@node1 ~]# chmod u+x stopZk.sh
  • 1
  • 2

一键关闭演示:
在这里插入图片描述

(六)三台机器安装Hadoop

1.hadoop集群规划

在这里插入图片描述

2.准备hadoop安装包

hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
  • 1

3.上传Hadoop安装包到node1 /export/server

cd /export/server
rz hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
tar zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
  • 1
  • 2
  • 3

在这里插入图片描述

4.修改配置文件hadoop-env.sh

export JAVA_HOME=/export/server/jdk1.8.0_65

#文件最后添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5.修改配置文件core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFSGFS、ali|Amazon云等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>

<!-- 设置Hadoop本地保存数据路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/data/hadoop-3.3.0</value>
</property>

<!-- 设置HDFS web UI用户身份 -->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>

<!-- 整合hive 用户代理设置 -->
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>

<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

6.修改配置文件hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5

7.修改配置文件mapre-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR程序历史服务器端地址 -->
<property>
  <name>mapreduce.jobhistory.address</name>
  <value>node1:10020</value>
</property>
 
<!-- 历史服务器web端地址 -->
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>node1:19888</value>
</property>

<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

8.修改配置文件yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node1</value>
</property>

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 是否将对容器实施物理内存限制 -->
<property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 是否将对容器实施虚拟内存限制。 -->
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

<!-- 开启日志聚集 -->
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>true</value>
</property>

<!-- 设置yarn历史服务器地址 -->
<property>
    <name>yarn.log.server.url</name>
    <value>http://node1:19888/jobhistory/logs</value>
</property>

<!-- 保存的时间7-->
<property>
  <name>yarn.log-aggregation.retain-seconds</name>
  <value>604800</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

9.修改文件workers

node1
node2
node3
  • 1
  • 2
  • 3

在这里插入图片描述

10.分发同步hadoop安装包

cd /export/server
scp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD
  • 1
  • 2
  • 3

11.三台机器均配置环境变量

vim /etc/proflie

export HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

12.集群首次格式化

(首次启动)格式化namenode
hdfs namenode -format
  • 1
  • 2

13.一键启动hadoop集群

cd /export/server/hadoop-3.3.0/sbin
./start-all.sh
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.登录hdfs的UI界面node1:9870

在这里插入图片描述

15.一键关闭hadoop集群

cd /export/server/hadoop-3.3.0/sbin
./stop-all.sh
  • 1
  • 2

(七)三台机器安装MySQL

1.准备mysql安装包

mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
  • 1

2.卸载Centos7自带的mariadb

[root@node1 ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64

[root@node1 ~]# rpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodeps
[root@node1 ~]# rpm -qa|grep mariadb                            
[root@node1 ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.建立存储文件夹,上传解压安装包

mkdir /export/software/mysql
#上传mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar 到上述文件夹下  解压
tar xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
  • 1
  • 2
  • 3

4.执行安装

#执行安装
yum -y install libaio

[root@node1 mysql]# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm mysql-community-libs-5.7.29-1.el7.x86_64.rpm mysql-community-client-5.7.29-1.el7.x86_64.rpm mysql-community-server-5.7.29-1.el7.x86_64.rpm 

warning: mysql-community-common-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-common-5.7.29-1.e################################# [ 25%]
   2:mysql-community-libs-5.7.29-1.el7################################# [ 50%]
   3:mysql-community-client-5.7.29-1.e################################# [ 75%]
   4:mysql-community-server-5.7.29-1.e################                  ( 49%)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

5.mysql初始化设置

#初始化
mysqld --initialize

#更改所属组
chown mysql:mysql /var/lib/mysql -R

#启动mysql
systemctl start mysqld.service

#查看生成的临时root密码
cat  /var/log/mysqld.log

[Note] A temporary password is generated for root@localhost: o+TU+KDOm004
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

6.设置mysql密码

[root@node1 ~]# mysql -u root -p
Enter password:     #这里输入在日志中生成的临时密码
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.29

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

#更新root密码  设置为hadoop
mysql> alter user user() identified by "hadoop";
Query OK, 0 rows affected (0.00 sec)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

7.授权mysql远程登录

#授权
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'hadoop' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; 

#mysql的启动和关闭 状态查看 (这几个命令必须记住)
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

8.授权mysql开机自启动

#建议设置为开机自启动服务
[root@node1 ~]# systemctl enable  mysqld                             

Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.

#查看是否已经设置自启动成功
[root@node1 ~]# systemctl list-unit-files | grep mysqld
mysqld.service                                enabled 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

9.其他2台机器也安装mysql

node1,node2,node3 均按照以上步骤安装mysql软件。
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(八)主节点机器安装Hive

1.准备Hive安装包

apache-hive-3.1.2-bin.tar.gz
  • 1

2.上传解压Hive安装包

tar zxvf apache-hive-3.1.2-bin.tar.gz -C /export/server
  • 1

在这里插入图片描述

3.解决Hive与Hadoop之间guava版本差异

cd /export/server/apache-hive-3.1.2-bin/
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/
  • 1
  • 2
  • 3

在这里插入图片描述

4.修改配置文件hive-env.sh

cd /export/server/apache-hive-3.1.2-bin/conf
mv hive-env.sh.template hive-env.sh

vim hive-env.sh
export HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/export/server/apache-hive-3.1.2-bin/lib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5.修改配置文件hive-site.xml

vim hive-site.xml
  • 1
<configuration>
<!-- 存储元数据mysql相关配置 -->
<property>
	<name>javax.jdo.option.ConnectionURL</name>
	<value>jdbc:mysql://node1:3306/hive3?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>

<property>
	<name>javax.jdo.option.ConnectionDriverName</name>
	<value>com.mysql.jdbc.Driver</value>
</property>

<property>
	<name>javax.jdo.option.ConnectionUserName</name>
	<value>root</value>
</property>

<property>
	<name>javax.jdo.option.ConnectionPassword</name>
	<value>hadoop</value>
</property>

<!-- H2S运行绑定host -->
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>node1</value>
</property>

<!-- 远程模式部署metastore metastore地址 -->
<property>
    <name>hive.metastore.uris</name>
    <value>thrift://node1:9083</value>
</property>

<!-- 关闭元数据存储授权  --> 
<property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
</property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

在这里插入图片描述

6.上传mysql jdbc 驱动包到hive安装包的lib目录下

mysql-connector-java-5.1.32.jar
  • 1

在这里插入图片描述

7.初始化元数据metadata

cd /export/server/apache-hive-3.1.2-bin/

bin/schematool -initSchema -dbType mysql -verbos
#初始化成功会在mysql中创建74张表

# node1中进入mysql
mysql -u用户名 -p密码

# 查看mysql的hive3数据库下面有多少张表
SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'hive3';
# 退出mysql是`exit;`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

8.在hdfs上创建hive的存储目录

# 创建临时文件目录和hive数据表存储目录
hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse

# 赋予两个目录用户组写的权限
hadoop fs -chmod g+w /tmp
hadoop fs -chmod g+w /user/hive/warehouse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.本集群选择node3作为beeline客户端


# 拷贝node1上的hive安装包到node3上
scp -r /export/server/apache-hive-3.1.2-bin/ node3:/export/server/
  • 1
  • 2
  • 3

在这里插入图片描述

10.启动hive的metastore服务(推荐后台启动)

# 首先需要启动hadoop集群服务和zookeeper服务
# hive的metastore服务前台启动  关闭ctrl+c
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore

#前台启动开启debug日志
/export/server/apache-hive-3.1.2-bin/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console  

==================后台启动 进程挂起  关闭使用jps+ kill -9==================
nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service metastore &
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

11.启动hive的hiveserver2服务(推荐后台启动)

nohup /export/server/apache-hive-3.1.2-bin/bin/hive --service hiveserver2 &

#注意 启动hiveserver2需要一定的时间  不要启动之后立即beeline连接 可能连接不上
  • 1
  • 2
  • 3

在这里插入图片描述

12.在node3上访问hive的beeline客户端

/export/server/apache-hive-3.1.2-bin/bin/beeline
  • 1

在这里插入图片描述

beeline> ! connect jdbc:hive2://node1:10000
beeline> root
beeline> 直接回车
  • 1
  • 2
  • 3

在这里插入图片描述

# 展示hive中的数据库
show databases;
# 退出beeline客户端
命令:!q
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

(九)三台机器安装Anaconda

1.准备linux版本的Anaconda安装文件

Python3.8.8版本:Anaconda3-2021.05-Linux-x86_64.sh
  • 1

2.执行linux版本的Anaconda安装文件

# 切换到下载目录
cd
bash Anaconda3-2021.05-Linux-x86_64.sh
# 之后一路enter回车即可安装完毕
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

3.配置环境变量

vim /etc/profile
##增加如下配置
export ANACONDA_HOME=/root/anaconda3/bin
export PATH=$PATH:$ANACONDA_HOME/bin

# 刷新环境变量
source /etc/profile

# 断开xshell重新连接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

4.检测安装效果

# 输入python查看Python版本
python
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.conda命令详情

conda install  包名    pip install 包名
conda uninstall 包名   pip uninstall 包名
conda install -U 包名   pip install -U 包名

# 设置国内下载镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

# 环境管理
conda env list
conda create py_env python=3.8.8 #创建python3.8.8环境或3.8以上版本,否则异常
activate py_env   #激活环境
deactivate py_env #退出环境
source activate 可以进入conda环境
source deactivate 可以退出conda环境
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

在这里插入图片描述

(十)三台机器安装Spark

1.准备与hadoop兼容的spark安装包

spark-3.1.2-bin-hadoop3.2.tgz
  • 1

2.上传node1与解压spark安装包

tar -zxvf spark-3.1.2-bin-hadoop3.2.tgz -C /export/server/
  • 1

在这里插入图片描述

3.修改文件夹权限

# 目录下所有文件和子目录的所有者(owner)都更改为 root 用户
chown -R root /export/server/spark-3.1.2-bin-hadoop3.2 

# 目录下所有文件和子目录的所属群组(group)都更改为 root 组
chgrp -R root /export/server/spark-3.1.2-bin-hadoop3.2 
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

4.改名和创建软链接,方便后期升级

ln -s /export/server/spark-3.1.2-bin-hadoop3.2 /export/server/spark
  • 1

在这里插入图片描述

5.查看目录结构,里面的文件夹含义

bin        可执行脚本
conf       配置文件
data       示例程序使用数据
examples   示例程序
jars        依赖 jar 包
python     pythonAPI
sbin       集群管理命令
yarn       整合yarn需要的东东
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

6.三台机器安装完毕后,在node1测试集群启动

/export/server/spark/sbin/start-all.sh
  • 1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.在node1测试本地启动spark-shell——scale交互式

# 本地模式
/export/server/spark/bin/spark-shell --master  local[4]

# standlone模式
/export/server/spark/bin/spark-shell --master  spark://node1:7077

# HA模式
/export/server/spark/bin/spark-shell --master  spark://node1:7077,node2:7077

# 退出模式
命令:`:q`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

在这里插入图片描述

8.在node1测试本地启动pyspark——python交互式

# 本地模式
/export/server/spark/bin/pyspark --master local[4]
# standlone模式
/export/server/spark/bin/pyspark --master  spark://node1:7077

# HA模式
/export/server/spark/bin/pyspark --master  spark://node1:7077,node2:7077

# 退出模式
命令:`exit()`
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

(十一)node1安装IDEA

1.准备idea安装包

idealU-2023.2.tar.gz
  • 1

2.解压idea安装包

# 我在local路径下新建了文件夹idea,用来存放解压后的文件(新建文件夹命令mkdir)
tar -zxvf idealU-2023.2.tar.gz -C /usr/local/idea
  • 1
  • 2

3.配置环境变量

vim ~/.bashrc
export IDEA_HOME=/usr/local/idea/idea-IU-232.8660.185/ 
export PATH=${IDEA_HOME}/bin:$PATH
  • 1
  • 2
  • 3

4.重启环境变量

source ~/.bashrc
  • 1

5.打开idea

ieda.sh,启动后安装
  • 1

在这里插入图片描述
在这里插入图片描述

(十二)集群软件版本及部署架构

1.集群软件版本

在这里插入图片描述

2.集群部署架构

在这里插入图片描述

3.集群镜像环境

使用apache软件(虚拟机安装镜像:CentOS-7-x86_64-Minimal-1908
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/618565
推荐阅读
相关标签
  

闽ICP备14008679号