Spark初探

摘要

鉴于标题不知道起什么比较好,因此就叫做“Spark初探”。在这篇博客当中,主要介绍什么是Spark,Spark的安装以及管理界面,Spark的应用场景。后续会有关于Python Spark的应用等以及在工作中使用到Spark场景,希望这篇博客能起到抛砖引玉的作用,欢迎各路神仙指导。

Spark

Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark拥有Hadoop的MapReduce的优点,但不同的是,Spark使用内存运算技术,能在资料尚未写入磁盘,Job中间输出结果可以保存在内存中,从而不需要读写HDFS,因此Spark能够更好地使用与数据挖掘与机器学习等需要MapReduce的算法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Docker+Spark

平常在工作中已经使用了Docker了,然后突发奇想,能不能在Docker安装Spark,安装一个简单的集群。下图是运行的Spark容器,其中包括一个master节点以及同一个work节点。
在这里插入图片描述
访问50070端口:在这里插入图片描述
访问7080端口(即spark的8080端口)
在这里插入图片描述
在此顺便汇总一下Spark的几个重要的端口:

50070:HDFSwebUI的端口号
8485:Journalnode默认的端口号
9000:非高可用访问数rpc端口
8020:高可用访问数据rpc
8088:yarn的webUI的端口号
8080:master的webUI,Tomcat的端口号
7077:spark基于standalone的提交任务的端口号
8081:worker的webUI的端口号
18080:historyServer的webUI的端口号
4040:application的webUI的端口号
2181:zookeeper的rpc端口号
9083:hive的metastore的端口号
60010:Hbase的webUI的端口号
6379:Redis的端口号
8080:sparkwebUI的端口号

在此通过docker-compose命令去编排Spark集群,关于docker-compose用法可以参考我的另一篇博客:Docker Compose用法

创建docker-compose.yml文件,编辑内容如下:

version: "3"
 
services:
  master:
    image: singularities/spark
    command: start-spark master
    hostname: master
    ports:
      - "6066:6066"
      - "7070:7070"
      - "8080:8080"
      - "50070:50070"
  worker:
    image: singularities/spark
    command: start-spark worker master
    environment:
      SPARK_WORKER_CORES: 1
      SPARK_WORKER_MEMORY: 2g
    links:
      - master

完成之后可以在docker-compose.yml当前文件夹下执行:

docker-compose up -d

最后成功安装spark。

应用场景

  1. Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数较多,所需读取的数据量越大,收益越大;数据量小但是计算密集度较大的场合,收益相对较小。
  2. 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。
  3. 数据量不是特别大,但是要求实时统计分析需求。

满足以上条件的均可采用Spark技术进行处理,在实际应用中,目前大数据在互联网公司主要应用在广告、报表、推荐系统等业务上,在广告业务方面需要大数据做应用分析、效果分析、定向优化等,在推荐系统方面则需要大数据优化相关排名、个性化推荐以及热点点击分析等。另外在知乎上搜到一个关于Spark不适用的应用场景的问题:有哪些不适合Spark的应用场景

总结

目前对于Spark还是一头雾水,可能因为在工作当中没有遇到具体的能够应用spark的场景。另一方面,要学好spark,还是要从GFS,BigTable以及MapReduce谷歌三大论文入手,然后了解关系型数据库等。在此感觉与目前工作中使用到的深度学习做计算机视觉任务并没有太大的联系,后续慢慢做大数据云计算的知识积累吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值