重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

spark初始化怎么配置

这篇文章主要讲解了“spark初始化怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“spark初始化怎么配置”吧!

专注于为中小企业提供成都做网站、网站设计、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业澧县免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

1. 在较高层次上,每个spark应用程序包含一个驱动程序,去调用用户的main函数,在集群上执行各种并行操作。spark主要的抽象,是提供了RDD数据类型。RDD数据类型是一组分割在集群上可以被并行操作的元素集合。RDD可以通过HDFS上的文件,驱动程序已有的集合,或对已有的RDD进行变换来创建。用户也可以将RDD持久化,保存在内存中,以被有效的重用。RDD也将自动从失败中恢复。spark的第二个抽象是可以被并行操作的共享变量。默认情况下,spark运行函数时,将在不同的节点上启动独立的任务。spark支持2类共享变量,广播变量,在每一个节点上保存一个值,累积变量支持累加操作。

2. spark初始化

spark应用程序首先应该创建JavaSparkContext对象

SparkConf conf = new SparkConf().setAppName(appName).setMaster(master);
JavaSparkContext sc = new JavaSparkContext(conf);

appname设置显示在集群UI上应用程序名,master是YARN集群的URL,或者字符串"local"表示运行本地模式。若采用spark-submit命令提交jar包,可由--master选项指定。

3. 创建RDD

RDD可以通过parallelizing一个驱动程序中已存在的集合,或者引用一个外部存储系统,如HDFS,HBase创建

List data = Arrays.asList(1, 2, 3, 4, 5);
JavaRDD distData = sc.parallelize(data, 20);

集合并行化的一个重要参数就是份数(slices),每一份数据将对应一个任务,spark默认会根据集群自动确定份数。

JavaRDD distFile = sc.textFile("data.txt", 20);

如果文件名是本地文件系统,那么需要在所有工作节点的相同目录下拷贝一份数据,或者采用网络共享文件系统。所有的spark文件输入方法也支持目录,压缩文件,通配符。默认情况下一个分块(block)将对应一份(slice)。除了文本文件,spark还支持其它数据格式,如:JavaSparkContext.wholeTextFiles,SequenceFiles。

4. RDD操作支持两种,变换(transformation)根据已经存在的数据集产生一个新的数据集,动作(action)在RDD上运行计算并向驱动程序返回一个值。例如:map就是一个transformation,将所有的数据元素通过一个函数,结果返回一个新的RDD,reduce就是一个action,采用某个函数聚合所有元素,向驱动程序返回一个结果。所有的transformation操作在调用后,并不会立即执行,只有当某个action需要向驱动程序返回一个结果时,才执行。这样设计使得spark效率更高,例如在需要将一个RDD通过一个map,然后再使用reduce返回一个结果,这时就只需要向驱动程序返回reduce的结果,而不是更大的map后的数据集。默认RDD是不会一直存在于内存当中的,我们可以调用persist或cache方法持久化,也支持将RDD持久化入硬盘,或者备份到多个节点。

5. RDD transformation方法

map(T -> U)  filter(T -> Boolean)  flatMap(T -> Iterator)  mapPartitions(Iterator -> Iterator)

mapPartitionsWithIndex((int,Iterator) -> Iterator)  ...

感谢各位的阅读,以上就是“spark初始化怎么配置”的内容了,经过本文的学习后,相信大家对spark初始化怎么配置这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享题目:spark初始化怎么配置
标题路径:http://cqcxhl.cn/article/jhjsjh.html