1. spark简介
2. spark是什么?
3. spark能代替hadoop吗?
不完全对
因为我们只能使用spark core代替mr做离线计算,数据的存储还是要依赖hdfs
spark+hadoop的组合,才是未来大数据领域最热门的组合,也是最有前景的组合!
4. spark的特点
速度
容易使用
一站式解决方案
可以运行在任意的平台
5. spark的缺点
jvm的内存overhead太大,1g的数据通常需要消耗5g的内存 (project tungsten 正试图解决这个问题 )
不同的spark app之间缺乏有效的共享内存机制(project tachyon 在试图引入分布式的内存管理,这样不同的spark app可以共享缓存的数据)
6. spark vs mr
6.1 mr的局限性
6.2 spark解决了mr中的那些问题?
抽象层次低,需要手工编写代码来完成,使用上难以上手
只提供两个操作,map和reduce,表达力欠缺
一个job只有map和reduce两个阶段
中间结果也放在hdfs文件系统中(速度慢)
延迟高,只适用batch数据处理,对于交互式数据处理,实时数据处理的支持不够
对于迭代式数据处理性能比较差
==因此,hadoop mapreduce会被新一代的大数据处理平台替代是技术发展的趋势,而在新一代的大数据处理平台中,spark目前得到了最广泛的认可和支持==
7. spark的版本
8. spark单机版的安装
准备安装包spark-2.2.0-bin-hadoop2.7.tgz
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -c /opt/ mv spark-2.2.0-bin-hadoop2.7/ spark
修改spark-env.sh
export java_home=/opt/jdk export spark_master_ip=uplooking01 export spark_master_port=7077 export spark_worker_cores=4 export spark_worker_instances=1 export spark_worker_memory=2g export hadoop_conf_dir=/opt/hadoop/etc/hadoop
配置环境变量
#配置spark的环境变量 export spark_home=/opt/spark export path=$path:$spark_home/bin:$spark_home/sbin
启动单机版spark
start-all-spark.sh
查看启动
http://uplooking01:8080
9. spark分布式集群的安装
配置spark-env.sh
[root@uplooking01 /opt/spark/conf] export java_home=/opt/jdk #配置master的主机 export spark_master_ip=uplooking01 #配置master主机通信的端口 export spark_master_port=7077 #配置spark在每个worker中使用的cpu核数 export spark_worker_cores=4 #配置每个主机有一个worker export spark_worker_instances=1 #worker的使用内存是2gb export spark_worker_memory=2g #hadoop的配置文件中的目录 export hadoop_conf_dir=/opt/hadoop/etc/hadoop
配置slaves
[root@uplooking01 /opt/spark/conf] uplooking03 uplooking04 uplooking05
分发spark
[root@uplooking01 /opt/spark/conf] scp -r /opt/spark uplooking02:/opt/ scp -r /opt/spark uplooking03:/opt/ scp -r /opt/spark uplooking04:/opt/ scp -r /opt/spark uplooking05:/opt/
分发uplooking01上配置的环境变量
[root@uplooking01 /] scp -r /etc/profile uplooking02:/etc/ scp -r /etc/profile uplooking03:/etc/ scp -r /etc/profile uplooking04:/etc/ scp -r /etc/profile uplooking05:/etc/
启动spark
[root@uplooking01 /] start-all-spark.sh
10. spark高可用集群
先停止正在运行的spark集群
修改spark-env.sh
#注释以下这两行内容 #export spark_master_ip=uplooking01 #export spark_master_port=7077
添加内容
export spark_daemon_java_opts="-dspark.deploy.recoverymode=zookeeper -dspark.deploy.zookeeper.url=uplooking03:2181,uplooking04:2181,uplooking05:2181 -dspark.deploy.zookeeper.dir=/spark"
分发修改的[配置
scp /opt/spark/conf/spark-env.sh uplooking02:/opt/spark/conf scp /opt/spark/conf/spark-env.sh uplooking03:/opt/spark/conf scp /opt/spark/conf/spark-env.sh uplooking04:/opt/spark/conf scp /opt/spark/conf/spark-env.sh uplooking05:/opt/spark/conf
启动集群
[root@uplooking01 /] start-all-spark.sh [root@uplooking02 /] start-master.sh
11. 第一个spark-shell程序
spark-shell --master spark://uplooking01:7077 #spark-shell可以在启动时指定spark-shell这个application使用的资源(总核数,每个work上使用的内存) spark-shell --master spark://uplooking01:7077 --total-executor-cores 6 --executor-memory 1g #如果不指定 默认使用每个worker上全部的核数,和每个worker上的1g内存
sc.textfile("hdfs://ns1/sparktest/").flatmap(_.split(",")).map((_,1)).reducebykey(_+_).collect
12. spark中的角色
master
worker
spark-submitter ===> driver
13. spark提交作业的大体流程
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。
如对本文有疑问, 点击进行留言回复!!
ScrollView和RecyclerView的滑动事件处理
配置JAVA环境+安装Android Studio全过程+踩坑记录
Android P Camera2当SD卡被拔出来自动切换到内部存储
android 多个edittext 判空监听 让Button动态是否可点击
Android开源项目滚轮选择器WheelPicker的基本用法总结
网友评论