首先准备好所有需要使用到的软件安装包及相关配置文件,点击此处下载
文件树如下
1 | PySpark安装包 |
JDK安装(以安装在E:\Java\jdk1.8.0_281
为例)
准备
jdk-8u281-windows-x64.exe
,双击打开进行安装,按安装程序中的文字提示安装即可添加环境变量
在环境变量中添加系统变量JAVA_HOME
,值为E:\Java\jdk1.8.0_281
添加完JAVA_HOME
之后,在系统变量Path
中添加%JAVA_HOME%\bin
和%JAVA_HOME%\jre\bin
打开命令提示符窗口,执行命令
java -version
,若可顺利查看当前安装的JDK版本即表示配置成功1
C:\Users\ming_log>java -version
1
2
3java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
搭建Hadoop集群(以安装在E:\Hadoop\hadoop-3.1.4
为例)
准备
hadoop-3.1.4.tar.gz
,解压安装包到本地路径添加环境变量
在环境变量中添加系统变量HADOOP_HOME
,值为E:\Hadoop\hadoop-3.1.4
添加完HADOOP_HOME
之后,在系统变量Path
中添加%HADOOP_HOME%\bin
修改配置文件,进入
Hadoop
安装目录下的etc\hadoop
目录
①修改hdfs-site.xml
,在<configuration></configuration>
标签对中间添加如下内容:1
2
3
4
5
6
7
8
9
10
11
12<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/E:/Hadoop/hadoop-3.1.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/E:/Hadoop/hadoop-3.1.4/data/datanode</value>
</property>②在①指定的路径中创建对应文件夹
/E:/Hadoop/hadoop-3.1.4/data/namenode
和/E:/Hadoop/hadoop-3.1.4/data/datanode
③修改core-site.xml
,在<configuration></configuration>
标签对中间添加如下内容:1
2
3
4
5
6
7
8<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>④修改
mapred-site.xml
,在<configuration></configuration>
标签对中间添加如下内容:1
2
3
4<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>⑤修改
yarn-site.xml
,在<configuration></configuration>
标签对中间添加如下内容:1
2
3
4
5
6
7
8<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>⑥准备
winutils.exe
和hadoop.dll
,复制到C:\windows\System32
路径和Hadoop
安装目录的bin
目录下(两个文件都要分别复制到两个文件夹下)
⑦打开命令提示符窗口,执行命令hdfs namenode -format
初始化NameNode
若日志中出现E:\hadoop-3.1.4\data\namenode has been successfully formatted.
即表示初始化成功
(注意查看初始化过程中返回的日志,检查是否出现报错信息)进入
Hadoop
安装目录的sbin
目录下,使用管理员身份运行start-all.cmd
启动集群,关闭集群则运行stop-all.cmd
(注意查看启动之后弹出的窗口,检查是否出现报错信息)
MySQL安装(以安装在E:\mysql-8.0.26-winx64
为例)
准备
mysql-8.0.26-winx64.zip
,解压安装包到本地路径添加环境变量
在环境变量中添加系统变量MYSQL_HOME
,值为E:\mysql-8.0.26-winx64
添加完MYSQL_HOME
之后,在系统变量Path
中添加%MYSQL_HOME%\bin
以管理员身份打开命令提示符窗口
执行命令mysqld --initialize-insecure --user=mysqld
进行初始化
执行命令mysqld -install
安装MySQL服务
执行命令net start MYSQL
启动MySQL服务执行命令
mysql -uroot -p
后登录MySQL(第一次登录不需要密码直接按回车键即可)登录
MySQL
后执行语句show databases;
,若能查看数据库即安装成功依次执行以下语句修改登录密码为
123456
1
2
3use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;执行语句
quit;
退出MySQL
后重新用密码登录,检查密码是否修改成功创建hive数据库
1
create database if not exists hive default character set latin1;
Hive安装(以安装在E:\Hadoop\apache-hive-3.1.2-bin
为例)
准备
apache-hive-3.1.2-bin.tar.gz
,解压安装包到本地路径添加环境变量
在环境变量中添加系统变量HIVE_HOME
,值为E:\Hadoop\apache-hive-3.1.2-bin
添加完HIVE_HOME
之后,在系统变量Path
中添加%HIVE_HOME%\bin
将MySQL驱动包
mysql-connector-java-8.0.26.jar
放到Hive
安装目录的lib目录下开启
Hadoop
集群依次在命令提示符窗口执行下列命令创建相关存储路径:1
2
3
4hadoop fs -mkdir /tmp
hadoop fs -chmod g+w /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g+w /user/hive/warehouse在
Hive
安装目录中依次创建本地数据存储路径:
Hive
作业的本地暂存空间:E:\Hadoop\apache-hive-3.1.2-bin\data\scratchdir
存储临时文件的本地目录:E:\Hadoop\apache-hive-3.1.2-bin\data\resources
存储结构化日志文件的位置:E:\Hadoop\apache-hive-3.1.2-bin\data\querylog
存储操作日志的位置:E:\Hadoop\apache-hive-3.1.2-bin\data\operation_logs
修改配置文件,进入
Hive
安装目录的conf
目录
①将hive-default.xml.template
复制并重命名为hive-site.xml
,将hive-site.xml
全文内容替换为以下内容(注意根据自己的实际情况替换Hadoop安装路径):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
41
42
43
44
<configuration>
<property>
<name>hive.exec.local.scratchdir</name>
<value>E:/Hadoop/apache-hive-3.1.2-bin/data/scratchdir</value>
<description>Local scratch space for Hive jobs</description>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>E:/Hadoop/apache-hive-3.1.2-bin/data/resources</value>
<description>Temporary local directory for added resources in the remote file system</description>
</property>
<property>
<name>hive.querylog.location</name>
<value>E:/Hadoop/apache-hive-3.1.2-bin/data/querylog</value>
<description>Location of Hive run time structured log file</description>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>E:/Hadoop/apache-hive-3.1.2-bin/data/operation_logs</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useSSL=false&createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>②将
hive-env.sh.template
复制并重命名为hive-env.sh
,在hive-env.sh
文件最后添加以下内容:1
2
3export HADOOP_HOME=E:\Hadoop\hadoop-3.1.4
export HIVE_CONF_DIR=E:\Hadoop\apache-hive-3.1.2-bin\conf
export HIVE_AUX_JARS_PATH=E:\Hadoop\apache-hive-3.1.2-bin\lib准备
apache-hive-1.2.2-src.tar.gz
,解压源码包中的bin目录,将其覆盖到Hive安装目录中的bin目录打开命令提示窗口执行命令
1
hive --service schematool -dbType mysql -initSchema
初始化
Hive
元数据若日志中出现Initialization script completed schematool completed
即表示初始化成功(注意查看初始化过程中返回的日志,检查是否出现报错信息)初始化成功后可以使用命令
1
hive --service schematool -dbType mysql -info
查看元数据库初始化后信息
打开数据库后发现在hive数据库中也创建了很多表
提前开启
Hadoop
集群,进入Hive
安装目录的bin目录下,运行hive.cmd
查看是否能正常进入Hive命令行进入Hive后执行语句
show databases;
查看显示结果是否正常,正常会有一个default
数据库
PySpark虚拟环境创建
进入CMD,新建名为”PySpark”的虚拟环境,并指定Python版本为3.8,并激活
1
2conda create -n=pyspark python=3.8
conda activate pyspark在新建好的PySpark环境安装“pyspark”【使用离线安装包进行安装】和“jupyter”
1
2pip install "D:\泰迪智能科技有限公司\06 泰迪杯\2023\A\基于广电用户信息的数仓设计\Pyspark\05-PySpark安装包\pyspark-3.3.2.tar.gz"
pip install jupyter将
Hive
安装目录的conf
目录中的hive-site.xml
复制到E:\anaconda3\envs\PySpark\Lib\site-packages\pyspark\conf
(其中E:\anaconda3
指的是你电脑中的Anaconda安装目录,并且需要进入到E:\anaconda3\envs\pyspark\Lib\site-packages\pyspark
目录下手动创建conf目录)将
MySQL
驱动包mysql-connector-java-8.0.26.jar
复制到E:\anaconda3\envs\PySpark\Lib\site-packages\pyspark\jars
在环境变量中新添系统变量
PYSPARK_PYTHON
,指定使用的Python
运行环境为E:\anaconda3\envs\PySpark\python.exe
打开
Jupyter Notebook(PySpark)
,分别运行以下代码:①查看PySpark环境是否配置成功:
1
2
3from pyspark.sql import SparkSession
spark = SparkSession.builder.enableHiveSupport().getOrCreate()
spark②测试是否能连接Hive数据库
1
spark.sql("show databases;").show()