Spark 专题理论学习与技术实践
2014-06-08 15:55
260 查看
1. Spark 相关理论知识学习和对Hadoop的理解 :
Spark学起来相对比较轻松, 除了其本身具有和Hadoop理论知识第一段讲的如大数据,开源等诸多特点,其本身也是一款优秀的大数据存储分析框架,和hadoop 有着惊人的相似,如果不是业界专门给了这么两个长像不相同的概念,真想说一句“Spark就是Hadoop”,打开apache Spark学习官网,有这么一句很显眼的话“Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk”,业界喜欢拿“百倍Hadoop处理速度,亚十倍Hadoop处理代码”来盛赞Spark,可能因为是初学这两个专题技术的原因吧,对于Spark到底快在哪儿,数据处理代码到底少在哪儿,尚不能够分辨,要说快,倒是在spark的sbin目录启动start-all.sh 和stop-all.sh脚本的时候速度比hadoop 快,至于说数据处理代码少,那也只能说Spark 支持的scala语言人家本身代码量就很少,官网spark 实例一共支持三种运行方式,即Scala,Python,Java,以实例处理代码量由小到大排名:Scala<Python<Java,不过这并不代表代码量小,学习周期就小,Spark 和Hadoop 数据分析方面,熟优熟劣,熟好熟坏,可能真得不断深入的学习实践,才能慢慢体会得到。
Spark启动过程中包括两个进程,即Master 和Worker,Master 进程负责接收分配任务,Worker 负责处理各个子任务,当Worker将各个任务处理完成之后,将结果返回给Master.
2. 技术实践内容:
Spark sbin 目录各个启动脚本和关闭脚本的使用方法,主要包括的脚本,start-all.sh,stop-all.sh,spark-daemons.sh,start-master.sh,start-slave.sh.
Spark 配置文件比较简单,主要配置的文件仅为spark-env.sh和slaves,主要配置的参数项为四个,即JAVA_HOME,SCALA_HOME,HADOOP_HOME,SPARK_HOME,salves配置为默认的locolhost即可。
Spark bin 目录中启动spark-shell 运行scala 函数实例的方法,初步尝试的两个能用spark-shell 运行实例的方法:
scala> val textFile = sc.textFile("readme.txt")
scala> textFile.count()
统计一个文件中一共有多少行代码;
val linesWithSpark = textFile.filter(line => line.contains("Hello"))
过滤出文件中包含“Hello”的行数。
val file = spark.textFile("hdfs://localhost:9000/user/hadoop/input/readme.txt ")
val counts = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://localhost:9000/user/hadoop/output/part-00000")
Spark中wordCount 的使用方法。
3. Spark 学习中遇到的主要问题:
使用spark.textFile("hdfs://localhost:9000/user/hadoop/input/readme.txt ")的过程中,出现了hadoop hdfs 文件系统访问不了的状况,原因是自己先前的尝试过程中,在hadoop 的bin 目录中使用 ./hadoop fs –put readme input ,而没有使用 ./hadoop fs –mkdir input率先创建input 这个文件夹,导致系统将readme 的内容写进input ,实际造成input 是个文件,而不是个目录,因此scala中一直提示文件找不到,多亏老师给点播了这个大错误,要不然,后面的工程整个无法进行。
Spark学起来相对比较轻松, 除了其本身具有和Hadoop理论知识第一段讲的如大数据,开源等诸多特点,其本身也是一款优秀的大数据存储分析框架,和hadoop 有着惊人的相似,如果不是业界专门给了这么两个长像不相同的概念,真想说一句“Spark就是Hadoop”,打开apache Spark学习官网,有这么一句很显眼的话“Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk”,业界喜欢拿“百倍Hadoop处理速度,亚十倍Hadoop处理代码”来盛赞Spark,可能因为是初学这两个专题技术的原因吧,对于Spark到底快在哪儿,数据处理代码到底少在哪儿,尚不能够分辨,要说快,倒是在spark的sbin目录启动start-all.sh 和stop-all.sh脚本的时候速度比hadoop 快,至于说数据处理代码少,那也只能说Spark 支持的scala语言人家本身代码量就很少,官网spark 实例一共支持三种运行方式,即Scala,Python,Java,以实例处理代码量由小到大排名:Scala<Python<Java,不过这并不代表代码量小,学习周期就小,Spark 和Hadoop 数据分析方面,熟优熟劣,熟好熟坏,可能真得不断深入的学习实践,才能慢慢体会得到。
Spark启动过程中包括两个进程,即Master 和Worker,Master 进程负责接收分配任务,Worker 负责处理各个子任务,当Worker将各个任务处理完成之后,将结果返回给Master.
2. 技术实践内容:
Spark sbin 目录各个启动脚本和关闭脚本的使用方法,主要包括的脚本,start-all.sh,stop-all.sh,spark-daemons.sh,start-master.sh,start-slave.sh.
Spark 配置文件比较简单,主要配置的文件仅为spark-env.sh和slaves,主要配置的参数项为四个,即JAVA_HOME,SCALA_HOME,HADOOP_HOME,SPARK_HOME,salves配置为默认的locolhost即可。
Spark bin 目录中启动spark-shell 运行scala 函数实例的方法,初步尝试的两个能用spark-shell 运行实例的方法:
scala> val textFile = sc.textFile("readme.txt")
scala> textFile.count()
统计一个文件中一共有多少行代码;
val linesWithSpark = textFile.filter(line => line.contains("Hello"))
过滤出文件中包含“Hello”的行数。
val file = spark.textFile("hdfs://localhost:9000/user/hadoop/input/readme.txt ")
val counts = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
counts.saveAsTextFile("hdfs://localhost:9000/user/hadoop/output/part-00000")
Spark中wordCount 的使用方法。
3. Spark 学习中遇到的主要问题:
使用spark.textFile("hdfs://localhost:9000/user/hadoop/input/readme.txt ")的过程中,出现了hadoop hdfs 文件系统访问不了的状况,原因是自己先前的尝试过程中,在hadoop 的bin 目录中使用 ./hadoop fs –put readme input ,而没有使用 ./hadoop fs –mkdir input率先创建input 这个文件夹,导致系统将readme 的内容写进input ,实际造成input 是个文件,而不是个目录,因此scala中一直提示文件找不到,多亏老师给点播了这个大错误,要不然,后面的工程整个无法进行。
相关文章推荐
- Hadoop 专题理论学习与技术实践
- 绝对干货:Spark核心技术系列学习课程和实践指导
- 防火墙技术专题[转贴,文章虽老,但技术上还是有可以学习的]
- 实习结束了,临走还捞了一票...和Jason聊了许多关于以后在校园技术实践以及学习的方法,宝贵经验,记录下来。
- DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术
- 【专题】学习游戏测试技术 揭秘其背后故事
- 前CCIE考官建议: CCIE技术理论学习建议
- 数据库开发技术与工程实践 学习笔记
- 大学生在校该如何平衡好学习理论和动手实践
- 电子技术学习实践DIY
- 电子技术学习实践DIY
- 一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 多层架构与应用系统设计原则
- [学习笔记]关于数据库连接池技术的理论知识(学习其他人的文章)
- 光线追踪技术的理论和实践(面向对象)
- 技术学习-以实践为导向
- 电子技术学习实践DIY
- COM interop技术理论/实践
- 从技术到做管理,角色的转变首先是一个学习的过程,其次是一个潜移默化、循序渐进的实践过程
- 光线追踪技术的理论和实践(面向对象)
- FLASH整站技术点分析和实践-第一期建站集体学习之一loadding