欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上

程序员文章站 2022-05-23 14:16:30
...

快速在windows机器上搭建hive和spark,在微信文章搜到一个大神写的文章,还有视频讲解,很是良心,于是跟着操作了一波,但因为某些环境不太一致,比如mysql我的版本是8.0的,导致踩了一些坑,写这篇文章记录一下,终于可以愉快的玩耍了。
大神文章链接:https://mp.weixin.qq.com/s/RWAJSwkSw1mR22yD1rPszA
本人配置的链接hive-site.xml和mysql-connector-java-8.0.21的jar包(其余配置文件可以去大神的链接下载)
网盘链接:https://pan.baidu.com/s/1KPYOKpb7lV1DlJYkF_uytg
提取码:u4fp

环境与工具

环境:

  • win10家庭版;
  • Hadool2.7,Hive2.1.0,Spark2.4.5,JDK1.8.0;
  • python3.7.6,Mysql8.0.21
    工具:
  • Navicat Premium 15
  • jupyter lab

步骤

1.解压压缩包
2.将hadoop.dll放入C:\Windows\System32中
3.配置环境变量
在环境变量中添加
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
在系统变量中新增:
HADOOP_HOME = D:\set_package\bigdata\hadoop
JAVA_HOME = D:\set_package\bigdata\jdk1.8.0
HIVE_HOME = D:\set_package\bigdata\apache-hive-2.1.0-bin

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
找到系统变量-path:
配置如下环境变量
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
4.创建元数据库
我这里使用的是Navicat,新建一个hive数据库
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
表-按右键-运行sql文件,下面三个钩都取消
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
看到导入了46张表,就表示成功了
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
5.格式化hdfs:
打开cmd,输入hdfs namenode -format
出现name has been successfully formatted表示成功

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
6.测试
测试hadoop
打开cmd,输入start-dfs
弹出namenode和datanode
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
安装HDFS Explorer Installer.msi上传文件测试hadoop可以参考大神的视频

7.测试hive:
cmd输入hive

hive-site.xml,在大神的文件基础上增加了一些配置:
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
完整代码如下:
数据库密码改成你自己的
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上

<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC</value>
    </property>

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

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>你的mysql密码</value>
    </property>

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

    <property>
        <name>hive.metastore.warehouse.dir</name>  
        <!--hive的数据存储目录,指定的位置在hdfs上的目录-->  
        <value>file:/D:/tmp/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>

注意,我需要用管理员打开cmd,输入hive才能运行成功。。。
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
导入数据和测试Hive查询请参考大神视频

8.测试sparksql
命令行输入:spark-sql2
需要先在cmd执行以下命令,解除文件权限限制
winutils chmod 777 \tmp\hive

9.pyspark访问hive
加速pip下载:
打开此电脑(win10)在地址栏输入:%HOMEPATH%,回车,进入到用户所在目录,新建一个pip的文件夹
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
将pip.ini放入pip文件夹中
使用管理员模式打开cmd,输入pip install pyspark2.3.2,一开始向大神一样安装pip install pyspark2.4.5,运行sparksql死活不成功,然后各种百度搜到用2.3.2版本,结果就运行成功了。

将hive-site.xml放入pyspark目录下的conf文件夹中D:\ProgramData\Anaconda3\Lib\sitepackages\pyspark\conf中
将mysql-connector-java-8.0.21.jar(取决于你的mysql版本)
放入D:\ProgramData\Anaconda3\Lib\site-packages\pyspark\jars中

10.测试sparksql

增加了代码,不加好像会报错

import findspark
findspark.init()
from pyspark.sql import SparkSession
from pyspark.sql import Row
import findspark
findspark.init()

spark = SparkSession \
    .builder\
    .appName("Demo") \
    .enableHiveSupport()\
    .getOrCreate()
sc = spark.sparkContext
spark

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
读取当前目录下的文件
超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上

textfile = spark.read.text(".")
textfile.count()
spark.sql("show tables").show()

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上

spark.sql("select * from xxm_t1").show()

超简易win10下快速搭建hive和spark环境——站在巨人的肩膀上
大功告成