自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 centos7 配置各从节点与主节点时间同步

chrony是一个ntp协议的实现程序,既可以当做服务端,也可以充当客户端;它专为间歇性互联网连接的系统而设计,当然也能良好应用于持久互联网连接的环境;chrony有三个时间参考:硬件时钟、实时时钟以及手动同步。1.在各节点安装时间同步服务yum install chrony -y2.在主节点编辑配置文件vim /etc/chrony.conf暂时只添加时间同步服务器(这里填阿里的可以根据需求填写)和允许与本机同步的机器或网段server http://ntp1.aliyun.com ibu

2021-01-10 08:32:45 3720 7

原创 spark streaming + kafka 保证精确一次消费Topic

本文基于Spark2.1.0、Kafka 0.10.2、Scala 2.11.8版本参考:https://www.jianshu.com/p/667e0f58b7b9

2021-01-07 22:12:18 932

原创 常见数据仓库问题

数仓1. 数据分层1.1 ods层1.2 dw层1.2.1 dwd层1.2.2 dws层1.2.3 dim层1.3 dm层2. 表的种类和特征3. 拉链表4. 数据建模4.1 业务建模4.2 领域概念建模4.3 逻辑建模4.4 物理建模5. 数据模型5.1 星型模型5.2 雪花模型5.3 星系模型5.4 Data Vault模型6. 建模方法6.1 范式建模法(ThirdNormal Form,3NF)6.2 维度建模法6.4 3.实体建模法7. 数据库和数据仓库区别8 数据仓库流程数仓是一个面向

2020-12-24 09:47:15 1278

原创 Flink任务提交及架构资源原理详解

Flink任务提交及架构资源原理详解1.架构原理1.1 架构组成1.2.Flink作业提交流程:2. 逻辑视图到物理执行图3. Flink计算资源3.1 任务槽位3.2 槽位共享3.3 Flink资源管理flink作为一个分布式计算引擎,它可以在所有主流集群资源管理器中,如Hadoop YARN,Apache Mesos和Kubernetes,也可以运行在独立集群中。当然,它还提供了本地运行模式,可以供我们开发测试。1.架构原理1.1 架构组成Flink 是可以运行在多种不同的环境中的,例如,它可以

2020-12-21 19:09:58 889

原创 Hbase 常见面试题

1. Hbase是什么?hbase的特点是什么?Hbase一个分布式的基于列式存储的数据库,基于Hadoop的 hdfs 存储,zookeeper 进行管理。Hbase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。Hbase 为 null 的记录不会被存储。基于的表包含 rowkey,时间戳,和列族。新写入数据时,时间戳更新, 同时可以查询到以前的版本。hbase 是主从架构。hmaster 作为主节点,hregionserver 作为从节点。.

2020-12-20 23:01:05 445

原创 spark 性能优化相关

1.资源优化1) .搭建 Spark 集群的时候要给 Spark 集群足够的资源(core,memory)在 spark 安装包的 conf 下 spark-env.shSPARK_WORKER_CORESSPARK_WORKER_MEMORYSPARK_WORKER_INSTANCE2) .在提交 Application 的时候给 Application 分配更多的资源。提交命令选项:(在提交 Application 的时候使用选项)–executor-cores–executor-m

2020-12-20 18:37:21 94

原创 请用图形的方式表示出java运行时数据区,及哪些数据区在空间不足的情况下会抛出异常。

首先通过一张图了解 Java程序的执行流程:我们编写好的Java源代码程序,通过Java编译器javac编译成Java虚拟机识别的class文件(字节码文件),然后由 JVM 中的类加载器加载编译生成的字节码文件,加载完毕之后再由 JVM 执行引擎去执行。在加载完毕到执行过程中,JVM会将程序执行时用到的数据和相关信息存储在运行时数据区(Runtime Data Area),这块区域也就是我们常说的JVM内存结构,垃圾回收也是作用在该区域。关于这幅图涉及到的:①、class文件②、类加载器③、运

2020-12-20 11:27:57 255 1

原创 java 高效方法实现二分法

题目要求:请实现有重复数字的有序数组的二分查找。输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。先考虑这样一个问题:对于一个有序数组来说,什么情况下是不存第一个大于等于 v的位置呢?即:数组中的所有数都比 v 小,可以写成if(a[n-1]<v) return n+1;判完这个条件以后,aa 数组里就一定可以存在一个位置是答案了。这样的话,我们来设答案在闭区间[Left,right][Left,right]之间当这个区间只剩下一个数,即Lef

2020-12-19 23:36:34 157 1

原创 Standalone-cluster 提交任务流程

./spark-submit --master spark://mynode1:7077--deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.12-3.0.1.jar 100执行流程cluster 模式提交应用程序后,会向 Master 请求启动 Driver.Master 接受请求,随机在集群一台节点启动 Driver 进程。Driver 启动后为.

2020-12-18 12:45:30 158

原创 spark基于standalone client模式提交任务流程

执行流程client 模式提交任务后,会在客户端启动 Driver 进程。Driver 会向 Master 申请启动 Application 启动的资源。Master 收到请求之后会在对应的 Worker 节点上启动 ExecutorExecutor 启动之后,会注册给 Driver 端,Driver 掌握一批计算资源。Driver 端将 task 发送到 worker 端执行。worker 将 task 执行结果返回到 Driver 端。特点:当客户端提交多个spark appli.

2020-12-18 12:45:21 184

原创 Spark基于Yarn-cluster模式提交任务流程

2020-12-18 12:45:05 214

原创 Spark 基于 Yarn 模式提交任务原理

2020-12-18 12:44:53 109

原创 kafka_2.12-2.6.0介绍及安装教程

kafka_2.12-2.6.0介绍及安装教程1.Kafka 介绍1.1 kafka 是什么?使用场景?1.2 kafka 生产消息、存储消息、消费消息1.3 kafka 的特点2 kafka使用2.1 kafka 集群搭建1.Kafka 介绍1.1 kafka 是什么?使用场景?Kafka 是一个高吞吐的分布式消息队列系统。特点是生产者消费者模式,先进先出(FIFO)保证顺序,自己不丢数据,默认每隔 7 天清理数据。消息列队常见场景:系统之间解耦合、峰值压力缓冲、异步通信。1.2 ka

2020-11-27 02:50:34 832

原创 K-近邻(KNN)算法

一 . K-近邻算法(KNN)概述最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类

2020-11-24 01:05:28 110

原创 pyspark无法自动生成 conn_info_file

spark3.0.1 pyspark无法自动生成 conn_info_file

2020-11-23 00:54:08 152

原创 sqoop1从mysql向hive导入数据

1 sqoop import \ 2 --connect jdbc:mysql://node1:3306/ycbk?dontTrackOpenResources=true\&defaultFetchSize=10000\&useCursorFetch=true\&useUnicode=yes\&characterEncoding=utf8 \ 3 --driver com.mysql.cj.jdbc.Driver \ 4 --usern..

2020-11-17 18:24:40 118

原创 Azkaban3.90介绍及安装详细教程

最新版Azkaban3.90介绍及安装1 Azkaban介绍2 Azkaban 的安装2.1 Azkaban 由三个关键组件2.2 安装Azkaban2.2.1 环境准备2.2.2 安装 Azkaban2.2.3 导入数据库2.3 配置运行 Azkaban2.3.1 创建 ssl 配置2.3.2 Azkaban web 服务器配置2.3.3 Azkaban executor 服务器配置2.3.4 启动 Azkaban2.4 验证 Azkaban 运行情况3. 构建工作流3.1 设计工作流程3.2 编写各阶

2020-11-09 16:37:19 1410 3

原创 [Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry.

启动azkaban时报错:2020/11/08 23:03:46.126 +0800 ERROR [MySQLDataSource] [main] [Azkaban] Failed to find write-enabled DB connection. Wait 15 seconds and retry. No.Attempt = 11java.sql.SQLException: Cannot create PoolableConnectionFactory (Could not create con

2020-11-08 23:17:27 2527 2

原创 Driver HA高可用 实现

Driver HA(Standalone 或者 Mesos)因为 SparkStreaming 是 7*24 小时运行,Driver 只是一个简单的进程,有可能挂掉,所以实现 Driver 的 HA 就有必要(如果使用的 Client 模式就无法实现 Driver HA ,这里针对的是 cluster 模式)。Yarn 平台 cluster 模式提交任务,AM(AplicationMaster)相当于 Driver,如果挂掉会自动启动AM。这里所说的 DriverHA 针对的是 Spark sta

2020-11-06 23:29:20 173

原创 SparkStreaming foreachRDD&transform&updateStateByKey&renduceByKeyAndWindow算子

1. foreachRDDoutput operation 算子,必须对抽取出来的 RDD 执行 action 类算子,代码才能执行。2. transformtransformation 类算子可以通过 transform 算子,对 Dstream 做 RDD 到 RDD 的任意操作。代码示例:import org.apache.spark.{SparkConf}import org.apache.spark.streaming.{Durations, StreamingConte

2020-11-06 19:33:08 171 1

原创 SparkStreaming介绍及mapreduce/fink框架对比

计算框架对比:1. SparkStreaming 简介SparkStreaming 是流式处理框架,是 Spark API 的扩展,支持可扩展、高吞吐量、容错的实时数据流处理,实时数据的来源可以是:Kafka, Flume,Twitter, ZeroMQ 或者 TCP sockets,并且可以使用高级功能的复杂算子来处理流数据。例如:map,reduce,join,window 。最终,处理后的数据可以存放在文件系统,数据库等,方便实时展现。2. SparkStreaming 与 Storm

2020-11-06 15:49:34 449

原创 SparkSQL_经典案例分析_数据表行列变化转换分析_collect_list()&collect_set()&str_to_map函数

import org.apache.spark.sql.SparkSession/** * 数据的行列变化: * 多行数据到一行数据中 * 例如: * +--------+----+-----+ +--------+---------+-----+ * |username|item|price| |username|item |price| * +--------+----+-----+ +--------+--------

2020-11-05 23:39:25 1104

原创 SparkSQL_经典案例分析_找出状态变化的行

找出状态变化的行import org.apache.spark.sql.SparkSession/** * 案例: 找出变化的行 * 开窗函数 + 表的自关联实现 */object FindChangeInfos { def main(args: Array[String]): Unit = { val session = SparkSession.builder().master("local").appName("test").getOrCreate() session

2020-11-05 22:38:34 226

原创 SparkSQL Over 开窗函数使用

开窗函数注意:row_number() 开窗函数是按照某个字段分组,然后取另一字段的前几个的值,相当于 分组取 topN,在 MySql8 之后也增加了开窗函数。开窗函数格式:row_number() over (partitin by XXX order by XXX) 同个分组内生成连续的序号,每个分组内从 1 开始且排序相同的数据会标不同的号。rank() over (partitin by XXX order by XXX) 同个分组内生成不连续的序号,在每个分组内从 1 开始,同个

2020-11-05 16:02:24 1078

原创 SparkSQL 自定义聚合函数UDAF实战应用

1. UDAF:用户自定义聚合函数。自定义聚合函数(UDAF)可以将多条记录聚合成1条记录。实现 UDAF 函数如果要自定义类要继承UserDefinedAggregateFunction 类Spark3.0以后应继承Aggregator类UDAF 原理图:示例代码:import org.apache.spark.SparkConfimport org.apache.spark.sql.{Dataset, Encoder, Encoders, SparkSession}import or

2020-11-05 04:32:57 208

原创 SparkSQL 自定义函数UDF应用

/** * SparkSQL UDF : User Defined Function - 用户自定义函数 */object SparkSqlUDF { def main(args: Array[String]): Unit = { val session = SparkSession.builder().master("local").appName("test").getOrCreate() val nameList = List[String]("zhangsan", "li

2020-11-04 23:48:28 86

原创 SparkSQL3.0.1 读取Hive2.3.0中的数据加载DataFrame 02

在本地使用scala代码示例:经测试需要把hdfs-site.xml及hive-site.xml及core-site.xml文件放置于本地resource中hive-site.xml配置如下:<configuration> <property> <name>hive.metastore.local</name> <value>false</value> </prop

2020-11-04 23:13:32 352

原创 SparkSQL_Spark3.0.1 on Hive 配置及SparkSQL连接Hive测试

官网地址spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据。从Spark 1.4.0开始,Spark SQL只需简单的配置,就支持各版本Hive metastore的访问。注意,涉及到metastore时Spar SQL忽略了Hive的版本。Spark SQL内部将Hive反编译至Hive 1.2.1版本,Spark SQL的内部操作(serdes, UDFs, UDAFs, etc)都调用Hive 1.2.1版本的cl

2020-11-04 18:46:58 2035

原创 SparkSQL读取Tuple类型的Dataset加载DatFrame

测试数据:146.202.84.90 江西 2020-10-28 1603879301437 6285032924209569490 www.jd.com Login146.202.84.90 江西 2020-10-28 1603879301438 6285032924209569490 www.gome.com.cn Login146.202.84.90 江西 2020-10-28 1603879301438 6285032924209569490 www.taobao.com Comment11

2020-11-04 01:44:54 368

原创 SparkSQL读取csv格式的数据加载DatFrame

import org.apache.spark.sql.SparkSession/** * 读取csv格式的文件。 */object ReadCsvDataToDF { def main(args: Array[String]): Unit = { val session: SparkSession = SparkSession.builder() .master("local[1]") .appName("ReadCsvDataToDF") .get

2020-11-04 00:02:16 312

原创 SparkSQL读取Parquet格式的数据加载DatFrame

import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}/**读取Parquet格式的数据加载DataFrame注意:1).parquet是一种列式存储格式,默认是有压缩。Spark中常用的一种数据格式2).读取Parquet格式的数据两种方式3).可以将DataFrame保存成Json或者Pauquet格式数据,注意保存模式*/object ReadParquetFileToDF {def main

2020-11-03 23:51:57 352

原创 SparkSQL读取普通格式的RDD通过动态创建Schema方式加载DatFrame

示例代码:import org.apache.spark.rdd.RDDimport org.apache.spark.sql.types.{DataTypes, StructField, StructType}import org.apache.spark.sql.{Row, SparkSession}/** * 通过动态创建Schema方式将普通格式的RDD转换成DataFrame * 注意: * 创建StructType类型的数据时,StructField字段的顺序需要与构建的RDD[

2020-11-03 23:20:26 427

原创 SparkSQL读取普通格式的RDD通过反射方式加载DatFrame

import org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, SparkSession}/** * 通过反射方式将普通格式的RDD转换成DataFrame * 注意: 反射的方式将自定义类型的RDD转换成DataFrame过程中,会自动将对象中的属性当做DataFrame 中的列名,将自定义对象中的属性的类型当做DataFrame * 列的schema信息。 */case class PersonInfo(id

2020-11-03 22:28:24 84

原创 SparkSQL读取Json格式的RDD加载DatFrame

示例代码:import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}/** * 读取json格式的RDD就是RDD中的String是一个json字符串。 * Spark2.0 之前 session.read.json(JSONRDD) * Spark2.0之后 session.read.json(JSONDATASET) */object ReadJsonRDDToDF { def main(args: Array[Str

2020-11-03 18:01:43 459

原创 SparkSQL_SparkSQL读取Json格式的数据加载DatFrame

maven依赖:<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.1</version> </dependency> <dependency> <groupId>org.apache.spark&l

2020-11-03 17:45:22 154

原创 SparkSql 介绍;Hive & Shark & SparkSQL 区别

1.SparkSQL 支持Spark 写SQL处理分布式数据。2.SparkSQL 发展过程:Hive -> Shark -> SparkSQL面试题:Hive & Shark & SparkSQL 区别?1).Hive 支持写SQL 查询分布式数据,底层Hive负责SQL解析优化,转成MapReduce任务处理数据。2).Shark 是早期Spark与Hive整合出来的,支持Sprak中写SQL查询分布式数据技术,Shark依赖了hive的解析优化SQL,底层转成S

2020-11-02 18:34:13 3230

原创 spark shuffle文件寻址过程

Shuffle 文件寻址1) MapOutputTrackerMapOutputTracker 是 Spark 架构中的一个模块,是一个主从架构。管理磁盘小文件的地址。MapOutputTrackerMaster 是主对象,存在于 Driver 中。MapOutputTrackerWorker 是从对象,存在于 Excutor 中。2) BlockManagerBlockManager 块管理者,是 Spark 架构中的一个模块,也是一个 主从架构。BlockManagerMaster,主

2020-11-02 17:29:38 125

原创 Spark Shuffle之SortShuffleManager机制原理

1. SparkShuffle 概念reduceByKey 会将上一个 RDD 中的每一个 key 对应的所有 value 聚合成一个 value,然后生成一个新的 RDD,元素类型是<key,value>对的形式,这样每一个 key 对应一个聚合起来的 value。问题:聚合之前,每一个 key 对应的 value 不一定都是在一个partition 中,也不太可能在同一个节点上,因为 RDD 是分布式的弹性的数据集,RDD 的 partition 极有可能分布在各个节点上。如何

2020-11-02 14:49:00 531

原创 Spark Master HA原理及搭建

1. Master 的高可用原理Standalone 集群只有一个 Master,如果 Master 挂了就无法提交应用程序,需要给 Master 进行高可用配置,Master 的高可用可以使用fileSystem(文件系统)和 zookeeper(分布式协调服务)。fileSystem 只有存储功能,可以存储 Master 的元数据信息,用fileSystem 搭建的 Master 高可用,在 Master 失败时,需要我们手动启动另外的备用 Master,这种方式不推荐使用。zookeep

2020-11-02 03:29:03 326

原创 Spark历史日志服务器开启及配置

可以使用历史日志服务器查看以前的job执行日志临时配置,对本次提交的应用程序起作用:./spark-shell --master spark://node1:7077--name myapp1--conf spark.eventLog.enabled=true--conf spark.eventLog.dir=hdfs://node1:9000/spark/test停止程序,在 Web Ui 中 Completed Applications 对应的ApplicationID 中能查看 his

2020-11-02 01:43:24 922

空空如也

空空如也

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

TA关注的人

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