自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Hadoop常用命令大全

1. 单独启动和关闭hadoop服务功能 命令 启动名称节点 hadoop-daemon.sh start namenode 启动数据节点 hadoop-daemons.sh start datanode slave 启动secondarynamenode hadoop-daemon.sh start secondarynamenode 启动resour...

2019-07-20 11:08:03 441

原创 HDFS架构设计及副本放置策略

HDFS架构设计及副本放置策略HDFS主要由3个组件构成,分别是NameNode、SecondaryNameNode和DataNode,HSFS是以master/slave模式运行的,其中NameNode、SecondaryNameNode 运行在master节点,DataNode运行slave节点。NameNode和DataNode架构图NameNode(名称节点)...

2019-07-20 10:50:09 218

原创 HBase全面解读

HBase简介及其在大数据生态圈的位置HBase简介HBase是一个分布式的、面向列的开源数据库 来源于googlBigtable HBase在Hadoop之上提供了类似于Bigtable的能力(是基于Hadoop的HDFS进行存储) HBase不同于一般的关系数据库,它适合非结构化数据存储 Bigtable是什么 Bigtable是压缩的、高性能的、高可扩展性的、基于Googl...

2019-07-20 10:27:00 209

原创 (15)使用checkpoint进行故障恢复

用过Spark Streaming的应该都比较了解checkpoint机制。对于Spark Structured Streaming假如存在聚合函数,join等操作的时候实际上也是要维护中间状态的,这种情况下就需要开启checkpoint。当然,即使没有非状态的算子,由于Structured Streaming是自己管理offset的,不会将offset提交到kafka或者zk,所以为了恢复的时...

2019-07-20 09:18:24 6433

原创 (14)监控管理流式查询

管理流查询流查询的管理操作主要是类是StreamingQueryManager类。该对象可以通过SparkSession获得,预留的主要操作如下:最最重要的就是增加和移除Listener,然后供我们获取每个批次处理的数据具体信息。可以通过listener获取的信息如下:StreamingQuery对象在查询启动的时候被创建,可以用来监控管理查询,该对象也可以按照上...

2019-07-20 09:18:00 368

原创 (13)不支持的操作

不支持的操作有些DataFrame / Dataset的操作是Streaming DataFrames / Datasets不支持的。 其中一些如下。,流Datasets不支持多个流聚合(即流DF上的聚合链)。,流数据集不支持Limit 和取前N行。,不支持流dataset/dataframe的Distinct 操作。,只有在有聚合操作且是Complete 输出模式,流数据集才...

2019-07-20 09:17:49 346

原创 (12)join操作

Structured streaming同时支持流dataframe/dataset和流datafram/dataset及静态的dataframe/dataset之间的join。实际上与静态dataset的join就是生产种常用的维表join。Flink本身是不支持的。流join的结果是立即生成的,这个类似于流聚合操作。所有支持的join类型,流dataset之间的join和流datase...

2019-07-20 09:17:38 304

转载 生产Flume源码导入IDEA方式

下载flume-ng-1.6.0-cdh5.7.0-src.tar.gz下载地址:http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.7.0-src.tar.gzwin安装好maven-3.3.9解压flume-ng-1.6.0-cdh5.7.0-src.tar.gz并进入解压路径编译:mvn clean compi...

2019-07-20 09:17:25 635

原创 (11)流式去重

数据在网络中由采集到最终处理结束时会存在一条数据在某一个点被重复接受处理的。比如,kafka支持的是至少一次写语义。因此,当写数据到kafka的时候,有些记录可能重复。比如,如果kafka重复发一个消息,该消息一经被broker接收并写入文件但是并没有应答,这种就可能重复。由于kafka的此种写语义,structured streaming不能阻止该种类型数据重复。因此,一旦写入成功,可以假设查询...

2019-07-19 19:00:06 1025

原创 (10)任意状态操作

很多使用案例需要比聚合更高级的状态操作。例如,在很多案例中,你必须跟踪来自于事件数据流的会话操作。为了处理这种会话机制,必须存储任意类型的数据作为状态,同时每次触发使用数据流事件对状态做任意的状态操作。从spark2.2开始,可以使用mapGroupsWithState和更强大操作flatMapGroupsWithState。两个操作都允许你对分组的datasets使用自定义代码去更新自定义状态。...

2019-07-19 17:20:33 227

原创 (9)处理延迟的数据和watermark

基本概念事件时间顾名思义就是嵌入在数据事件内部的时间。对很多应用程序来说,可能希望按照事件时间进行处理。例如,你想统计lot设备每分钟产生事件的个数,那么你肯定希望用数据产生的时间,而不是spark接收到数据的时间。可以做如下类比,每个设备中产生的数据就是表中的一行,然后事件时间就是该行里的一个列值。这时候就可以使用基于窗口的聚合函数基于事件时间列进行分组聚合,每个时间窗口就是一个组,每行可以属...

2019-07-19 17:11:50 643

原创 (8)事件时间和窗口操作

使用Structured Streaming基于事件时间的滑动窗口的聚合操作是很简单的,很像分组聚合。在一个分组聚合操作中,聚合值被唯一保存在用户指定的列中。在基于窗口的聚合的情况下,针对row事件时间的每个窗口维护聚合值。拿简单的wordcount操作来说,希望以10min窗口计算,每五分钟滑动一次窗口。也即,12:00 - 12:10, 12:05 - 12:15, 12:10 - 12:...

2019-07-19 16:36:07 675

原创 (7)Foreach详解

Foreach详解Foreach操作允许我们对输出数据做任何操作。使用该操作必须要实现ForeachWriter接口,该接口的方法会在每次触发有结果数据输出的时候调用。后面会给出详细的说明。这里先说一下注意事项。writer必须是可序列化的,因为他会被序列化然后发送到executor执行。 open,process,close这三个方法都会在executor端调用。 仅当open函数被...

2019-07-19 13:43:42 289

原创 (6)整合kafka使用案例

KafkaSource简单操作主要是定阅kafka的testtopic,分组统计之后,输出到consolesink。val df = spark.readStream.format("kafka").option("kafka.bootstrap.servers", "Luffy.OnePiece.com:9092").option("subscribe", "test").lo...

2019-07-19 13:38:15 260

原创 (5)整合kafka

1.版本要求要求kafka broker版本0.10.0 或者更高版本。工程里面需要引入下面的包:<dependency><groupId>org.apache.spark</groupId><artifactId>spark-sql-kafka-0-10_2.11</artifactId>&...

2019-07-19 13:18:55 367

原创 (4)Trigers详解

流式查询的触发器设置定义流式数据处理的时间,查询是作为具有固定批处理间隔的微批量查询还是作为连续处理查询来执行。 以下是支持的各种触发器。默认触发器如果没有显示的制定triger,默认情况下查询会以微批模式进行查询处理,当前批次处理完之后立即产生下个批次。df.writeStream .format("console") .start()2.固定间隔微批查询...

2019-07-19 12:18:27 420

原创 (3)输出模式详解

由于查询的方式和业务需求的不同,会产生不同的输出模式,在这里主要是有三种输出模式:A)Append mode(default):仅仅从上次触发计算到当前新增的行会被输出到sink。仅仅支持行数据插入结果表后不进行更改的query操作。因此,这种方式能保证每行数据仅仅输出一次。例如,带有Select,where,map,flatmap,filter,join等的query操作支持append模式...

2019-07-19 09:48:23 1005

原创 (2)source和sink详解

前面第一小节也提到了,Structured Streaming会增量的从source中读取数据,映射成一张表,对该表进行增量的查询分析,然后组合中间状态,再把结果输出到结果表,然后刷到外部存储系统sink。本小节主要是详细讲解source 和sink。1. source目前支持的内置source有:1) File Source从给定的目录读取数据,目前支持的格式有text...

2019-07-19 09:29:55 31733

原创 (1)StructuredStreaming简介

一,概述Structured Streaming是一个可扩展和容错的流处理引擎,并且是构建于sparksql引擎之上。可以用处理静态数据的方式去处理你的流计算。随着流数据的不断流入,Sparksql引擎会增量的连续不断的处理并且更新结果。可以使用DataSet/DataFrame的API进行 streaming aggregations, event-time windows, stream...

2019-07-18 19:51:43 515

原创 Review(13)

1)Linux命令获取addid=20的所有的记录并存储到access-20.log a)awk grep b) >> >2) RDD 算子 实现p分组 对addid求和 并写入mysql a)日志解析 提取所需的字段 用reduceByKey b) coalesce(如果分区数太多,改变partiti...

2019-07-17 19:53:54 108

原创 Review(12)

1 数据倾斜 Shuffle MR:reduce Spark:task 100task 1-2task ===>执行时间拉长 能跑完 跑不出来==》重跑 打散 random ...

2019-07-17 18:28:59 104

原创 Review(11)

1.小文件 删除 合并 普通文本 复杂的storage Format:ORC/parquet ==>Code :MapReduce/Spark(EXTDS) 设定阈值,筛出需要合并的文件 input /1.txt...

2019-07-17 16:45:25 70

转载 cdh安装部署

CDH5.16.1集群企业真正离线部署一.准备工作1.离线部署主要分为三块:a.MySQL离线部署b.CM离线部署c.Parcel文件离线源部署2.规划:节点 MySQL部署组件 Parcel文件离线源 CM服务进程 大数据组件 hadoop001 MySQL Parcel Activity Monitor NN RM D...

2019-07-11 19:10:28 1824

转载 Azkaban

大数据场景中调度的作用:以ETL为例大数据场景中,较为常见的一个ETL流程:RDBMS ===Sqoop===> Hadoop ==Sqoop==> RDBMS/NoSQL/…完成上述场景需要经历3个过程:数据抽取 01:00 3h ==> 凌晨1点开始数据抽取,需要3个小时 数据处理 04:00 4h ==> 凌晨4点开始数据处理,需要3个小时 数据入库...

2019-07-11 19:06:06 200

原创 JVM

JDK8堆区young eden s0+s1 eden+survivor s0/s1 from/tonew出来的对象首先分配在eden区,当eden区满了会触发第一次GC;活的==》s0(from)再次触发GC:eden+from=>s1(to)对象年龄+1 15 MaxTenuringThreshold ==>老年代面试题...

2019-07-11 18:13:31 275

原创 Review(10)

1 CDH部署 卸载2 CDH 调优3 CDH日志怎么查看 xxx.log role.log 强调三种日志stdout stderr xxx.log4 CDH监控 TSQ 预警5 CDH 动态资源池 多租户案例 放置规则6 一台服务器磁盘(1W转 7200转(坑) 1.5W转相当于SSD 7200转 ) 6块 2T/块 RAID ?假如不做,HDFS D...

2019-07-10 18:50:12 89

原创 Review(9)

1.Spark 数据倾斜的解决方案 发生现象:绝大多数task非常快,个别task执行慢。 发生原理:进行shuffle时,必须将各个节点上相同的key拉取到某个节点上的一个task进行处理,按照key进行聚合或者join操作,若某个key的数据量特别大,就会发生数据倾斜 解决思路:拆---合 总体发生倾斜概括: jo...

2019-07-10 18:26:04 96

原创 Review(8)

19 Kafka ack 有哪几种 ?生产选择哪个?首先这个acks参数,是在KafkaProducer,也就是生产者客户端里设置的也就是说,你往kafka写数据的时候,就可以来设置这个acks参数。然后这个参数实际上有三种常见的值可以设置,分别是:0、1 和 all。第一种选择是把acks参数设置为0,意思就是我的KafkaProducer在客户端,只要把消息发送出去,不管那条数据...

2019-07-10 18:10:05 170

原创 Review(7)

17 flume如何抽取数据 记录pos点?用哪一个source? tailDir目录能支持递归吗 flume中有三种可监控文件或目录的source、分别是Exec Source、Spooling Directory Source和Taildir Source。 Taildir Source是1.7版本的新特性,综合了Spooling Directory Source和Ex...

2019-07-10 15:49:30 225

原创 Review(6)

9.Hive内部表和外部表区别Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享元数据。建内部表create table student(Sno int,S...

2019-07-08 19:53:15 230

原创 Review(5)

5 小文件过多了 什么危害 如何规避?哪里会产生小文件 ?源数据本身有很多小文件 动态分区会产生大量小文件 reduce个数越多, 小文件越多 按分区插入数据的时候会产生大量的小文件, 文件个数 = maptask个数 * 分区数小文件太多造成的影响 ?从Hive的角度看,小文件会开很多map,一个map开一个JVM去执行,所以这些任务的初始化,启动,执行会浪费大量的...

2019-07-08 19:52:56 264

原创 Review (4)

4 Hdfs 得 NN 的内存在生产上如何规划NameNode管理着整个HDFS文件系统的元数据。从架构设计上看,元数据大致分成两个层次:Namespace管理层,负责管理文件系统中的树状目录结构以及文件与数据块的映射关系;块管理层,负责管理文件系统中文件的物理块与实际存储位置的映射关系BlocksMap,如图1所示[1]。Namespace管理的元数据除内存常驻外,也会周期Flush到持久化...

2019-07-07 14:36:58 119

原创 Review (3)

1.压缩有哪几种方式 区别 场景用1)Gzip压缩优点:压缩率比较高,压缩/解压速度也比较快,hadoop本身支持。缺点:不支持分片。应用场景:当每个文件压缩之后在1个block块大小内,可以考虑用gzip压缩格式。2)lzo压缩优点:压缩/解压速度也比较快,合理的压缩率,支持分片,是Hadoop中最流行的压缩格式,支持Hadoop native库。缺点:...

2019-07-06 10:53:25 227

原创 Review (2)

1.一个有序地数组构建成平衡二叉树 这个问题用递归很容易解出来。考虑下面一棵二叉搜索树:这是一棵平衡的二叉搜索树,所谓平衡的定义,就是指二叉树的子树高度之差不能超过1。如果要从一个有序数组中选择一个元素作为根结点,应该选择哪个元素呢?我们应该选择有序数组的中间元素作为根结点。选择了中间元素作为根结点并创建后,剩下的元素分为两部分,可以看作是两个数组。这样剩下的元素在根结点左...

2019-07-04 19:53:25 107

原创 Review (1)

第一阶段:1.scala闭包 闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。 闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。 如下面这段匿名的函数: val multiplier = (i:Int) => i * 10 函数体内有一个变量 i,它作为函数的一个参数。如下面...

2019-07-04 17:08:42 244

原创 K8s

kubeadm部署集群k8s001k8s002k8s0031.修改hostsecho "192.168.201.135 k8s01">>/etc/hostsecho "192.168.201.136 k8s02">>/etc/hostsecho "192.168.201.137 k8s03">>/etc/hosts2关闭防火...

2019-05-02 13:16:38 150

原创 Docker Harbor

Docker坑 启动https://www.jianshu.com/p/93518610eea1Docker镜像下载慢的问题配置完 数据源 需要重启dockerhttps://blog.csdn.net/zhengchaooo/article/details/80566722Docker 拉取镜像报错https://segmentfault.com/a/119...

2019-05-01 16:50:46 271

转载 Idea 快捷键

修改方法如下:点击 文件菜单(File) –> 点击 设置(Settings… Ctrl+Alt+S), –> 打开设置对话框。在左侧的导航框中点击 KeyMap。接着在右边的树型框中选择 Main menu –> Code –> Completion.接着需要做两件事:1. 移除原来的Cycle Expand Word 的 Alt+/ 快捷键绑定。...

2019-04-30 21:48:03 68

原创 HashMap源码及数据结构分析

2019-04-30 21:45:14 204

原创 linux命令03

1.查看ipwindow ipconfig : 192.168.1.104linux ifconfig : 192.168.137.190 ping hadoop000 [root@hadoop000 ~]# hostname -i 192.168.137.190 [root@hadoop000 ~]#/etc/hosts文件192.1...

2019-04-30 15:30:03 105

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除