spark
a11a2233445566
活泼
展开
-
hive进行input transform解析
通过SerDes的方式对一下数据进行Hive的存储和查询操作: 0^^Hadoop^^America^^5000|8000|12000|level8^^male1^^Spark^^America^^8000|10000|15000|level9^^famale2^^Flink^^America^^7000|8000|13000|level10^^male3^^Hadoop^^A原创 2017-01-23 09:38:39 · 521 阅读 · 0 评论 -
spark sql和DataFrame本质
一:Spark SQL与DataFrame1, Spark SQL之所以是除了Spark Core以外最大的和最受关注的组件,原因是:a) 处理一切存储介质和各种格式的数据(您同时可以方便的扩展Spark SQL的功能来支持更多类型的数据,例如Kudu);b) Spark SQL把数据仓库的计算能力推向了新的高度,不仅是无敌的计算速度(Spark SQL比Shark快了至少一个数量级,原创 2017-01-20 18:08:33 · 758 阅读 · 0 评论 -
spark性能优化八
一:使用Tungsten功能1, 如果想让您的程序使用Tungsten的功能,可以配置:spark.shuffle.manager=tungsten-sort2, DataFrame中自动开启了Tungsten功能; 二:Tungsten-sort base shuffle writer内幕1, 写数据在内存足够大的情况下是写到Page里面,在Page中有一条条的Recor原创 2017-01-20 18:05:27 · 247 阅读 · 0 评论 -
spark性能调优七
一:“钨丝计划”产生的本质原因1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的满足了人们对分布式系统处理性能的渴望,但是有Spark是采用Scala+ Java语言编写的所以运行在了JVM平台,当然JVM是一个绝对伟大的平台,因为JVM让整个离散的主机融为了一体(网络即OS),但是JVM的死穴原创 2017-01-20 18:02:45 · 225 阅读 · 0 评论 -
spark性能调优六
一:“钨丝计划”产生的本质原因1, Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型极大的满足了人们对分布式系统处理性能的渴望,但是有Spark是采用Scala+ Java语言编写的所以运行在了JVM平台,当然JVM是一个绝对伟大的平台,因为JVM让整个离散的主机融为了一体(网络即OS),但是JVM的死穴原创 2017-01-20 17:59:48 · 244 阅读 · 0 评论 -
spark性能调优五
一:Shuffle性能调优1, 问题:Shuffle output file lost?真正的原因是GC导致的!!!如果GC尤其是Full GC产生通常会导致线程停止工作,这个时候下一个Stage的Task在默认情况下就会尝试重试来获取数据,一般重试3次每次重试的时间为5s,也就是说默认情况下15s内如果还是无法抓到数据的话,就会出现Shuffle output file lost等情原创 2017-01-20 17:58:36 · 255 阅读 · 0 评论 -
spark运行原理和RDD解密
一:spark运行原理 Spark 是一个分布式(很多机器,每个机器负责一部部分数据),基于内存(内存不够可以放在磁盘中),特别适合于迭代计算的计算框架。 基于内存(在一些情况下也会基于磁盘),优先考虑放入内存中,有更好的数据本地性。如果内存中放不完的话,会考虑将数据 或者部分数据放入磁盘中。 擅长迭代式计算是spark 的真正精髓。基于磁盘的迭代计算比hadoop快 10原创 2016-10-11 14:16:13 · 354 阅读 · 0 评论 -
spark性能优化四
一:性能优化之数据本地性1, 数据本地性对分布式系统的性能而言是一件最为重要的事情(之一),程序运行本身包含代码和数据两部分,单机版本一般情况下很少考虑数据本地性的问题(因为数据在本地),但是对于单机版本的程序由于数据本地性有PROCESS_LOCAL和NODE_LOCAL之分,所以我们还是尽量的让数据处于PROCESS_LOCAL;Spark作为分布式系统更加注意数据本地性,在Spark中数原创 2017-01-20 17:54:01 · 313 阅读 · 0 评论 -
spark性能优化三
一:Spark程序数据结构的优化1, Java的对象:对象头是16个字节(例如指向对象的指针等元数据信息),如果对象中只有一个int的property,则此时会占据20个字节,也就是说对象的元数据占用了大部分的空间,所有在封装数据的时候尽量不要使用对象!例如说使用JSON格式来封装数据;2, Java中基本的数据类型会自动的封箱操作,例如int会自动变成Integer,这回额外增加对象头的原创 2017-01-20 17:51:45 · 249 阅读 · 0 评论 -
spark性能优化二
一:Task性能优化1, 慢任务的性能优化:可以考虑减少每个Partition处理的数据量,同时建议开启spark.speculation,2, 尽量减少Shuffle,例如我们要尽量减少groupByKey的操作,因为groupByKey会要求通过网络拷贝(Shuffle)所有的数据,优先考虑使用reduceByKey,因为reduceByKey会首先reduce locally;再原创 2017-01-20 17:49:35 · 277 阅读 · 0 评论 -
漫谈RDD
开篇:spark各种库,spark sql,spark machice learning,等这么多库底层都是封装的RDD。意味着1:RDD本身提供了通用的抽象,2:spark现在有5个子框架,sql,Streaming,流式处理,机器学习,图计算,spark R。可以根据具体领域的内容建模,建第6个库,第7个库。必须掌握spark的这个通用抽象基石-RDD.1:RDD,基于工作集的分布式函原创 2017-01-18 13:24:41 · 513 阅读 · 0 评论 -
Spark Streaming源码解读之Job动态生成和深度思考
一:Spark Streaming Job生成深度思考1. 做大数据例如Hadoop,Spark等,如果不是流处理的话,一般会有定时任务。例如10分钟触发一次,1个小时触发一次,这就是做流处理的感觉,一切不是流处理,或者与流处理无关的数据都将是没有价值的数据,以前做批处理的时候其实也是隐形的在做流处理。2. JobGenerator构造的时候有一个核心的参数是jobScheduler, j原创 2016-08-17 15:59:36 · 357 阅读 · 0 评论 -
spark性能优化一
一:Spark性能优化核心基石1, Spark是采用Master-Slaves的模式进行资源管理和任务执行的管理:a) 资源管理:Master-Workers,在一台机器上可以有多个Workers;b) 任务执行:Driver-Executors,当在一台机器上分配多个 Workers的时候那么默认情况下每个Worker都会为当前运行的应用程序分配一个Executor,但是我们可以修改原创 2017-01-20 17:39:52 · 278 阅读 · 0 评论 -
spark Broadcast 内幕解密
一:Broadcast彻底解析1, Broadcast就是将数据从一个节点发送到其它的节点上;例如Driver上有一张表,而Executor中的每个并行执行的Task(100万个Task)都要查询这张表,那我们通过Broadcast的方式就只需要往每个Executor把这张表发送一次就行了,Executor中的每个运行的Task查询这张唯一的表,而不是每次执行的时候都从Driver获得这张表!原创 2017-01-20 17:31:22 · 252 阅读 · 0 评论 -
Shuffle 中六大令人费解的问题
第一大问题:什么时候进行 Shuffle 的 fetch 操作?Shuffle 是在一边进行 Mapper 端 map 操作的同时,一边进行 Reducer 端的 shuffle 和 reduce 操作吗?错误的观点是:Spark 是一边 Mapper 一边 Shuffle 的,而 Hadoop MapReduce 是先完成 Mapper 然后才进行 Reducer 的 Shuffle。正确的观点原创 2017-02-28 23:31:13 · 3220 阅读 · 0 评论 -
Spark Streaming源码解读之Receiver在Driver的精妙实现全生命周期彻底研究和思考
一:Receiver启动的方式设想1. Spark Streaming通过Receiver持续不断的从外部数据源接收数据,并把数据汇报给Driver端,由此每个Batch Durations就可以根据汇报的数据生成不同的Job。2. Receiver属于Spark Streaming应用程序启动阶段,那么我们找Receiver在哪里启动就应该去找Spark Streaming的启动。3原创 2016-08-17 16:00:43 · 551 阅读 · 0 评论 -
spark sql on hive配置及其使用
一: spark on hive 配置1. 切换到spar的conf目录下使用vi hive-site.xml创建hive-site.xml. 并填写如下内容 hive.metastore.uris thrift://master:9083 thrift URI for the remote metastore.Used by原创 2017-01-20 18:10:43 · 1028 阅读 · 0 评论 -
spark sql下使用parquet最佳实战
一:Spark SQL下的Parquet使用最佳实践1, 过去整个业界对大数据的分析的技术栈的Pipeline一般分为以下两种方式:a) Data Source->HDFS->MR/Hive/Spark(相当于ETL)->HDFS Parquet->Spark SQL/Impala->Result Service(可以放在DB中,也有可能被通过JDBC/ODBC来作为数据服务使用);b原创 2017-01-20 18:13:54 · 506 阅读 · 0 评论 -
spark sql下parquet内幕解密
一:Spark SQL下的Parquet意义再思考1, 如果说HDFS是大数据时代分布式文件系统存储的事实标准的话,Parquet则是整个大数据时代文件存储格式的事实标准。2, 速度更快:从使用Spark SQL 操作普通文件CSV和Parquet文件的速度对比上来看,绝大多数情况下使用Parquet会比使用CSV等普通文件速度提升10倍左右(在一些普通文件系统无法再Spark上成功运原创 2017-01-20 18:16:35 · 410 阅读 · 0 评论 -
spark 读写oracle常见问题分析
基于Spark SQL读写Oracle 的简单案例分析常见问题1 概述本文主要内容包含Spark SQL读写 Oracle表数据的简单案例,并针对案例中比较常见的几个问题给出解决方法。最后从常见的java.lang.ClassNotFoundException(无法找到驱动类)的异常问题出发,分析相关的几种解决方法,以及各个解决方法之间的异同点。2 案例中比较常见问题及其解原创 2017-01-23 17:09:12 · 4025 阅读 · 0 评论 -
Spark SQL网站搜索综合案例实战
以京东为例找出搜索平台上用户每天搜索排名5名的产品,The hottest! 用户登录京东网站,在搜索栏搜索的时候,将用户每天搜索排名前5名的商品列出来。 一:生成模拟京东用户搜索的测试数据。l SparkSQLUserlogsHottest.log测试数据文件包括时间、用户id、商品、地点、设备信息10000条数据 二:根据测试数据实现搜索平台上用户每天搜索排原创 2017-01-23 17:02:29 · 1245 阅读 · 0 评论 -
spark 窗口函数row_number练习以及用spark core实现
常用于对数据进行分组并取每个分组中的TopN数据。示例数据如下:class1 90class2 56class1 87class1 76class2 88class1 95class1 74class2 87class2 67class2 771、直接使用Spark core中的api来实现分组取topN功能: 首先将数据原创 2017-01-23 16:59:12 · 4895 阅读 · 0 评论 -
为什么说coarseGrainedExecutorBackend要通信的对象driverUrl是driverEndpoint而不是ClientEndpoint
背景:集群启动的时候启动了master和worker用户提交程序时:1. 首先new spark context,其中会new dagScheduler,taskSchedulerImpl和sparkDeploySchedulerBackend,并start taskSchedulerImpl。2. 在taskSchedulerImpl start时,会start schedulerB原创 2017-01-23 16:52:52 · 1323 阅读 · 0 评论 -
怎样升级spark集群到更新的版本?
怎样升级spark集群到更新的版本?-IMF-李明说明:· 事实上升级spark很简单,因为spark并不是传统意义上‘安装’在你的集群上,你只需要:下载并解压合适的版本,进行一定的配置,并修改SPARK_HOME等环境变量(后两点可选);· 本文以升级spark 1.6.0到1.6.1为例来说明如何升级;· 本文中的spark安装在 VMware虚拟机中的ubuntu里;原创 2017-01-23 16:49:12 · 5142 阅读 · 1 评论 -
spark streaming广告点击系统需求分析与技术架构
广告点击系统实时分析:广告来自于网站或者移动App等,广告需要设定在具体的广告位,当用户点击广告的时候,一般都会通过JavaScript、Ajax或者Socket往后台发送点击的日志数据,在这里我们是要基于Spark Streaming做实时在线统计,那么数据就需要放进消息系统(Kafka)中,我们的Spark Streaming应用程序就会去Kafka中Pull数据过来进行计算和消费,并把计原创 2017-01-23 14:06:08 · 700 阅读 · 0 评论 -
hue3.11搭建步骤
搭建环境centos6.5 64如果想在ubuntu开发的话,请参考这里面的文档http://gethue.com/how-to-build-hue-on-ubuntu-14-04-trusty/ 所需的安装包 jdk8 hue-3.11.0.tgz 链接:链接:http://pan.baidu.com/s/1czgMey 密码:h1fo 安装以下的安装包原创 2017-01-23 09:27:17 · 1673 阅读 · 0 评论 -
开发spark使用的pom文件
有朋友反映开发spark 没有需要的文件夹-4.0.0SparkAppsSparkApps 1.0-SNAPSHOT-2.11.82.1.02.8.21.2.149.2.5.v201411122.171.8原创 2017-01-22 11:16:15 · 4051 阅读 · 0 评论 -
通过DataSet进行电商交互式分析系统中特定时段段访问次数TopN
package com.dt.spark.sparksqlimport org.apache.log4j.{Level, Logger}import org.apache.spark.SparkConfimport org.apache.spark.sql.types.{DoubleType, StringType, StructField, StructType}impo原创 2017-01-22 10:47:15 · 422 阅读 · 0 评论 -
Spark Streaming源码解读之Driver容错安全性
一:容错安全性1. ReceivedBlockTracker负责管理Spark Streaming运行程序的元数据。数据层面2. DStream和JobGenerator是作业调度的核心层面,也就是具体调度到什么程度了,从运行的考虑的。DStream是逻辑层面。3. 作业生存层面,JobGenerator是Job调度层面,具体调度到什么程度了。从运行的角度的。谈Driver容错你要原创 2016-08-17 16:02:18 · 969 阅读 · 0 评论 -
spark graphx图计算常用操作实战
package com.test.spark.apps.graphimport org.apache.log4j.{Level, Logger}import org.apache.spark.{SparkContext, SparkConf}import org.apache.spark.graphx._import org.apache.spark.rdd.RDD原创 2017-01-21 12:33:16 · 1205 阅读 · 0 评论 -
hive精通必会掌握技能以及实战
Hive中Join电影店铺系统案例和性能优化、Index和Bucket案例实战*/DROP TABLE users;DROP TABLE ratings;DROP TABLE movies;CREATE TABLE users(UserID BigInt, Gender String, Age Int, Occupation String, Zipcode String) PART原创 2017-01-21 12:25:53 · 1543 阅读 · 0 评论 -
SparkStreaming+Kafka+Spark SQL+TopN+Mysql 电商广告点击综合案例
原创 2017-01-21 12:00:50 · 1306 阅读 · 0 评论 -
基于案例一节课贯通Spark Streaming流计算框架的运行源码
一:案例实战演示:packagecom.dt.spark.sparkstreamingimport org.apache.spark.SparkConfimport org.apache.spark.sql.Rowimport org.apache.spark.sql.hive.HiveContextimport org.apache.spark.sql.types.{In原创 2016-08-17 13:07:51 · 383 阅读 · 0 评论 -
checkpoint彻底解密
一:Checkpoint到底是什么?1, Spark在生产环境下经常会面临Tranformations的RDD非常多(例如一个Job中包含1万个RDD)或者具体Tranformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考虑对计算结果数据的持久化;2, Spark是擅长多步骤迭代,同时擅长基于Job的复用,这个时候如果能够对曾经计算的过程产生的数据原创 2017-01-20 15:02:11 · 298 阅读 · 0 评论 -
cacheManager彻底解密
一:CacheManager分析:1, CacheManager管理的缓存,而缓存可以是基于内存的缓存,也可以是基于磁盘的缓存;2, CacheManager需要通过BlockManager来操作数据;3, 当Task运行的时候会调用RDD的compute方法进行计算,而compute方法会调用iterator方法:/** * Internal method to this R原创 2017-01-20 14:48:47 · 2203 阅读 · 0 评论 -
spark Runtime内幕解密
一:再论Spark集群部署1, 从Spark Runtime的角度来讲由五大核心对象:Master、Worker、Executor、Driver、CoarseGrainedExecutorBackend;2, Spark在做分布式集群系统设计的时候:最大化功能独立、模块化封装具体独立的对象、强内聚松耦合。 3,当Driver中的SparkContext初始化的时候会原创 2017-01-18 14:00:14 · 418 阅读 · 0 评论 -
从物理执行角度理解spark job
一:再次思考pipeline即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式:1, f(record),f作用于集合的每一条记录,每次只作用于一条记录;2, f(records),f一次性作用于集合的全部数据;Spark采用是是第一种方式,原因:1, 无需等待,可以最大化的使用集群的计算资源;2, 减少OOM的发生;3, 最大化的有利原创 2017-01-18 13:37:38 · 272 阅读 · 0 评论 -
RDD依赖关系解密
1,窄依赖是指每个父RDD的一个Partition最多被子RDD的一个Partition所使用,例如map、filter、union等都会产生窄依赖;2,宽依赖是指一个父RDD的Partition会被多个子RDD的Partition所使用,例如groupByKey、reduceByKey、sortByKey等操作都会产生宽依赖 总结:如果父RDD的一个Partition被一个子RDD的原创 2017-01-18 13:33:09 · 518 阅读 · 0 评论 -
Spark 内核构架
Spark 内核构架前言:我们为什么要这样写程序?为何要这样运行程序?以及程序运行背后发生了什么? 关于Spark Runtime Driver:运行程序时候,具有Main方法,并且创建了SparkContext的一个对象,他是程序运行调度的调度器,在程序运行中,Driver端的主要代码为SparkConf和SparkContext两部分如下图所示:原创 2017-01-18 13:00:22 · 1324 阅读 · 0 评论 -
HA下的Spark集群工作原理解密
默认情况下,Standalone的Spark集群是Master-Slaves架构的集群模式,由一台master来调度资源,这就和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题。如何解决这个单点故障的问题呢?Spark提供了两种方案:基于文件系统的单点恢复(Single-Node Recovery with Local File system)和基于zookee原创 2017-01-18 12:56:44 · 962 阅读 · 0 评论