Pyspark+Hive环境搭建与配置

您所在的位置:网站首页 pyspark连接spark集群读取文件报错怎么办 Pyspark+Hive环境搭建与配置

Pyspark+Hive环境搭建与配置

2024-07-04 00:50| 来源: 网络整理| 查看: 265

首先准备好所有需要使用到的软件安装包及相关配置文件,点击此处下载

文件树如下

PySpark安装包 ├─Anaconda3-2022.10-Windows-x86_64.exe ├─apache-hive-1.2.2-src.tar.gz ├─apache-hive-3.1.2-bin.tar.gz ├─hadoop-3.1.4.tar.gz ├─hadoop.dll ├─jdk-8u281-windows-x64.exe ├─mysql-8.0.26-winx64.zip ├─mysql-connector-java-8.0.26.jar ├─pyspark-3.3.2.tar.gz └─winutils.exe 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版本即表示配置成功

C:\Users\ming_log>java -version java 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,在标签对中间添加如下内容:

dfs.replication 1 dfs.namenode.name.dir /E:/Hadoop/hadoop-3.1.4/data/namenode dfs.datanode.data.dir /E:/Hadoop/hadoop-3.1.4/data/datanode

②在①指定的路径中创建对应文件夹/E:/Hadoop/hadoop-3.1.4/data/namenode和/E:/Hadoop/hadoop-3.1.4/data/datanode ③修改core-site.xml,在标签对中间添加如下内容:

fs.defaultFS hdfs://localhost:9000 hadoop.http.staticuser.user root

④修改mapred-site.xml,在标签对中间添加如下内容:

mapreduce.framework.name yarn

⑤修改yarn-site.xml,在标签对中间添加如下内容:

yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler

⑥准备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 (注意查看启动之后弹出的窗口,检查是否出现报错信息)

打开浏览器,输入地址http://localhost:9870,若集群状态为active则表示集群启动成功

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

use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; flush privileges;

执行语句quit;退出MySQL后重新用密码登录,检查密码是否修改成功

创建hive数据库

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集群依次在命令提示符窗口执行下列命令创建相关存储路径:

hadoop 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全文内容替换为以下内容:

hive.exec.local.scratchdir E:/Hadoop/apache-hive-3.1.2-bin/data/scratchdir Local scratch space for Hive jobs hive.downloaded.resources.dir E:/Hadoop/apache-hive-3.1.2-bin/data/resources Temporary local directory for added resources in the remote file system hive.querylog.location E:/Hadoop/apache-hive-3.1.2-bin/data/querylog Location of Hive run time structured log file hive.server2.logging.operation.log.location E:/Hadoop/apache-hive-3.1.2-bin/data/operation_logs Top level directory where operation logs are stored if logging functionality is enabled javax.jdo.option.ConnectionURL jdbc:mysql://localhost:3306/hive?useSSL=false;createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.cj.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root Username to use against metastore database javax.jdo.option.ConnectionPassword 123456 password to use against metastore database

②将hive-env.sh.template复制并重命名为hive-env.sh,在hive-env.sh文件最后添加以下内容:

export 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目录

打开命令提示窗口执行命令hive --service schematool -dbType mysql –initSchema初始化Hive元数据若日志中出现Initialization script completed schematool completed即表示初始化成功 (注意查看初始化过程中返回的日志,检查是否出现报错信息) 初始化成功后可以使用命令hive --service schematool -dbType mysql –info查看元数据库初始化后信息

提前开启Hadoop集群,进入Hive安装目录的bin目录下,运行hive.cmd查看是否能正常进入Hive命令行

进入Hive后执行语句show databases;查看显示结果是否正常,正常会有一个default数据库

PySpark虚拟环境创建

进入CMD,新建名为"PySpark"的虚拟环境,并指定Python版本为3.8

conda create -n=pyspark python=3.8

在新建好的PySpark环境安装“pyspark”【使用离线安装包进行安装】和“jupyter”

pip install "D:\泰迪智能科技有限公司\06 泰迪杯\2023\A\基于广电用户信息的数仓设计\Pyspark\05-PySpark安装包\pyspark-3.3.2.tar.gz"

将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环境是否配置成功:

from pyspark.sql import SparkSession spark = SparkSession.builder.enableHiveSupport().getOrCreate() spark

image-20230307185135767

②测试是否能连接Hive数据库

spark.sql("show databases;").show()

image-20230307185143574



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3