赞
踩
本文重点介绍在Windows下开发spark应用程序的依赖环境的搭建,其次也会针对supermap iobjects for spark产品的入门程序开发介绍。在实际配置当中遇到报错可以在评论区交流。
一、环境
二、配置
创建SPARK_HOME环境变量并赋值,例如D:\ProgramFiles\Spark_Dev\spark-2.1.1-bin-hadoop2.7
创建SPARK_CLASSPATH环境变量并赋值,例如D:\ProgramFiles\Spark_Dev\spark-2.1.1-bin-hadoop2.7\jars
将spark-2.1.1-bin-hadoop2.7产品的bin目录添加到path环境变量
创建HADOOP_HOME环境变量并赋值,例如D:\ProgramFiles\Spark_Dev\hadoop-2.7.3
将hadoop-2.7.3产品的bin目录添加到path环境变量
配置hadoop-env.cmd文件,指定jdk路径,如截图一
配置hdfs-site.xml文件的节点,在hadoop目录下,新建data文件夹,以及创建namenode和datanode子文件夹,配置节点,如下截图二
三、启动spark和hadoop
spark-shell.cmd
start-all.cmd
四、supermap iobjects for spark入门程序
import com.supermap.bdt.base.Util import com.supermap.bdt.io.sdx.{DSConnectionInfo, DatasourceType, SDXReader} import org.apache.log4j.{Level, Logger} import org.apache.spark.{SparkConf, SparkContext} object StartDemo { def main(args: Array[String]): Unit = { Logger.getLogger("org").setLevel(Level.ERROR) val conf = new SparkConf().setAppName("StartDemo").setMaster("local[*]") val sc = new SparkContext(conf) Util.configure(conf) val info = DSConnectionInfo(DatasourceType.PostgreSQL, "127.0.0.1:5432", "mapdata", "postgresql", Some("maptest"), Some("supermap")) val featureRDD = SDXReader.readFromDS(sc, info, "province", 360) println("对象数:" + featureRDD.count()) } }
五、spark批处理模式运行程序
spark-submit.cmd --master local[4] --class StartDemo E:\\iObjectsSparkWorkspace\\SMSparkStart\\out\\artifacts\\smsparkstart_jar\\smsparkstart.jar
如果提交时报错"invalid signature file digest for manifest main attributes"签名无效,这是因为sbt或maven构建的工程在打包时都有这个常见错误,Windows下用压缩工具打开jar,删除meta-inf文件夹下的* .SF,* .DSA,* .RSA文件即可,Linux下采用命令删除即可。
zip -d smsparkstart.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
注:本博文提供的spark包和hadoop包已经做了适配于Windows开发的相关文件修改。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。