zoukankan      html  css  js  c++  java
  • 《OD学spark》20160925 Spark Core

    一、引言

    Spark内存计算框架

    中国Spark技术峰会

    十二场演讲

    大数据改变世界,Spark改变大数据

    大数据:

    以Hadoop 2.x为主的生态系统框架(MapReduce并行计算框架)

    存储数据、处理数据

    分布式

    Spark:

    类似于MapReduce的另外一种分布式计算框架

    核心:

    数据结构:RDD,集合List[T]

     

    MapReduce

    最大的痛点:

    IO性能瓶颈,也是所有分布式计算框架的痛点

    (1)磁盘IO,

    input(disk) -> map -> DISK(local)->reduce->output(DISK)

    (2)网络IO,

    shuffle

    2015年Spark Submit

    阿里巴巴和databricks

    全球,每天使用Spark处理数据最大的公司

    数据量: 1PB = 1024TB

    腾讯:集群规模 8000台

    Spark:内存计算框架

    为什么要将中间结果存储到磁盘中呢?要进行写呢?我放入内存不行吗?

    input(disk) -> flatMap -> memory->map->memory->groupByKey->memory->map->output(DISK)

    分析:

    (1)将中间处理的数据,存储在内存中

    (2)提供很多的Operation,上百种

    list.map(_ * 2).filter(_ % 5 == 1).map(_ + 100)

    对于迭代计算、机器学习

    Scala->Java->JVM

    作业:

    假期期间,MapReduce Shuffle过程,好好再理解

    Spark处理分析数据:

    (1)读取输入数据

    Core: Rdd

    SQL: DataFrame

    Streaming:DStream

    (2)process data

    Core: rdd#xxx

    SQL: df#xxx

    Streaming:dstream#xxx

    里面的方法基本上95%以上都是高阶函数,依据你自己的需求,定义操作

    (3)ouputdata

    resultRdd.saveAsTextFile("")

    resultDF.write.jdbc.(url, tableName, props)

    resultDStream.foreach(RedisHBaseRDBMS)

    钨丝计划:三阶段

    腾讯:技术发展路线

    服务器,上百台,产生数据

    运维人员

    维护上百台集群的产生的日志文件

    产品人员提供的需求,需要进行数据分析

    (1)MySQL+Python

    每台机器都有MySQL数据库

    使用Python对数据进行清洗,加载到MySQL表中

    各自统计分析->聚合->格子分析统计

    (2)HADOOP+Hive

    HDFS(分布式存储)

    MapReduce

    Hive

    HiveQL

    分区表/year/month/day/number

    Hive + Python

    如何集成?

    (3)HADOOP+SPARK

    二、Spark简介

    设置Hive为本地模式,进行测试

    HiveQL转换为MapReduce的本地模式

    set hive.exec.mode.local.auto

    set hive.exec.mode.local.auto  = true

    select session_id, count(1)

    from db_hive.page_views

    group by session_id 

    limit 5

    使用SparkCore

    val rdd = sc.textFile("/path")

    val sessionIdRdd = rdd.map(line => line.split(" ")).mpa(x => (x(2), 1)).reduceByKey(_ + _)

    sessionIdRdd.take(5)

    使用SparkSQL

    val df = sqlContext.sql("

    select session_id, count(1)

    from db_hive.page_views

    group by session_id

    limit 5

    ");

    sqlContext.cacheTable("db_hive.page_views")

    df.show()

    DSL语句

    val df = sqlContext.sql("select * from db_hive.page_views")

    df.groupBy("session_id")

    Core/Spark SQL/Streaming/Graphx/MLlib/R/StructStreaming(2.0)

    JAR

    处理的数据

    HDFS/Hive/HBase/ES/JSON/JDBC

    Spark程序运行模式

    本地模式,

    集群模式:YARN、Mesos(分布式资源管理框架)、Standalone集群、EC2

    云存储技术总监陈超

    Tachyon李浩源

    三、Spark学习网站

    (1)官方文档

    http://spark.apache.org/docs/1.6.2/

    (2)源码

    https://github.com/apache/spark

    导入IDEA

    (3)官方博客

    http://databricks.com/blog

    英文

     

  • 相关阅读:
    psql: FATAL: index "pg_opclass_oid_index" contains unexpected zero page at block 0 以及错误 rm: cannot remove ‘base/90112/95992_fsm’: Structure needs cleaning
    rabbitmq centos 7.4 主备安装,加入主节点失败Error: unable to perform an operation on node 'rabbit@mq2'. Please see diagnostics information and suggestions below.
    Centos 7 查看显卡型号
    ORA-600 16703 SYS.TAB$表被删除
    linux orcal启动
    windows 下redis配置一主两从三哨兵模式以及springboot集成
    Spring定时任务service无法注入问题
    web缓存欺骗
    Automate Cache Poisoning Vulnerability
    bugbounty
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5905976.html
Copyright © 2011-2022 走看看