关于(Windows下)Pyspark访问(虚拟机)Hive的环境部署

通过windows环境下jupyter(python的Anconada)访问hadoop中的hive,前提:windows中pyspark已经搭建完成,hive在Hadoop已搭建完成。主要有两步,第一步、设置虚拟机平台和windos平台环境变量,第二步启动hive和juyter。

关键:将HIVE的元数据作为服务暴露给spark

第一步、设置环境变量

虚拟机主节点(master)环境变量设置

打开hive的conf目录,修改hive-site.xml文件,在结尾添加信息

>> cd /opt/module/hive/conf
>> vi  hive-site.xml

    hive.metastore.uris
    hive.metastore.uristhrift://master:9083

注:mater为主节点的主机名,需要根据自己主机名修改

Windows环境配置

1)将虚拟机中hive-site.xml(hive的conf目录下)拷贝到windows的spark的conf目录下(D:\ProgramFiles\spark_local\spark-2.2.0-bin-hadoop2.7\conf)
将虚拟机中的java包(hive的lib目录下mysql-connector-java-5.1.38-bin.jar)拷贝到windows的spark的jars目录下(D:\ProgramFiles\spark_local\spark-2.2.0-bin-hadoop2.7\jars)

2)添加windows和虚拟机的映射信息
打开windows的C:\Windows\System32\drivers\etc目录,打开hosts文件,结尾处添加虚拟机的IP信息。

image

信息可通过虚拟机中hosts文件查看

>> cat /etc/hosts
image

第二步启动hive和juyter

1)Hive启动

启动zookeeper,在bin目录下启动

>> cd /opt/module/zookeeper/bin/
>> ./zkServer.sh start

jps查看启动的进程

image

进程QuorumPeerMain代表启动成功

启动hdoop集群

输入start-all.sh

>>  start-all.sh

启动hive 的metastore服务

在bin目录下输入hive --service metastore &

>> /opt/module/hive/bin
>> hive --service metastore &

输入jobs验证是否启动成功

>>  jobs
image

代表启动成功

2)在jupyer中启动连接

导包

# 导包
from pyspark import  SparkConf, SparkContext,SQLContext
from pyspark.sql import  SparkSession
import os

设置环境变量(若不配置不报错可跳过)

# 设置环境变量
os.environ['SPARK_HOME']=r'D:\ProgramFiles\spark_local\spark-2.2.0-bin-hadoop2.7'
os.environ['HADOOP_HOME']=r'D:\ProgramFiles\spark_local\Hadoop\winuntil'
os.environ['JAVA_HOME']=r'D:\ProgramFiles\Java\jdk1.8.0_191'

配置参数并实例化

# 配置参数
sparkConf=SparkConf().setAppName('Sparker').setMaster('local[4]').set("spark.executor.memory","10g").set("spark.driver.memory","10g").set("spark.python.worker.memory","10g")
 # 实例化
sc =  SparkContext(conf=sparkConf)

初始化并进行hive连接

#初始化spark
sqlContext =  SQLContext(sparkContext=sc)
spark =  SparkSession.builder.config(conf=sparkConf).getOrCreate()
#Hive连接
from pyspark.sql import  HiveContext
hiveContext =  HiveContext(sc)
hiveContext.sql("show  schemas").show()

有结果显示,代表成功


image.png

你可能感兴趣的:(关于(Windows下)Pyspark访问(虚拟机)Hive的环境部署)