
Hadoop及Spark学习
lzw2016
年轻出来浪!
展开
-
大数据之Hadoop学习《一》——认识HDFS
title: 大数据之Hadoop学习<一>————认识HDFSdate: 2018-11-12 20:31:36tags: Hadoopcategories: 大数据toc: true点击查看我的博客:Josonlee’s Blog文章目录分布式文件系统 HDFSHDFS特点名称解释HDFS容错能力HDFS 副本存储机制HDFS读写文件流程写入文件读取文件操作HDFS...原创 2018-11-18 17:14:10 · 357 阅读 · 0 评论 -
LearningSpark(3):常用RDD操作
键值对RDD上的操作 隐式转换shuffle操作中常用针对某个key对一组数据进行操作,比如说groupByKey、reduceByKey这类PairRDDFunctions中需要启用Spark的隐式转换,scala就会自动地包装成元组 RDD。导入 org.apache.spark.SparkContext._即可没啥意思,就是记着导入import org.apache.spark.Spar...原创 2019-03-06 09:55:07 · 324 阅读 · 0 评论 -
LearningSpark(4):Spark持久化操作
持久化Spark的一个重要特性,对RDD持久化操作时每个节点将RDD中的分区持久化到内存(或磁盘)上,之后的对该RDD反复操作过程中不需要重新计算该RDD,而是直接从内存中调用已缓存的分区即可。当然,持久化适用于将要多次计算反复调用的RDD。不然的话会出现RDD重复计算,浪费资源降低性能的情况巧妙使用RDD持久化,甚至在某些场景下,可以将spark应用程序的性能提升10倍。对于迭代式算法和...原创 2019-03-06 09:55:53 · 538 阅读 · 0 评论 -
LearningSpark(5):Spark共享变量理解
共享变量Spark又一重要特性————共享变量worker节点中每个Executor会有多个task任务,而算子调用函数要使用外部变量时,默认会每个task拷贝一份变量。这就导致如果该变量很大时网络传输、占用的内存空间也会很大,所以就有了 共享变量。每个节点拷贝一份该变量,节点上task共享这份变量spark提过两种共享变量:Broadcast Variable(广播变量),Accumula...原创 2019-03-06 09:56:39 · 229 阅读 · 0 评论 -
LearningSpark(7):SparkSQL创建及DataFrame学习
DataFrame说白了就是RDD+Schema(元数据信息),spark1.3之前还叫SchemaRDD,以列的形式组织的分布式的数据集合Spark-SQL 可以以 RDD 对象、Parquet 文件、JSON 文件、Hive 表,以及通过JDBC连接到其他关系型数据库表作为数据源来生成DataFrame对象如何创建Spark SQL的入口同Spark Core要先创建SparkCont...原创 2019-03-06 09:58:08 · 254 阅读 · 0 评论 -
LearningSpark(8):RDD如何转化为DataFrame
为啥要转换?DataFrame可以借助sql语句处理,简单快捷。向hdfs的数据只能创建RDD,转化为DataFrame后就可以使用SQL进行查询方法方法一:基于反射推断适合已知RDD的 Schema ,这个基于方法的反射可以让你的代码更简洁。其通过Case class 定义了表的 Schema。Case class 的参数名使用反射读取并且成为了列名。Case class 也可以是嵌套的...原创 2019-03-06 09:58:42 · 1170 阅读 · 0 评论 -
LearningSpark(9):解析SparkSQL的数据来源(parquet、json、csv、jdbc等)
以下源码在 org.apache.spark.sql.DataFrameReader/DataFrameWriter中format指定内置数据源无论是load还是save都可以手动指定用来操作的数据源类型,format方法,通过eclipse查看相关源码,spark内置支持的数据源包括parquet(默认)、json、csv、text(文本文件)、 jdbc、orc,如图def for...原创 2019-03-06 10:01:01 · 506 阅读 · 0 评论 -
Spark使用JDBC将DataFrame数据写入mysql
spark foreachPartition 把df 数据插入到mysql转载自:http://www.waitingfy.com/archives/4370,确实写的不错import java.sql.{Connection, DriverManager, PreparedStatement} import org.apache.spark.sql.SparkSessionimpo...原创 2019-03-09 20:57:03 · 3808 阅读 · 1 评论 -
eclipse如何导入Spark源码方便阅读
最近想看下spark sql的源码,就查了些相关文章。很多都是IDEA怎么导入的,还有就是谈到了自己编译spark源码再倒入,但我还没有强到修改源码的地步,所以跳过编译直接导入阅读源码,过程如下下载spark源码从 https://github.com/apache/spark 下载你需要的spark版本,如图当然,也方便eclipse中 Ctrl+点击 来跳转到源码查看。具体是Atta...原创 2019-03-09 21:00:35 · 1350 阅读 · 0 评论 -
一张图快速回顾总结Hive方方面面
放在百度脑图上了,http://naotu.baidu.com/file/cdcd76d878f210e43a91b24d4254abed?token=c3839e44e93c9a5e原创 2019-03-12 11:26:30 · 201 阅读 · 0 评论 -
MapReduce、Hive、Spark中数据倾斜问题解决归纳总结
数据倾斜是什么总的来说,你集群运行时发现MR或者Hive卡在99%不动时,或者Spark运行时出现OOM异常(OutOfMemoryError),或者成功执行但就是耗时过久时,既要考虑是否出现了数据倾斜。数据倾斜就是某些key对应的数据分化不均,导致部分reduce处理数据量过大,以至于其他reduce都执行完了它还在运行。查看web UI、日志文件:看是否出现map和reduce任务执行...原创 2019-04-13 16:05:14 · 1538 阅读 · 0 评论 -
Hive中Create table... as 和 Create table ... like 的区别和使用注意
CTAS建表语句(CREATE TABLE AS SELECT)使用查询创建并填充表,select中选取的列名会作为新表的列名(所以通常是要取别名)会改变表的属性、结构,比如只能是内部表、分区分桶也没了目标表不允许使用分区分桶的,FAILED: SemanticException [Error 10068]: CREATE-TABLE-AS-SELECT does not supp...原创 2019-07-30 19:24:36 · 26729 阅读 · 0 评论 -
Hive 插入动态分区表时遇到的一些坑
Hive 插入动态分区的问题insert into table xxx partition(xxxx)select ...使用动态分区时首先不要忘记的一些配置:是否开启动态分区 hive.exec.dynamic.partition动态分区是否使用严格模式 hive.exec.dynamic.partition.modeMR总共可创建最大分区数 hive.exec.max.dyna...原创 2019-07-30 21:22:00 · 16886 阅读 · 1 评论 -
Spark2.4.0和Scala2.11集成Kudu1.8.0遇到的坑
最近做实时数仓用到了spark和kudu两个组件,因为资料少得可怜,折腾了一番终于是搞定了,在这里记录下期间遇到的坑依赖选择参考kudu官网:https://kudu.apache.org/docs/developing.html#_kudu_integration_with_spark官网上提及了几点关键信息Use the kudu-spark_2.10 artifact if us...原创 2019-08-08 16:24:43 · 1620 阅读 · 0 评论 -
Spark中如何向已存在Schema新增StructFields
向已有的Schema新增StructFields就是StructType的add方法,实际业务中需要动态向DataFrame中新增列时,可以获取最新的配置然后动态更新Schema/** * Creates a new [[StructType]] by adding a new field with no metadata. * * val struct = (new StructTyp...原创 2019-08-08 17:07:24 · 2427 阅读 · 2 评论 -
LearningSpark(2):spark-submit脚本和可选参数
提交应用的脚本和可选参数可以选择local模式下运行来测试程序,但要是在集群上运行还需要通过spark-submit脚本来完成。官方文档上的示例是这样写的(其中表明哪些是必要参数):./bin/spark-submit \ --class <main-class> \ --master <master-url> \ --deploy-mode <dep...原创 2019-03-06 09:54:10 · 668 阅读 · 0 评论 -
LearningSpark(6):基于Standalone和Yarn下Spark的内核架构剖析
文章目录Standalone模式下内核架构分析Application 和 spark-submitDriverSparkContext作用TaskScheduler功能MasterWorker和Executor聊聊TaskDAGScheduler功能Spark on Yarn模式下的不同之处yarn-cluster运行模式yarn-client运行模式Standalone模式下内核架构分析Ap...原创 2019-02-14 14:11:55 · 217 阅读 · 0 评论 -
Hadoop及Spark学习路线及资源收纳
title: Hadoop及Spark学习路线及资源收纳date: 2018-11-18 16:19:54tags: Hadoopcategories: 大数据toc: true点击查看我的博客:Josonlee’s Blog前言本人大数据专业方向,收集学习一些相关文章,汇总如下。有些资源来源网络,出处不明,如有错误请告知,谢谢资源不断更新中。。。Hadoop18.11.1...原创 2018-11-18 17:16:54 · 666 阅读 · 4 评论 -
大数据之Hadoop学习(环境配置)——Hadoop伪分布式集群搭建
title: Hadoop伪分布式集群搭建date: 2018-11-14 15:17:20tags: Hadoopcategories: 大数据点击查看我的博客: Josonlee’s Blog文章目录前言准备伪分布式特点JDK 下载和环境配置配置虚拟机网络环境配置Hadoop的环境下载Hadoop上传并解压安装配置Hadoop环境变量修改hadoop配置文件配置hadoop用户免...原创 2018-11-18 14:59:19 · 1546 阅读 · 1 评论 -
Spark本地安装及Linux下伪分布式搭建
title: Spark本地安装及Linux下伪分布式搭建date: 2018-12-01 12:34:35tags: Sparkcategories: 大数据toc: true个人github博客:Josonlee’s Blog文章目录前期准备本地安装基于hadoop伪分布式搭建启动spark安装过程可能遇到的问题spark完全分布集群搭建前期准备spark可以在Linux上...原创 2018-12-01 14:21:21 · 706 阅读 · 1 评论 -
MapReduce:详解Shuffle过程
转自:http://langyu.iteye.com/blog/992916个人感觉这篇讲shuffle过程对于初学者来说,确实很详尽,不得不推荐一番。你可以点击下载该篇文章的PDFShuffle分为分区(Partition)、排序(Sort)、分组(Group)、结合(Combine)四个过程,这篇文章文字较多感觉有些地方讲的不是很清楚,后续我也打算结合代码写一篇我自己对shuffle过程的...转载 2018-12-01 15:23:40 · 480 阅读 · 0 评论 -
【MapReduce详解及源码解析(一)】——分片输入、Mapper及Map端Shuffle过程
title: 【MapReduce详解及源码解析(一)】——分片输入、Mapper及Map端Shuffle过程date: 2018-12-03 21:12:42tags: Hadoopcategories: 大数据toc: true点击查看我的博客:Josonlee’s Blog版权声明:本文为博主原创文章,未经博主允许不得转载(https://blog.youkuaiyun.com/lzw20...原创 2018-12-03 21:20:21 · 2157 阅读 · 0 评论 -
大数据之Hadoop学习——动手实战学习MapReduce编程实例
文章目录一、MapReduce编程实例1.自定义对象序列化需求分析报错:Exception in thread &amp;amp;amp;quot;main&amp;amp;amp;quot; java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.17.10:9000/workspace/flowStatistics/output, expected: file:///解答一、正常处理即可,不过在...原创 2018-12-09 15:30:21 · 7869 阅读 · 5 评论 -
【推荐系统入门】推荐系统理论初探 及 豆瓣推荐应用举例分析
title: 推荐系统理论初探date: 2018-12-20 20:32:55tags: 推荐系统toc: truecategories: ML我的博客: Josonlee’s Blog推荐系统理论推荐系统所需的元数据要推荐物品或内容的元数据,例如关键字,基因描述等;系统用户的基本信息,例如性别,年龄等用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评...原创 2018-12-20 21:16:51 · 2756 阅读 · 1 评论 -
Spark1.x和2.x如何读取和写入csv文件
看很多资料,很少有讲怎么去操作读写csv文件的,我也查了一些。很多博客都是很老的方法,还有好多转来转去的,复制粘贴都不能看。下面我在这里归纳一下,以免以后用到时再费时间去查通过sc.textFileval input = sc.textFile(&amp;quot;test.csv&amp;quot;)val result = input.map { line =&amp;amp;gt; val reader = new CSVRea..原创 2019-01-01 21:28:27 · 6945 阅读 · 4 评论 -
【向Linux迁移记录】Deepin Linux下快速Hadoop完全分布式集群搭建
还是因为迁移到Deepin上开发的缘故,原来在win10上搭建的hadoop集群用不上了,所以这次重新搭一下。我之前写过一篇hadoop伪分布式搭建的文章,完全分布式集群的搭建和这差不多,不同点在于如何构建集群,以及配置文件上有些许不同。另外,我前几天写了Deepin下java、大数据开发环境配置【一】是这次博客的前提,讲了如何在Deepin Linux下安装java、VMware以及VMware...原创 2019-01-23 21:56:44 · 1349 阅读 · 2 评论 -
Deepin Linux 安装启动scala报错 java.lang.NumberFormatException: For input string: "0x100" 解决
Scala下载及安装因为我是要开发Spark程序所以才使用scala的,版本适配问题可以避免之后可能遇到稀奇古怪的问题,开发文档开头就有如下介绍Spark runs on Java 8+, Python 2.7+/3.4+ and R 3.1+. For the Scala API, Spark 2.4.0 uses Scala 2.11. You will need to use a co...原创 2019-01-23 22:17:09 · 5190 阅读 · 3 评论 -
分享几个自认为不错的学习Spark的视频资源(百度云)
有段时间没写大数据相关的博客了,主要是最近一边学着Spark,一边手上做着基于Hadoop的实现一个web端推荐系统的项目。想写点东西,整理了一会儿发现写的不咋地就没发出来,这次就放几个Spark的学习视频资源吧,是百度云链接啊学习 Scala 进击大数据 Spark 生态圈:https://pan.baidu.com/s/1Ld35QE4xfsOQ9o6qFwxL0A 密码:detmSp...原创 2019-01-18 22:26:23 · 17235 阅读 · 25 评论 -
【向Linux迁移记录】基于Hadoop集群的Hive安装与配置详解
基于Hadoop集群的Hive安装配置Hive可以安装在任一节点或集群之外,我这里是计划装在Master节点上。其次Hive也就是在hadoop上加了一层SQL接口,便于通过简单的SQL语言翻译成MapReduce作业。而hdfs的特性是可追加不可修改,但数据库表是可以修改删除的,所以Hive的所存储的数据应当分成两部分,表的元数据外部存储以便修改,表中数据存储在hdfs上即可。hive是...原创 2019-01-24 18:02:45 · 558 阅读 · 1 评论 -
【向Linux迁移记录】Deepin Linux下Spark本地模式及基于Yarn的分布式集群环境搭建
文章目录Spark本地模式及基于Yarn的分布式集群环境搭建为集群配置Spark History Server【向Linux迁移记录】Deepin下java、大数据开发环境配置【一】【向Linux迁移记录】Deepin下Python开发环境搭建【向Linux迁移记录】Deepin Linux下快速Hadoop完全分布式集群搭建【向Linux迁移记录】基于Hadoop集群的Hive安装与配...原创 2019-01-31 17:28:49 · 671 阅读 · 0 评论 -
Spark RDD如何作为参数传递给函数
示例如下,给出的是分组topN问题的解法,把RDD作为函数参数传入//分组TopN def groupTopN(data: RDD[String],n:Int): RDD[(String,List[Int])] = { //先不考虑其他的 //分组后类似 (t003,(19,1090,190,109)) val groupParis = data.map { x =&...原创 2019-02-13 17:45:40 · 3224 阅读 · 2 评论 -
Structured Streaming中如何通过schema_of_json方法动态解析Kafka传入的JSON数据的Schema
Structured Streaming中如何解析Kafka传入的JSON数据的Schema在实际生产中消息中的字段可能会发生变化,比如多加一个字段什么的,但是Spark程序又不能停下来,所以考虑在程序中不是自定义好Schema,而是通过Kafka输入消息中json串来infer Schema。当然,也可以通过广播变量来更新配置文件,定期更新Schema,这也是一种写法在之前Spark Str...原创 2019-08-09 14:39:35 · 2994 阅读 · 0 评论