当前位置:   article > 正文

PySpark安装与使用

pyspark

一、Spark On Yarn

1.1 配置Spark On Yarn

步骤一:官网下载spark

步骤二:修改spark/conf/spark-env.sh文件,添加yarn和hadoop的路径即可

HADOOP_CONF_DIR=/export/server/hadoop/etc/hadoop
YARN_CONF_DIR=/export/server/hadoop/etc/hadoop
  • 1
  • 2

测试:先启动hdfs集群和Yarn集群

测试1:以yarn模式启动pyspark客户端,能启动成功说明spark on yarn环境没问题

spark/bin/pyspark --master yarn
  • 1

测试二:使用spark-submit客户端提交spark任务(Python环境有pyspark)

spark/bin/spark-submit \
--master yarn \
--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
/export/server/spark/examples/src/main/python/pi.py \
10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.2 配置历史服务

作用:可以查看spark程序的历史日志,使用命令查看

export/server/hadoop/bin/yarn logs -applicationId $appid
  • 1

1、修改spark-default.conf.template名称

mv spark-defaults.conf.template spark-defaults.conf
  • 1

2、修改spark-default.conf文件,配置日志存储路径(写)

spark.eventLog.enabled          true
spark.eventLog.dir              hdfs://node1:8020/directory
  • 1
  • 2

3、修改spark-env.sh文件,添加如下配置,注意:hdfs上必要先创建hdfs://node1:8020/directory 这个路径

export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://node1:8020/directory 
-Dspark.history.retainedApplications=30"
  • 1
  • 2
  • 3
  • 4

参数1含义:WEBUI访问的端口号为18080

参数2含义:指定历史服务器日志存储路径(读)

参数3含义:指定保存Application历史记录的个数,如果超过这个值,旧的应用程序信息将被删除,这个是内存中的应用数,而不是页面上显示的应用数。

1.3 配置查看历史日志

为了能从Yarn上关联到Spark历史服务器,需要配置spark历史服务器关联路径。

目的:点击yarn(8088)上spark任务的history按钮,进入的是spark历史服务器(18080),而不再是yarn历史服务器(19888)

1、修改配置文件/opt/module/spark-yarn/conf/spark-defaults.conf

spark.yarn.historyServer.address=node1:18080
spark.history.ui.port=18080
  • 1
  • 2

2、重启Spark历史服务

sbin/stop-history-server.sh 
sbin/start-history-server.sh 
  • 1
  • 2

3、测试

spark/bin/spark-submit \
--master yarn \
--conf "spark.pyspark.driver.python=/root/anaconda3/bin/python3" \
--conf "spark.pyspark.python=/root/anaconda3/bin/python3" \
/export/server/spark/examples/src/main/python/pi.py \
10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4、Web页面查看日志:http://node1:8088/cluster

点击“history”跳转到http://node1:18080/

1.3 Spark On Yarn使用方式

1.3.1 启动HDFS集群命令
start-dfs.sh
  • 1
1.3.2 关闭HDFS集群命令
stop-dfs.sh
  • 1
1.3.3启动YARN集群命令
start-yarn.sh
  • 1
1.3.4 关闭YARN集群命令
stop-yarn.sh
  • 1
1.3.5 YARN集群历史服务器的启动和停止
/export/server/hadoop/bin/mapred --daemon start historyserver
/export/server/hadoop/bin/mapred --daemon stop historyserver
  • 1
  • 2
1.3.6 启动Spark HistoryServer服务,在node1执行命令
/export/server/spark/sbin/start-history-server.sh
/export/server/spark/sbin/stop-history-server.sh
  • 1
  • 2

可以查看历史spark任务的资源情况,DAG图

1.3.7 查看日志
/export/server/hadoop/bin/yarn logs -applicationId $appid
  • 1
1.3.8 杀掉spar程序
yarn application -kill $appid
  • 1

二、Spark On Hive

1、MetaStore需要存在并开机

2、Spark知道MetaStore在哪里

2.1 在Spark上配置Hive

前提是hive已经安装好了,在hadoop和yarn上配置好了

步骤一:在spark/conf里新增hive-site.xml,里面放:

<configuration>
    <property>
        <name>hive.metastore.warestore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node1.itcast.cn:9083</value>
    </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

步骤二:将mysql的驱动jar包放入spark的jars目录

因为要连接元数据,会有部分功能连接到MySQL库,需要mysq驱动包

步骤三:启动hive的MetaStore服务

测试一:在spark的bin/pyspark:在里面直接写spark.sql(“sql语句”).show()即可,也可以bin/pyspark --master yarn运行pyspark测试spark on Yarn的环境

测试二:Python代码测试
在这里插入图片描述

2.2 Hive启动

创建一个hive的日志文件夹

mkdir /export/server/hive/logs
  • 1

启动元数据管理服务(必须启动,否则无法工作)二选一

方式1:前台启动

bin/hive --service metastore 
  • 1

方式2:后台启动,先创建日志文件夹

nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
  • 1

在这里插入图片描述

启动客户端,二选一(当前先选择Hive Shell方式)

方式1:Hive Shell方式(可以直接写SQL): bin/hive
在这里插入图片描述
方式2:Hive ThriftServer方式(不可直接写SQL,需要外部客户端链接使用): nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 & 这就是后台一直开着,可以来连接datagrip等软件

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/924178
推荐阅读
相关标签
  

闽ICP备14008679号