大数据
WQ同学
这个作者很懒,什么都没留下…
展开
-
hive 中 order by ,sort by ,distribute by ,cluster by 详解
1. order byorder by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。set hive.mapred.mode=nonstrict; (default value / 默认值)set hive.mapred.mode=strict;order by 和数据库中的O...原创 2019-01-01 22:41:31 · 2561 阅读 · 0 评论 -
spark从入门到放弃三十四:Spark Sql(7) JDBC
文章地址:http://www.haha174.top/article/details/2557791.简述Spark Sql 支持使用jdbc 从关系型数据库读取数据(比如mysql ),读取的数据依然用DataSet 表示,很方便地使用Spark core 提供的各种算子进行处理。 这里有一个经验之谈,实际上用Spark Sql 处理JDBC 的数据是非常有用的。比如说...原创 2018-04-22 07:13:38 · 2941 阅读 · 0 评论 -
spark从入门到放弃二十七:Spark 性能优化(10)shuffle 性能优化
文章地址:http://www.haha174.top/article/details/2512201 consolidationnew SparkConf().set(“spark.shuffle.consolidateFiles”,”true”) 是否开启shuffle block file 的合并 默认false 没有开启consolidation 机制的时候,shuffl...原创 2018-03-26 23:38:14 · 2974 阅读 · 0 评论 -
spark从入门到放弃二十六:Spark 性能优化(9)reduceByKey和groupByKey
文章地址:http://www.haha174.top/article/details/259354 举个例子val counts=pairs.reduceByKey(_+_)val counts=pairs.groupByKey().map(wordcounts=>(wordcounts._1,wordcounts_2.sum))如果能用reduceByKey那就用reduce...原创 2018-03-26 21:42:08 · 3960 阅读 · 0 评论 -
spark从入门到放弃二十五:Spark 性能优化(8)数据本地化
文章地址:http://www.haha174.top/article/details/255830 数据本地化对于spark job 性能 有着巨大的影响,如果数据以及要计算它的代码是在一起的那么性能会相当的高。但是如果数据和代码是分开的,那么其中之一必须到另外一方的机器上。通常来说移动代码到其他的节点,会比移动数据到其他的节点的速度要快的多,因为代码较小。spark也正是基于这个数据本地化的...原创 2018-03-26 21:08:06 · 2930 阅读 · 0 评论 -
spark从入门到放弃三十一:Spark Sql (4)数据源Parquet
文章地址:http://www.haha174.top/article/details/253452 项目源码:https://github.com/haha174/spark.git1.简介parquet 是面向分析型业务的列示存储格式. 列式存储比行式存储有哪些优势呢 1.可以跳过不符合条件的数据,只读取需要的数据,降低IO的数量。 2.压缩编码格式可以降低磁盘空间。由于同...原创 2018-04-01 16:31:55 · 3192 阅读 · 1 评论 -
spark从入门到放弃二十四:Spark 性能优化(7)广播共享变量
文章地址:http://www.haha174.top/article/details/254421假设现在有一个配置文件很大又100M.默认的情况下算子函数使用到的外部的数据,会拷贝到每一个task中,此时如果使用到的外部的数据很大的话,那么岂不是在各个节点都会占用大量的内存!而且会产生大量的网络传输,大量的网络通信造成性能的开销。 这种情况下就应该对外部大数据进行Broatcast 广播...原创 2018-03-25 22:16:28 · 2795 阅读 · 0 评论 -
spark从入门到放弃二十九:Spark Sql (2)Data Set与RDD进行转换
文章地址:http://www.haha174.top/article/details/253510 项目源码:https://github.com/haha174/spark.git1.简介为什么要把RDD转换成DataSet呢因为那样的话,我们就可以直接针对于HDFS等任何可以构建为RDD的数据,使用sparkSql进行查询操作了。这个功能是无比强大的。想象一下针对与HDFS的数据直...原创 2018-04-01 10:23:47 · 3609 阅读 · 0 评论 -
spark从入门到放弃二十八:Spark Sql (1)Data Set
文章地址:http://www.haha174.top/article/details/257834 项目源码:https://github.com/haha174/spark.git1.简介Spark Sql 是Spark 中的一个模块,主要是用于进行结构化数据处理。它提供的最核心的编程抽象,就是DataFrame。同时Spark Sql 还可以作为分布式sql 查询引擎。Sapr...原创 2018-03-31 18:34:45 · 3740 阅读 · 0 评论 -
spark从入门到放弃三十七:Spark Sql(10)自定义sql函数
文章地址:http://www.haha174.top/article/details/257703 自定义 SparkSql 的函数 下面给出一个示例 注册一个 ‘strLen’的函数 求某个字段的长度 sqlContext.udf.register("strLen",(str:String)=>str.length)如下的方式使用即可 val names...原创 2018-04-22 13:43:56 · 2944 阅读 · 0 评论 -
spark从入门到放弃三十八:Spark Sql(11)自定义sql函数进阶
文章地址:http://www.haha174.top/article/details/255951 本文针对上一篇博客介绍一个聚合函数的例子巩固一下sql 定义函数。 首先需要定义一个聚合函数class StringCount extends UserDefinedAggregateFunction{ //输入数据的类型 override def inputSchema: Str...原创 2018-04-22 14:42:34 · 2837 阅读 · 0 评论 -
spark从入门到放弃三十九:Spark Sql(12)SparkSql工作原理以及性能优化
文章地址:http://www.haha174.top/article/details/2570731工作原理1.大家都知道,只要在数据库类型的技术里面,比如,最传统的mysql,Oracle包括现在大数据领域的数据仓库如Hive ,他的基本Sql 执行的模型,都是类似的,首先生成一条SQL 语句的执行计划。例如Select name from names => 解析成从哪里去查...原创 2018-04-22 16:22:21 · 3199 阅读 · 0 评论 -
spark从入门到放弃四十五:Spark Streaming(5)详解StreamingContext
spark从入门到放弃四十五:Spark Streaming(5)详解StreamingContext原创 2018-04-29 22:06:45 · 4363 阅读 · 1 评论 -
spark从入门到放弃四十四:Spark Streaming(4)world count 开发
文章地址:http://www.haha174.top/article/details/2516931. 简介前三篇主要说了一些定义的东西本篇主要实现一个入门案例的world count 其实这个world count 和之前spark core 开发的world count 写法基本一样。2.安装ncyun install nc3. 开发下面...原创 2018-04-29 11:44:56 · 2784 阅读 · 0 评论 -
spark从入门到放弃四十八:Spark Streaming(8)基于kafka 的实时计算
spark从入门到放弃四十八:Spark Streaming(8)基于kafka 的实时计算原创 2018-05-06 12:59:51 · 2926 阅读 · 0 评论 -
spark从入门到放弃三十三:Spark Sql(6)hive sql 案例 查询分数大于80分的同学
文章地址:http://www.haha174.top/article/details/258176 有两张表 一个student_info 保存的是 学生的姓名 年龄 另一个是 student_scores 保存的是 学生的年龄和分数。现在将大于80分的学生的姓名,分数,年龄写入到一张表。 需要安装一个hive 可以参考:http://www.haha174.top/article...原创 2018-04-21 19:07:07 · 3893 阅读 · 1 评论 -
spark从入门到放弃四十三:Spark Streaming(3)与storm 对比
文章地址:http://www.haha174.top/article/details/2564861.storm简介Storm是一个分布式的,可靠的,容错的数据流处理系统。Storm集群的输入流由一个被称作spout的组件管理,spout把数据传递给bolt, bolt要么把数据保存到某种存储器,要么把数据传递给其它的bolt。一个Storm集群就是在一连串的bolt之间转换spout传...原创 2018-04-24 00:01:03 · 4153 阅读 · 1 评论 -
spark从入门到放弃四十二:Spark Streaming(2) 工作原理
文章地址:http://www.haha174.top/article/details/2564731.Spark Stream 简介Spark Stream是spark core Api 的一种扩展,他可以用于大规模,高吞吐量,容错的实时数据流处理。它支持从多种数据源读取数据,比如kafka ,flume,ZeroMQ 等等并且能够使用类似高阶函数的复杂算法来进行数据处理,比如ma...原创 2018-04-23 23:46:52 · 3701 阅读 · 0 评论 -
spark从入门到放弃四十一:Spark Streaming(1) 简介
文章地址:http://www.haha174.top/article/details/2519951.大数据实时计算介绍1.Spark Streaming 其实就是一种spark 提供的对于大数据进行实时计算的一种框架,他的底层其实也是之前提到的spark core 基本的计算模型,还是基于内存的大数据实时计算模型。而且他的底层的组件或者叫做概念其实最核心的还是RDD.只不过,针...原创 2018-04-23 22:45:48 · 2897 阅读 · 0 评论 -
spark从入门到放弃四十:hive on spark
知识背景(1)hive 是目前大数据领域,事实上的sql 标准。其底层默认是基于MapReduce实现的,但是由于MapReduce速度不够快。因此近几年,陆续出来了新的Sql 查询引擎。包括Spark Sql ,hive on tez ,hive on spark. Spark Sql 和hive on spark 是不一样的。spark sql 是Spark 自...原创 2018-04-22 17:11:05 · 4785 阅读 · 0 评论 -
spark从入门到放弃二十三:Spark 性能优化(6)提高并行度
文章地址:http://www.haha174.top/article/details/258063 在实际开发中,spark集群的资源不一定会被充分的利用到,所以尽量设置合理的并行度来充分的利用集群的资源。才能充分提高spark应用程序的性能。 spark会自动设置以文件作为输入源的RDD的并行度,依据其大小,比如hdfs就会给每一个block创建一个partition,也依据这个设置并行度...原创 2018-03-25 19:17:13 · 2892 阅读 · 0 评论 -
spark从入门到放弃二十二:Spark 性能优化(5)java 虚拟机垃圾回收调优
文章地址:http://www.haha174.top/article/details/259787背景如果在持久化RDD的时候持久化了大量的数据那么java 虚拟机在垃圾回收的时候就可能成为一个性能瓶颈。因为java虚拟机会定期的进行垃圾回收,此时会最总所有的java对象并且在垃圾回收时找到些不在使用的对象进行回收。 垃圾回收的性能开销,是根内存中对象的数量成正比的所以对于垃圾回收的性...原创 2018-03-25 18:49:04 · 3522 阅读 · 0 评论 -
spark从入门到放弃二十一:Spark 性能优化(4)对多次使用的RDD进行持久化或者checkpoint
文章地址:http://www.haha174.top/article/details/254892 如图在这里可以很清楚的看到对一个RDD前后进行了两次操作。在第一次的时候先计算出一个RDD然后计算出第二个RDD继续往后计算。 但是对第二次RDD操作在执行的时候,由于RDD数据在执行完成之后很有可能会被立即丢弃那么这个时候就需要重新计算第一个和第二个RDD了我们可以把第二个RDD的计...原创 2018-03-25 16:52:06 · 3434 阅读 · 0 评论 -
spark从入门到放弃十一: 内核架构深度剖析之执行流程
文章地址:http://www.haha174.top/article/details/251403 前10篇主要介绍到了spark action,算子等一些简答的demo 操作。那么那些操作是怎么在spark 中运行的呢。下面将进行逐步的介绍。图解:说明:1.首先会将编写的程序jar包上传到有spark 客户端的机器上通过spark-submit提交到集群上面取运行。...原创 2018-03-18 13:16:26 · 2974 阅读 · 0 评论 -
spark从入门到放弃十: top N
文章地址:http://www.haha174.top/article/details/255827 项目源码:https://github.com/haha174/spark.git 这篇主要通过两个例子介绍一下top N.1.对文本文件内的数字,取最大的前3个。下面给出一个top文本 3 5 6 7 1 4 5 6 9 0 3 下面对这个文本取出最大的前三...原创 2018-03-17 20:31:26 · 3779 阅读 · 1 评论 -
spark从入门到放弃九: 二次排序
文章地址:http://www.haha174.top/article/details/254163 项目源码:https://github.com/haha174/spark.git 假设 现在有一个文件里面有一组数据 1 5 2 4 3 6 1 3 2 1 实现一个需求。先按照第一列排序如果第一列相同按照第二列排序。 1.自定义二次排序的key 要实现 Ordered ...原创 2018-03-17 16:32:45 · 3000 阅读 · 0 评论 -
hadoop 集群搭建
前面说到使用单机搭建hadoop 伪分布式集群,这篇文章讲的是怎么搭建hadoop集群。 这里我是用3台虚拟机 192.168.1.221 spark1 192.168.1.222 spark2 192.168.1.223 spark3 如果不会搭建虚拟机的同学可以参考这篇文章 http://www.haha174.top/article/details/255136一.配置jdk原创 2018-01-21 00:03:37 · 2775 阅读 · 0 评论 -
spark 集群安装
文章地址:http://www.haha174.top/article/details/253943 首先需要安装jdk 不会可以参考这里(http://www.haha174.top/article/details/259178) 安装scala(懒得写了 不会的话 自行百度) 安装 hadoop(http://www.haha174.top/article/details/258原创 2018-01-21 22:42:21 · 3029 阅读 · 0 评论 -
分布式资源调度系统 YARN
文章地址:http://www.haha174.top/article/details/2597071.YARN产生背景1. hadoop 1.x 时: MapReduce:Master/Slave 架构 1个JobTracker带多个TaskTracker JobTracker: 负责 资源调度和作业调度 TaskTracker: 定期向jt 汇报本节点的健康状况、资源...转载 2017-12-17 09:34:02 · 5235 阅读 · 0 评论 -
shell 命令操作hdfs
简介本编文章主要讲述shell 命令操作hdfs 主要讲述几个简单常用的shell 命令 如 ls get mkdir rm put 前提需要安装hdfs 作者用的是虚拟机搭建的伪分布式环境,如果没有搭建环境的可以参考这里http://www.haha174.top/article/details/251072 首先使用jps 确保 hdfs 都启动 hadoop fs原创 2017-12-13 08:04:44 · 7451 阅读 · 0 评论 -
hadoop-hdfs 伪分布式搭建
简介本篇文章主要介绍的是hadoop伪分布式安装hdfs. 首先要确保 jdk 配置成功了 (如果不会可以参考这篇文章http://www.haha174.top/article/details/259178) 然后下载hadoop我使用的是 hadoop-2.6.0-cdh5.7.0.tar.gz版本 使用的环境是centos7 的虚拟机 如果不会搭建虚拟机可以参考这篇文章(http原创 2017-12-12 23:51:28 · 3006 阅读 · 0 评论 -
spark从入门到放弃十二: 深度剖析宽依赖与窄依赖
文章地址:http://www.haha174.top/article/details/256658 根据hello world 的例子介绍一个什么是宽依赖和窄依赖。 窄依赖:英文全名,Narrow Dependence.什么样的情况,叫做窄依赖呢?一个RDD对他的父RDD只有简单的1对1的依赖关系。也即是说。RDD的每个partition.仅仅依赖于父RDD中的一个partition。...原创 2018-03-18 14:17:46 · 2983 阅读 · 0 评论 -
spark从入门到放弃十三:spark 三种提交模式
文章地址:http://www.haha174.top/article/details/257573 一.Standalone 模式基于spark自己的 Master-Worker 集群。 就是之前的 spark-submit 提交的方式这里不再详细叙述。如果不清楚可以看这篇文章 如果要切换成第二种,第三种模式。将之前的submit脚本添加上–master 参数 设置为yar...原创 2018-03-18 17:37:11 · 5026 阅读 · 0 评论 -
spark从入门到放弃十四:SparkContext原理剖析
文章地址:http://www.haha174.top/article/details/257766 1.TaskScheduler createTaskScheduler .这里会做三件事情。 1.1 创建TaskSchedulerImpl 他其实就是TaskScheduler(后面在做详细的分析) TaskSchedulerImpl 底层主要基于SparkDep...原创 2018-03-18 18:24:27 · 3166 阅读 · 0 评论 -
spark从入门到放弃二十:Spark 性能优化(3)优化数据结构
文章地址:http://www.haha174.top/article/details/258576 要较少内存的消耗,除了使用高效的序列化库之外还有一个很重要的事情,就是优化数据结构。从而避免java语法特性中所导致的额外的内存开销,比如基于指针的java的数据结构以及包装类型。 那么如何优化数据结构呢 1优先使用数组以及字符串,而不是集合类。也就是说优先用array,而不是ArrarL...原创 2018-03-25 16:17:36 · 2885 阅读 · 1 评论 -
spark从入门到放弃十九:Spark 性能优化(2)高性能序列化类库
文章地址:http://www.haha174.top/article/details/254551在任何分布式系统里面序列化都是扮演一个很重要的角色。如果使用序列化的技术,在执行序列化的时候很慢,或者序列化之后数据量还是很大。那么会让分布式应用程序的性能下降很多。所以进行spark性能优化的第一步。就是进行序列化的性能优化。spark自身默认在一些地方会进行序列化,比如Shuffle 。...原创 2018-03-25 14:28:51 · 3930 阅读 · 0 评论 -
spark从入门到放弃十八:Spark 性能优化(1)诊断内存消耗
文章地址:http://www.haha174.top/article/details/255038一.首先程序在运行的时候 内存都花费在那里呢?1.每个java对象,都有一个对象头,会占用16个字符。主要是包括了一些对象的元信息,比如执指向他的类指针。如果一个对象本身很小,不如就包括了一个int类型的field,那么它的对象头实际上比对象自己还要大。 2.java String 对象,...原创 2018-03-25 12:49:41 · 3376 阅读 · 0 评论 -
spark从入门到放弃八: 基于排序的worldcount
项目源码:http://www.haha174.top/article/details/252203 文章地址:https://github.com/haha174/spark.git world前面已经介绍过了那么来介绍一个稍微那么高级一丢丢的基于排序的worldcount。 其实就是在worldcount 的基础上增加了一个 key-value 反转。和排序 下面给出java 示例...原创 2018-03-13 22:22:07 · 3115 阅读 · 0 评论 -
spark从入门到放弃十七:master 状态转化
文章地址:http://www.haha174.top/article/details/251642 在Master.scala源码下进行模式匹配,匹配到DriverStateChanged,如果driver的状态是错误,完成,被杀掉,失败,那么就移除driver。在removeDriver方法中,用scala的find高阶函数去找到driverId对应的driver,如果找到了,Some样...转载 2018-03-19 22:28:05 · 2797 阅读 · 0 评论 -
spark从入门到放弃十六:master 注册机制
文章地址:http://www.haha174.top/article/details/258040 本文主要介绍一下master 的注册流程。 1 worker. 当worker 启动之后,就会主动的向master 进行注册。master 接收到worker 的注册请求之后,会将状态为DEAD的worker 过滤掉。对于状态为UNKNOWN的worker 节点清理掉worker...原创 2018-03-19 22:14:24 · 2886 阅读 · 0 评论