Spark小课堂Week1 Hello Spark

看到Spark这个词,你的第一印象是什么?

  • 这是一朵"火花",官方的定义是Spark是一个高速的、通用的、分布式计算系统!!!

  • 用途:进行大数据计算,这里要注意,大数据是一个相对概念,并没有绝对的量化指标,一般我们认为在业务特定场景要求下,一台机器处理不了的数据都能称为大数据。

  • 前身:大数据计算的开山鼻祖Hadoop,Spark和Hadoop的主要区别就是更快,更通用。

  • 功能:Spark内核设计的非常通用,具有很高的扩展性,目前已经发展出了sql、streaming、机器学习、图计算等组件。

  • 架构:核心架构还是mapreduce,这个模型更加考虑计算的可靠性,对于极端追求性能的场景并不适合。

我们为什么要学Spark

  • 从整个技术发展来看,分布式技术是趋势,逆水行舟,不进则退,学习分布式技术可以让我们不落后于时代。

  • Spark定位非常通用,而且其设计思路比较前沿,是一个学习分布式系统的捷径。

  • Spark代码本身非常简洁高效,其核心代码只有3W多行,是一个非常好的代码学习教材。

从哪里入手去学Spark

  • 传统方法:看教程、文档,尤其想要说明的是Spark而代码本身质量很高,所以代码和注释也是非常好的教材。

  • 实战:搭个小环境跑一跑,尤其结合日志和监控信息等进行分析。

  • 切入:推荐从SparkStreaming切入,因为我们平时开始一般都是应用程序,而Streaming是Spark官方开发的一个应用程序,通过学习,我们可以了解到开发一个Spark应用程序的方方面面。

问题

  1. 我想知道SPARK与HADOOP之间的比较,在不同应用场景中如何选择
    目前来看两者定位不太相同,HADOOP包含了HDFS、MapReduce、YARN三个组件,覆盖了分布式文件存储、计算、资源调度三个领域,SPARK定位仅是计算,所以是对其中MapReduce组件的替代。

  2. spark的起步价和应用场景以及怎么解决这些难题的
    由于分布式计算的特性,涉及到不同机器间的通讯问题,所以会有一定的初始成本,比如序列化、Shuffle等,Spark由于大量采用了内存处理,相比于Hadoop,起步价问题已经有了很大的缓存。但对于容量和时效不需要分布式计算的场景,肯定仍然是Oracle等传统技术更快。

关于

小课堂是在公司进行内部交流的一系列主题,偏基础,但是比较零散,持续更新中。

Spark小课堂Week1 Hello Spark的更多相关文章

  1. Spark小课堂Week7 从Spark中一个例子看面向对象设计

    Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...

  2. Spark小课堂Week6 启动日志详解

    Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解. 日志详解 今天主要遍历下Strea ...

  3. Spark小课堂Week5 Scala初探

    Spark小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式 ...

  4. Spark小课堂Week4 从控制台看Spark逻辑结构

    Spark小课堂Week4 从控制台看Spark逻辑结构 层级关系: 从监控控制台,我们可以看到如下关系: 一个 Job 包含 n Stage 一个 Stage 包含 n Task Job0解决什么问 ...

  5. Spark小课堂Week3 FirstSparkApp(Dataframe开发)

    Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lamb ...

  6. Spark小课堂Week3 FirstSparkApp(RDD开发)

    Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Qu ...

  7. Spark小课堂Week2 Hello Streaming

    Spark小课堂Week2 Hello Streaming 我们是怎么进行数据处理的? 批量方式处理 目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发.这种方式的好处是逻辑简单,不影响 ...

  8. spark集群配置以及java操作spark小demo

    spark 安装 配置 使用java来操作spark spark 安装 tar -zxvf spark-2.4.0-bin-hadoop2.7.tgz rm spark-2.4.0-bin-hadoo ...

  9. 个人写spark小测试

    写脚本生成类似文件 java 代码 封装类 package day0327; import java.util.UUID; public class data { private String ip; ...

随机推荐

  1. Fedora下载地址

    http://fedoraproject.org/zh_CN/get-fedora-all

  2. PHP.10-PHP实例(一)-简单的计算器

    PHP-简单的计算器 [PHP语法详解] PHP在web开发中的应用 PHP编写步骤 1.编写一个后缀名为.php文件2.上传到Web服务器的文档根目录下3.通过浏览器访问Web服务器管理下的PHP文 ...

  3. Org-mode 任务添加提醒

    org-mode中的约会日程有提醒功能,这样设置就行: ;; ;;; 提醒 ;; (require 'appt) ;; (appt-activate t);启用约会提醒 ;; (setq appt-d ...

  4. Python Thread

    lock 对象: acquire():负责取得一个锁.如果没有线程正持有锁,acquire方法会立刻得到锁.否则,它闲意态等锁被释放. 一旦acquire()返回,调用它的线程就持有锁. releas ...

  5. 关于使用vss版本管理工具中的sln,suo文件作用

    Visual Studio.NET采用两种文件类型(.sln和.suo)来存储特定于解决方案的设置,它们总称为解决方案文件.为解决方案资源管理器提供显示管理文件的图形接口所需的信息 从而在每次继续开发 ...

  6. poj 1848 树形dp

    思路:表示我很弱,这个想不出dp方程,参考网上代码 #include<iostream> #include<algorithm> #include<cstring> ...

  7. hdu 4571 floyd+动态规划

    思路: 我们先求一遍floyd,将各点的最短距离求出,然后将点按si的升序排序.dp[i][k]表示第i个点在第j时间所获得的最大效益,那么 dp[i][k]=max(dp[ i ][ k ]  , ...

  8. HTTP状态码解读

    1xx:信息 消息 描述 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols 服务器转换协 ...

  9. 解决Jquery和prototype的兼容问题

    1. 引入jquery 时,将jquery库在 prototype之前引入: 2.使用时: jQuery.noConflict();  // 这个要在 之前加上 3.初始化加载 (这里我试过,可以有两 ...

  10. GitHub使用教程for VS2012

    转自:http://www.cnblogs.com/yc-755909659/p/3753355.html 一直以来都想使用Git来管理自己平时积累的小代码,就是除了工作之外的代码了.有时候自己搞个小 ...