博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
34、spark1.5.1
阅读量:5220 次
发布时间:2019-06-14

本文共 3078 字,大约阅读时间需要 10 分钟。

一、Spark 1.4.x的新特性

1、Spark Core  1.1 提供REST API供外界开发者获取Spark内部的各种信息(jobs / stages / tasks / storage info),基于这些API,可以搭建自己的Spark监控系统。  1.2 shuffle阶段,默认将map端写入磁盘的数据进行序列化,优化io性能。  1.3 钨丝计划(Project Tungsten),提供了UnsafeShuffleManager,使用缓存友好的排序算法,降低了shuffle的内存使用,提高了排序性能。2、Spark Streaming  2.1 提供了新的Spark Streaming的UI,能够更好,更清晰的监控Spark Streaming应用程序的运行状况。  2.2 支持Kafka 0.8.2版本3、Spark SQL and DataFrame  3.1 支持ORCFile  3.2 提供了一些window function(窗口函数)  3.3 优化了join的性能

二、Spark 1.5.x的新特性

1、DataFrame底层执行的性能优化(钨丝计划第一阶段)  1.1 Spark自己来管理内存,而不再依靠JVM管理内容。这样就可以避免JVM GC的性能开销,并且能够控制OOM的问题。  1.2 Java对象直接使用内部的二进制格式存储和计算,省去了序列化和反序列化的性能开销,而且更加节省内存开销。  1.3 完善了Shuffle阶段的UnsafeShuffleManager,增加了不少新功能,优化shuffle性能。  1.4 默认使用code-gen,使用cache-aware算法,加强了join、aggregation、shuffle、sorting的性能,增强了window function的性能,性能比1.4.x版本提高数倍2、DataFrame  2.1 实现了新的聚合函数接口,AggregateFunction2,并且提供了7个新的内置聚合函数。  2.2 实现了100多个新的expression function,例如unix_timestamp等,增强了对NaN的处理  2.3 支持连接不同版本的hive metastore  2.4 支持Parquet 1.73、Spark Streaming:更完善的python支持、非实验的Kafka Direct API等等。

三、spark1.5.1源码编译

掌握了源码编译,就具备了对Spark进行二次开发的基本条件了!如果你要修改Spark源码,进行二次开发,那么首先就得从官网下载指定版本的源码,然后导入你的ide开发环境,进行源码的修改;接着修改完了,你希望能够将修改后的源码部署到集群上面去,那么是不是得对源码进行编译,编译成可以在linux集群上进行部署的格式包吧!1、http://d3kbcqa49mib13.cloudfront.net/spark-1.5.1.tgz      //下载源码包2、准备好JDK、Scala、Maven环境3、针对指定hadoop版本进行编译:./make-distribution.sh --tgz -Phadoop-2.6 -Pyarn -DskipTests -Dhadoop.version=2.6.0 -Phive4、经长时间的编译之后,得到spark-1.4.0-bin-2.6.0.tgz

四、安装spark1.5.1

1、解压安装

之前测试集群用的spark1.3,现在将spark升级为spark1.5.1

1、停止Spark 1.3.0集群:SPARK_HOME/sbin/stop-all.sh2、将spark-1.5.1-bin-hadoop2.4.tgz上传到/usr/local目录下。3、解压缩spark包:tar zxvf spark-1.5.1-bin-hadoop2.4.tgz。4、修改spark环境变量vi /etc/profileexport JAVA_HOME=/usr/java/latestexport HADOOP_HOME=/usr/local/hadoopexport HIVE_HOME=/usr/local/hiveexport ZOOKEEPER_HOME=/usr/local/zkexport SCALA_HOME=/usr/local/scalaexport SPARK_HOME=/usr/local/spark-1.5.1-bin-hadoop2.4export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin

2、修改spark-env.sh

1、cd /usr/local/spark/conf2、cp spark-env.sh.template spark-env.sh3、vi spark-env.sh        #写入下列几行export JAVA_HOME=/usr/java/latestexport SCALA_HOME=/usr/local/scalaexport SPARK_MASTER_IP=192.168.1.135export SPARK_WORKER_MEMORY=1gexport HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

3、修改slaves文件

cp  conf/slaves.template conf/slavesvim conf/slavesspark2spark3

4、分发

scp -r spark-1.5.1-bin-hadoop2.4 root@spark2:/usr/local/ scp -r spark-1.5.1-bin-hadoop2.4 分发完以后,分别编辑spark2、spark3两台主机的/etc/profile文件,将spark1.5.1的环境变量写入,并source;

5、启动

1、在spark目录下的sbin目录2、执行./start-all.sh3、使用jsp和8080端口可以检查集群是否启动成功4、进入spark-shell查看是否正常

6、进入spark-shell测试

scala> val lines = sc.textFile("hdfs://spark1:9000/spark.txt")scala> val words = lines.flatMap(line => line.split(" "))scala> val pairs = words.map(word => (word,1))scala> val counts = pairs.reduceByKey(_ + _)scala> counts.foreach(count => println(count._1 + ": " + count._2))

转载于:https://www.cnblogs.com/weiyiming007/p/11264654.html

你可能感兴趣的文章
实验2-2
查看>>
String,StringBuffer与StringBuilder的区别?? .
查看>>
MongoDB遇到的疑似数据丢失的问题。不要用InsertMany!
查看>>
服务器被疑似挖矿程序植入107.174.47.156,发现以及解决过程(建议所有使用sonatype/nexus3镜像的用户清查一下)...
查看>>
JQuery 学习
查看>>
session token两种登陆方式
查看>>
IntelliJ IDEA 12集成Tomcat 运行Web项目
查看>>
java,多线程实现
查看>>
个人作业4-alpha阶段个人总结
查看>>
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
20190422 T-SQL 触发器
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
poj1422_有向图最小路径覆盖数
查看>>
BootScrap
查看>>