Spark读写OSS并使用OSS Select来加速查询

 

Spark读写OSS

基于这篇文章搭建的CDH6以及配置,我们来使Spark能够读写OSS(其他版本的Spark都是类似的做法,不再赘述)。
由于默认Spark并没有将OSS的支持包放到它的CLASSPATH里面,所以我们需要执行如下命令
下面的步骤需要在所有的CDH节点执行
进入到$CDH_HOME/lib/spark目录, 执行如下命令

[root@cdh-master spark]# cd jars/[root@cdh-master jars]# ln -s ../../../jars/hadoop-aliyun-3.0.0-cdh6.0.1.jar hadoop-aliyun.jar[root@cdh-master jars]# ln -s ../../../jars/aliyun-sdk-oss-2.8.3.jar aliyun-sdk-oss-2.8.3.jar[root@cdh-master jars]# ln -s ../../../jars/jdom-1.1.jar jdom-1.1.jar

进入到$CDH_HOME/lib/spark目录,运行一个查询

[root@cdh-master spark]# ./bin/spark-shellWARNING: User-defined SPARK_HOME (/opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/spark) overrides detected (/opt/cloudera/parcels/CDH/lib/spark).WARNING: Running spark-class from user-defined location.Setting default log level to "WARN".To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).Spark context Web UI available at http://x.x.x.x:4040Spark context available as 'sc' (master = yarn, app id = application_1540878848110_0004).Spark session available as 'spark'.Welcome to      ____              __     / __/__  ___ _____/ /__    _\ \/ _ \/ _ `/ __/  '_/   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0-cdh6.0.1      /_/Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_152)Type in expressions to have them evaluated.Type :help for more information.scala> val myfile = sc.textFile("oss://{your-bucket-name}/50/store_sales")myfile: org.apache.spark.rdd.RDD[String] = oss://{your-bucket-name}/50/store_sales MapPartitionsRDD[1] at textFile at <console>:24scala> myfile.count()res0: Long = 144004764scala> myfile.map(line => line.split('|')).filter(_(0).toInt >= 2451262).take(3)res15: Array[Array[String]] = Array(Array(2451262, 71079, 20359, 154660, 284233, 6206, 150579, 46, 512, 2160001, 84, 6.94, 11.38, 9.33, 681.83, 783.72, 582.96, 955.92, 5.09, 681.83, 101.89, 106.98, -481.07), Array(2451262, 71079, 26863, 154660, 284233, 6206, 150579, 46, 345, 2160001, 12, 67.82, 115.29, 25.36, 0.00, 304.32, 813.84, 1383.48, 21.30, 0.00, 304.32, 325.62, -509.52), Array(2451262, 71079, 55852, 154660, 284233, 6206, 150579, 46, 243, 2160001, 74, 32.41, 34.67, 1.38, 0.00, 102.12, 2398.34, 2565.58, 4.08, 0.00, 102.12, 106.20, -2296.22))scala> myfile.map(line => line.split('|')).filter(_(0) >= "2451262").saveAsTextFile("oss://{your-bucket-name}/spark-oss-test.1")Spark支持OSS Select

这篇文章介绍了OSS Select,OSS Select目前已经在深圳区域实现商业化,下面的实验将基于oss-cn-shenzhen.aliyuncs.com这个OSS EndPoint来进行(基于CDH6,其他版本的Spark做法类似)。

部署

下面的步骤需要在所有的CDH节点执行
下载OSS Select的Spark支持包(目前该支持包还在测试中),放到$CDH_HOME/jars下
http://gosspublic.alicdn.com/hadoop-spark/spark-2.2.0-oss-select-0.1.0-SNAPSHOT.tar.gz

[root@cdh-master jars]# pwd/opt/cloudera/parcels/CDH/jars[root@cdh-master jars]# ls -ltrh.....-rw-r--r-- 1 root root   20K 9月  20 03:45 jsr305-3.0.1.jar-rw-r--r-- 1 root root  114K 10月 30 16:12 aliyun-java-sdk-core-3.4.0.jar-rw-r--r-- 1 root root  770K 10月 30 16:12 aliyun-java-sdk-ecs-4.2.0.jar-rw-r--r-- 1 root root  535K 10月 30 16:12 aliyun-sdk-oss-3.3.0.jar-rw-r--r-- 1 root root   66K 10月 30 16:12 aliyun-oss-select-spark_2.11-0.1.0-SNAPSHOT.jar-rw-r--r-- 1 root root   13K 10月 30 16:12 aliyun-java-sdk-sts-3.0.0.jar-rw-r--r-- 1 root root  211K 10月 30 16:12 aliyun-java-sdk-ram-3.0.0.jar-rw-r--r-- 1 root root  870K 10月 30 16:13 jaxb-impl-2.2.3-1.jar-rw-r--r-- 1 root root  150K 10月 30 16:13 jdom-1.1.jar-rw-r--r-- 1 root root  145K 10月 30 16:13 jersey-json-1.9.jar-rw-r--r-- 1 root root  448K 10月 30 16:13 jersey-core-1.9.jar-rw-r--r-- 1 root root   56K 10月 30 16:13 json-20170516.jar-rw-r--r-- 1 root root   67K 10月 30 16:13 jettison-1.1.jar-rw-r--r-- 1 root root   26K 10月 30 16:13 stax-api-1.0.1.jar

进入到$CDH_HOME/lib/spark/jars

[root@cdh-master jars]# pwd/opt/cloudera/parcels/CDH/lib/spark/jars[root@cdh-master jars]# rm -f aliyun-sdk-oss-2.8.3.jar[root@cdh-master jars]# ln -s ../../../jars/aliyun-oss-select-spark_2.11-0.1.0-SNAPSHOT.jar aliyun-oss-select-spark_2.11-0.1.0-SNAPSHOT.jar[root@cdh-master jars]# ln -s ../../../jars/aliyun-java-sdk-core-3.4.0.jar aliyun-java-sdk-core-3.4.0.jar[root@cdh-master jars]# ln -s ../../../jars/aliyun-ja

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值