Pyspark+Hive环境搭建与配置

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

文件树如下

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为例)

  1. 准备jdk-8u281-windows-x64.exe,双击打开进行安装,按安装程序中的文字提示安装即可

  2. 添加环境变量
    在环境变量中添加系统变量JAVA_HOME,值为E:\Java\jdk1.8.0_281
    添加完JAVA_HOME之后,在系统变量Path中添加%JAVA_HOME%\bin%JAVA_HOME%\jre\bin

  3. 打开命令提示符窗口,执行命令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为例)

  1. 准备hadoop-3.1.4.tar.gz,解压安装包到本地路径

  2. 添加环境变量
    在环境变量中添加系统变量HADOOP_HOME,值为E:\Hadoop\hadoop-3.1.4
    添加完HADOOP_HOME之后,在系统变量Path中添加%HADOOP_HOME%\bin

  3. 修改配置文件,进入Hadoop安装目录下的etc\hadoop目录
    ①修改hdfs-site.xml,在<configuration></configuration>标签对中间添加如下内容:

<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>标签对中间添加如下内容:

<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>标签对中间添加如下内容:

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

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

<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.exehadoop.dll,复制到C:\windows\System32路径和Hadoop安装目录的bin目录下
⑦打开命令提示符窗口,执行命令hdfs namenode -format初始化NameNode
若日志中出现E:\hadoop-3.1.4\data\namenode has been successfully formatted.即表示初始化成功
(注意查看初始化过程中返回的日志,检查是否出现报错信息)

  1. 进入Hadoop安装目录的sbin目录下,使用管理员身份运行start-all.cmd启动集群,关闭集群则运行stop-all.cmd
    (注意查看启动之后弹出的窗口,检查是否出现报错信息)

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

MySQL安装(以安装在E:\mysql-8.0.26-winx64为例)

  1. 准备mysql-8.0.26-winx64.zip,解压安装包到本地路径

  2. 添加环境变量
    在环境变量中添加系统变量MYSQL_HOME,值为E:\mysql-8.0.26-winx64
    添加完MYSQL_HOME之后,在系统变量Path中添加%MYSQL_HOME%\bin

  3. 以管理员身份打开命令提示符窗口
    执行命令mysqld --initialize-insecure --user=mysqld进行初始化
    执行命令mysqld -install安装MySQL服务
    执行命令net start MYSQL启动MySQL服务

  4. 执行命令mysql -uroot -p后登录MySQL(第一次登录不需要密码直接按回车键即可)

  5. 登录MySQL后执行语句show databases;,若能查看数据库即安装成功

  6. 依次执行以下语句修改登录密码为123456

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;
  1. 执行语句quit;退出MySQL后重新用密码登录,检查密码是否修改成功

  2. 创建hive数据库

    create database if not exists hive default character set latin1;
    

Hive安装(以安装在E:\Hadoop\apache-hive-3.1.2-bin为例)

  1. 准备apache-hive-3.1.2-bin.tar.gz,解压安装包到本地路径

  2. 添加环境变量
    在环境变量中添加系统变量HIVE_HOME,值为E:\Hadoop\apache-hive-3.1.2-bin
    添加完HIVE_HOME之后,在系统变量Path中添加%HIVE_HOME%\bin

  3. 将MySQL驱动包mysql-connector-java-8.0.26.jar放到Hive安装目录的lib目录下

  4. 开启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
  1. 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

  2. 修改配置文件,进入Hive安装目录的conf目录
    ①将hive-default.xml.template复制并重命名为hive-site.xml,将hive-site.xml全文内容替换为以下内容:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<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&amp;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文件最后添加以下内容:

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
  1. 准备apache-hive-1.2.2-src.tar.gz,解压源码包中的bin目录,将其覆盖到Hive安装目录中的bin目录

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

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

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

PySpark虚拟环境创建

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

    conda create -n=pyspark python=3.8
    
  2. 在新建好的PySpark环境安装“pyspark”【使用离线安装包进行安装】和“jupyter”

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

  4. MySQL驱动包mysql-connector-java-8.0.26.jar复制到E:\anaconda3\envs\PySpark\Lib\site-packages\pyspark\jars

  5. 在环境变量中新添系统变量PYSPARK_PYTHON,指定使用的Python运行环境为E:\anaconda3\envs\PySpark\python.exe

  6. 打开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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 要在Windows上搭建Pyspark环境并连接Hive,需要按照以下步骤进行操作: 1. 安装Java环境:Pyspark需要Java环境的支持,因此需要先安装Java环境。 2. 下载Pyspark:从官网下载Pyspark,并解压到本地目录。 3. 配置环境变量:将Pyspark的bin目录添加到系统环境变量中。 4. 安装HadoopHivePyspark需要HadoopHive的支持,因此需要先安装HadoopHive。 5. 配置Hive:在Hive配置文件中,需要将Hive的JDBC驱动程序添加到CLASSPATH中。 6. 启动Pyspark:在命令行中输入pyspark命令,启动Pyspark。 7. 连接Hive:在Pyspark中使用SparkSession连接Hive,可以使用以下代码: ``` from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("HiveExample") \ .config("spark.sql.warehouse.dir", "/user/hive/warehouse") \ .enableHiveSupport() \ .getOrCreate() spark.sql("SELECT * FROM table_name").show() ``` 其中,table_name是Hive中的表名,可以根据实际情况进行修改。 以上就是在Windows上搭建Pyspark环境并连接Hive的步骤。 ### 回答2: 在Windows上搭建Pyspark环境,同时连接Hive是一个比较普遍的需求,下面我们来讲一下具体的操作步骤。 1. 安装Java环境 Pyspark需要Java支持,因此需要先安装Java运行环境。在Windows上,可以在官网上下载Java的安装包,然后进行安装。 2. 下载并安装Anaconda Anaconda是用于Python科学计算的包管理工具,可以很方便地安装Python的各种科学计算包,同时也支持Jupyter Notebooks等交互式开发工具。在Windows上,可以从官网下载并安装Anaconda。 3. 安装Pyspark 在Anaconda中打开终端,运行以下命令来安装Pyspark。 ``` conda install pyspark ``` 这样就可以在Anaconda中使用Pyspark了。 4. 配置HadoopHive环境 在Windows上搭建HadoopHive环境比较麻烦,因此推荐使用Cloudera QuickStart虚拟机来配置HadoopHive环境。可以在官网上下载并安装虚拟机,然后运行虚拟机中的HadoopHive服务。 5. 配置Pyspark连接Hive 在Anaconda中打开终端,输入以下命令进行配置。 ``` import findspark findspark.init() from pyspark.sql import SparkSession spark = SparkSession.builder.appName("myApp").config("hive.metastore.uris", "thrift://quickstart.cloudera:9083").enableHiveSupport().getOrCreate() ``` 其中,`hive.metastore.uris`配置Hive的元数据存储地址,需要根据实际情况进行修改。 6. 测试连接 输入以下命令进行测试。 ``` spark.sql("show databases").show() ``` 如果能够正常输出Hive中的数据库信息,则说明Pyspark已经成功连接Hive。 到此为止,我们已经完成了在Windows上搭建Pyspark环境,并连接Hive的全部操作步骤。 ### 回答3: 在Windows上搭建pyspark环境并连接hive需要按照以下步骤进行: 一、安装Java 由于pyspark是基于Java开发的,因此我们需要先在电脑上安装Java才能运行pyspark。具体安装过程可以在官网上搜索Java安装程序进行下载。 二、安装Python和pip pyspark使用Python编写,因此我们需要在计算机上安装Python才能运行pyspark。我们可以从Python官网上下载最新版本的Python,同时也需要安装pip,可以使用以下命令进行安装: ``` python get-pip.py ``` 三、安装pyspark 在安装Python和pip后,我们可以通过pip安装pyspark,运行以下命令: ``` pip install pyspark ``` 在安装完成后,我们需要设置一些环境变量。我们需要将pyspark添加到系统路径中,可以使用以下命令: ``` setx PYSPARK_PYTHON python setx PYSPARK_DRIVER_PYTHON jupyter setx PATH %PATH%;C:\Users\username\Downloads\spark-2.2.1-bin-hadoop2.7\bin ``` 这里需要将`username`替换为你自己的用户名。 四、连接hive 为了连接hive,我们需要在pyspark中安装相关的依赖包。打开pyspark后,我们可以在控制台中运行以下代码: ``` from pyspark.sql import SparkSession spark = SparkSession.builder.appName("hive").enableHiveSupport().getOrCreate() spark.sql("show tables").show() ``` 这里我们使用SparkSession创建一个名为“hive”的应用,并启用Hive支持。接下来我们可以使用`spark.sql()`函数来运行SQL查询,例如,我们可以使用以下命令查询所有的表: ``` spark.sql("show tables").show() ``` 以上就是在Windows上搭建pyspark环境,并连接hive的步骤。在这个过程中,我们需要了解Java、Python和pyspark的基本操作,同时也需要熟悉在Windows系统上设置环境变量的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值