Spark 专题理论学习与技术实践
来源:互联网 发布:社交网络图 软件 编辑:程序博客网 时间:2024/05/16 15:56
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 专题理论学习与技术实践
- VLAN技术理论学习
- 网易的Spark技术实践
- spark streaming原理与实践
- Hadoop与Spark技术入门
- 由理论学习到技术学习的转变
- hive与hadoop、spark集成方案实践
- Spark Streaming学习与实践(1)
- Spark Streaming学习与实践(2)
- Spark Streaming学习与实践(3)
- spark-mllib-lda 实践与说明
- AMM评估管理实践与技术实践
- AMM评估管理实践与技术实践
- IT技术与管理实践
- 网络攻防技术与实践
- SaltStack技术入门与实践
- 基于Spark的公安大数据实时运维技术实践
- java 学习写架构必会几大技术点
- 黑马程序员-java内存管理
- 超级台阶
- 单高斯背景建模原理及代码实现
- Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
- Spark 专题理论学习与技术实践
- 生产者与消费者
- MySQL查询对NULL的处理
- dandande 忧伤
- ant 实现批量打包android应用
- 黑马程序员-Java传值与传引用
- Android App组件之ListFragment
- Linux(ubuntu)下30天自制os学习引导,第3.2天(读取u盘上189kB的内容 )
- Mysql常用命令行大全