如何在本地使用scala或python运行Spark程序
- 本地scala语言编写程序,并编译打包成jar,在本地运行。
- 本地使用python语言编写程序,直接调用spark的接口,并在本地运行。
- spark发布版会将spark所有能力,和依赖包一起打包成spark-assembly.jar,并能够在单机模式下运行spark的local模式。
- spark发布版提供spark-submit等工具来提交jar和启动local模式
- scala程序可以很方便地使用sbt工具编译打包成jar
- 下载intelij idea , 安装scala, 以及scala语言plugin 和 sbt plugin
- 下载spark 发布包,注意要含Hadoop(可选) 、spark-assembly.jar 、py4j(可选) 、 pyspark(可选) 。(spark-1.5.2-bin-hadoop2.3.tgz)
- 创建scala项目,F4项目设置dependency: scala和spark-assembly.jar的依赖。如果要支持sql hive 还需提供
- datanucleus-api-jdo-3.2.6.jar
- datanucleus-core-3.2.10.jar
- datanucleus-rdbms-3.2.9.jar
- spark-1.5.2-yarn-shuffle.jar
- spark-assembly-1.5.2-hadoop2.3.0.jar
- spark-examples-1.5.2-hadoop2.3.0.jar
- 创建build artificial id, 只需要manifest(main classs) 和 compile output即可。
- 编译打包后,生成的jar包,使用以下命令提交: spark-submit --class weather --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true /home/mobile/rf_test.jar
- 主程序的依赖包 运行法(--driver-library-path 与--jars 指令合用): spark-submit --class EntropyWeights --jars scopt_2.10-3.5.0.jar --driver-library-path scopt_2.10-3.5.0.jar --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true /home/mart_mobile/fdy/EntropyWeights.jar
- 上述案例是冗余的写法: --jars可以指定driver和executor都需要的依赖,--driver-library-path 为driver程序中依赖的命令行参数解析 jar包,但是excutor中并不需要。
- executor需要则: --spark.executor.extraClassPath to augment the executor classpath
- 参考: http://stackoverflow.com/questions/37132559/add-jars-to-a-spark-job-spark-submit
- spark-submit --class EntropyWeights --jars scopt_2.10-3.5.0.jar --driver-library-path scopt_2.10-3.5.0.jar --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true /home/mart_mobile/fdy/EntropyWeights.jar -t app.app_celebrity_properties_4rank_da -d author_id1,author_pin --colweights commission=1.0,pv=1.0,uv=1.0,upvote_num=1.0,comment_num=1.0,share_num=1.0,enter_detail_pv=1.0,enter_detail_uv=1.0,ordnum_inby_5thevent=1.0,ordsum_inby_5thevent=1.0,ordnum_in_direct=1.0,ordsum_in_direct=1.0,ordnum_in_indirect=1.0,ordsum_in_indirect=1.0,detail_ratio=1.0,import_ratio=1.0,fans_num=1.0,rank=1.0,open_rate=1.0, -o app.app_celebrity_rank_da
- 新的集群出现 org.apache.commons.math jar 包(多 jar 包依赖的制定方法, 分隔符): spark-submit --class EntropyWeights --jars ./scopt_2.10-3.5.0.jar,./commons-math-2.1.jar --driver-library-path ./scopt_2.10-3.5.0.jar:./commons-math-2.1.jar --conf spark.dynamicAllocation.enabled=true --conf spark.shuffle.service.enabled=true ./EntropyWeights.jar -i app.app_celebrity_properties_4rank_da -d author_id1,author_pin --colweights commission=1.0,pv=1.0,uv=1.0,upvote_num=1.0,comment_num=1.0,share_num=1.0,enter_detail_pv=1.0,enter_detail_uv=1.0,ordnum_inby_5thevent=1.0,ordsum_inby_5thevent=1.0,ordnum_in_direct=1.0,ordsum_in_direct=1.0,ordnum_in_indirect=1.0,ordsum_in_indirect=1.0,detail_ratio=1.0,import_ratio=1.0,fans_num=1.0,rank=1.0,open_rate=1.0, -o app.app_celebrity_rank_da -s 5.0 -t norm
- 编译好的spark发布包,包含Hadoop和spark-assembly.jar
- spark项目提供的py4j程序,让python可以访问运行在jvm上的spark。
- spark项目提供的pyspark接口,在本地调起spark-assembly.jar,并在py4j的帮助下,方便python语言通过py4j来调用运行在jvm上的spark提供的接口。
- 下载spark发布包,注意要含Hadoop、spark-assembly.jar 、py4j 、 pyspark。(spark-1.5.2-bin-hadoop2.3.tgz)
- 将该包下python目录下的py4j与pyspark放入到本机python安装第三方库的site-packages目录下
- 环境变量的修改:
- SPARK_HOME环境变量: os.environ["SPARK_HOME"]='D:\software_bak\spark\spark-1.5.2-bin-hadoop2.3'
- Hadoop_home环境变量: os.environ["HADOOP_HOME"]='E:\\hadoop-2.4.1'
- 执行。
- 可以使用spark的example目录下的wordcount.py与数据people.txt。
- 修改该文件的源代码,加入3中所述的两个环境变量。
- 运行: python wordcount.py people.txt 即可。
- 或者使用 spark-submit 提交 Python 编写的 spark 任务:
- 比如 提交的任务中有依赖的 Python 基础库文件: spark-submit --py-files spark_etl_tools.py --num-executors 4 --executor-cores 8 --executor-memory 4G --driver-memory 10G --conf spark.driver.maxResultSize=6G migration_03_welcome_calls.py
如何在本地使用scala或python运行Spark程序的更多相关文章
- luigi框架--关于python运行spark程序
首先,目标是写个python脚本,跑spark程序来统计hdfs中的一些数据.参考了别人的代码,故用了luigi框架. 至于luigi的原理 底层的一些东西Google就好.本文主要就是聚焦快速使用, ...
- 使用IDEA运行Spark程序
使用IDEA运行Spark程序 1.安装IDEA 从IDEA官网下载Community版本,解压到/usr/local/idea目录下. tar –xzf ideaIC-13.1.4b.tar.gz ...
- eclipse运行spark程序时日志颜色为黑色的解决办法
自从开始学习spark计算框架以来,我们老师教的是local模式下用eclipse运行spark程序,然后我在运行spark程序时,发现控制台的日志颜色总是显示为黑色,哇,作为程序猿总有一种强迫症,发 ...
- Hadoop:开发机运行spark程序,抛出异常:ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
问题: windows开发机运行spark程序,抛出异常:ERROR Shell: Failed to locate the winutils binary in the hadoop binary ...
- Python 运行其他程序
10.4 运行其他程序 在Python中可以方便地使用os模块运行其他的脚本或者程序,这样就可以在脚本中直接使用其他脚本,或者程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程, ...
- 如何运行Spark程序
[hxsyl@CentOSMaster spark-2.0.2-bin-hadoop2.6]# ./bin/spark-submit --class org.apache.spark.examples ...
- 运行Spark程序的几种模式
一. local 模式 -- 所有程序都运行在一个JVM中,主要用于开发时测试 无需开启任何服务,可直接运行 ./bin/run-example 或 ./bin/spark-submit 如: ...
- Python运行MapReducer程序时所遇异常
landen@Master:~/UntarFile/hadoop-1.0.4$ bin/hadoop jar contrib/streaming/hadoop-streaming-1.0.4.jar ...
- spark学习14(spark local模式运行spark程序的报错)
报错1 java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. 解 ...
随机推荐
- Docker 0x07: Docke 容器网络
目录 Docke 容器网络 Container Network Model (CNM) 具体项目中代码对象有哪些 Implementations实现的网络(直接英文版) Libnetwork incl ...
- angular8 配置 测试环境打包指令 生成测试环境包指令
1.angular.json 文件中在architect 下添加 buildTest指令 距离位置 projects => (你的项目名称) => architect 下和 build 指 ...
- Diagnostic Viewer 显示空白
MATLAB R2014a仿真出现错误后,查找错误时,Diagnostic Viewer 显示空白.网上查的一种解决方法.我的电脑是Windows7. 1.点击 所有程序>附件>记事本(以 ...
- adb命令篇
前言 Android的adb提供了很多命令,功能很强大,可以为开发和调试带来很大的便利.当然本文并不是介绍各种命令的文章,而是用于记录在平时工作中需要经常使用的命令,方便平时工作时使用,所以以后 ...
- Win10-无法启动虚拟机
环境:Win10 - 1903 Q1:安装使用Hyper-V后,安装Virtual box新建VM,无法启动 A1:卸载Hyper-V(非必须) 管理员运行ps/cmd bcdedit /set ...
- 【转载】TCP协议
首部格式 图释: 各个段位说明: 源端口和目的端口:各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端口才能实现 序号:占 4 字节.TCP 连接中传送的数据流中的每一个 ...
- jquery.lazyload.js-v1.9.1延时加载插件,已兼容ie6和各大浏览器
来源:http://www.jq22.com/jquery-info390 使用前要求: img的设置: 1.class要配上“lazy”: 2.用data-original代替src: 3.如果想要 ...
- js的类型系统--js基于原型的基石是所有对象最终都能够类型自证
一.动态类型 变量能够类型自证的类型即为动态类型 二.基础与内置类型 三.对象与类型的关系 1.对象本身能够自证为基本类型: 2.元原型可能为一个空的集合: 3.复合对象的成员能够自证为基本类型: 4 ...
- springboot集成jsp,访问jsp页面下载问题
1.导入相关依赖 (存在jsp页面下载问题,可能是缺少tomcat-embed-jasper的依赖对jsp的支持) <parent> <groupId>org.spri ...
- vue中computed和watch的区别,以及适用场景
computed:通过属性计算而得来的属性 1.computed内部的函数在调用时不加(). 2.computed是依赖vm中data的属性变化而变化的,也就是说,当data中的属性发生改变的时候,当 ...