自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 转载收集-常用设计算法

分治算法动态规划回溯法贪心法分支界限法十大排序算法

2020-04-25 21:34:48 176

原创 实时数仓-Druid 从kafka摄取数据

准备搭建好kafka可正常访问查询节点的8888端口: http://hadoop04:8888按部就班新建一个摄取规范,定义你的数据从哪摄取、怎么摄取、摄取成什么样。选择kafka。填写kafka消费者基本属性。检查你的数据列是否完整。将logTime列设置为时序列__time,格式yyyy-MM-dd HH:mm:ss。如果不需要转换Transform 或 Filte...

2020-03-31 21:38:39 827

原创 实时数仓-Druid 集群搭建

集群规划节点类型主机名数量描述主节点hadoop011包括一个 Coordinator 和一个 Overlord进程数据节点hadoop02,hadoop032分别包括一个 Historical 和一个 MiddleManager进程查询节点hadoop041包括一个 Broker 和一个 Router进程一般为了防止单点,生产上需要部...

2020-03-31 21:38:27 1003

原创 实时数仓-Druid简介

Druid是什么 ?Apache Druid是一个实时分析数据库,为时间驱动的数据分析而生,广泛应用于OLAP。此Druid,非阿里的那个数据连接池druid。Druid核心架构整合了数据仓库、时序数据库、日志搜索系统的思想。主要有以下特点:列式存储可扩展分布式系统并行处理实时或离线摄入数据自容错、自平衡、容易操作云化、容错架构不丢失数据基于时间的分区快速过滤的索引应用很多...

2020-03-31 21:38:13 1073

原创 Zookeeper概念原理实战

啥是Zookeeper?Zookeeper是一个分布式的、提供协调服务的Apache开源软件。基础概念Leader :即Master节点。每个Zookeeper集群只能有一个Master节点,而Master是通过内部选举机制产生的。Follower :即slave节点。每个Zookeeper集群有多个Slave节点。半数机制 :Zookeeper集群中半数以上机器存活,则集群可用。所以...

2020-03-30 23:33:44 112

原创 Aspose CAD标准dwg文件转svg或png

最近遇到一个需求需要把CAD绘图文件展示在浏览器上,然后Aspose提供的工具包可以实现,不过不免费。更多转换可参考我的GitHubmaven dependency <dependencies> <dependency> <groupId>com.aspose</groupId> ...

2020-03-24 19:03:10 2689 10

原创 Linux-操作系统常见性能监控指标

一般我们在进行性能分析、优化或调优之前,必不可少要进行性能监控,一方面是操作系统的监控,一方面是应用层面的监控,本篇讨论操作系统方面。那么操作系统常见的性能指标都有哪些?CPU利用率CPU调度运行队列长度上下文切换内存使用率磁盘IO使用率网络IO使用率CPU利用率在Linux系统上,CPU利用率主要分成两个部分:用户态利用率、系统态利用率用户态利用率 = 执行应用程序代码...

2020-03-10 22:00:24 3359

原创 Shell脚本-三剑客实战

awk第一条命令探路原 /etc/passwd 数据:awk -F’:’ ‘{print $1,$2,$6}’ /etc/passwd意思很明显:将/etc/passwd文件中的数据,先以":"分割,然后取第1、第2、第6列,打印出来。-F’:’ 指定冒号为分割符==’{print $1,$2,$6}’==脚本代码块执行脚本中的 BEGIN \ END模块一般地,对每个输...

2020-03-07 17:04:26 750

原创 离线数仓-Hive集成Tez

安装好JDK Hadoop MysqlJDK8+Hadoop2.7.7下载安装包并解压Hive下载Tez下载apache-hive-1.2.2-bin.tar.gzapache-tez-0.9.1-bin.tar.gz全部解压到 /home/hadoop/module安装Hive1.配置hive-env.shexport HADOOP_HOME=/home/hadoop/mo...

2020-02-23 08:09:31 391

原创 离线数仓-Hive 交互命令、DDL与DML操作

常用命令###交互命令#查看帮助bin/hive -help# -e 不进入hive提示窗口执行sql语句bin/hive -e "select id from student;"# -f 执行脚本中sql语句bin/hive -f /opt/module/datas/hivef.sql###hive提示窗口命令#进入提示窗口bin/hive#在hive提示窗口命令中...

2020-02-23 08:09:17 172

原创 离线数仓-Hive介绍

1.简介Hive是基于Hadoop的一个开源数据仓库工具,将海量结构化数据文件映射为一张表,并在其上提供类SQL(HQL)查询功能。Hive本质是将HQL转化成MapReduce,以处理存储在HDFS上的数据。优点避免写MapReduce,减少学习成本。提供HQL操作接口,易上手。适合处理大数据,处理小数据意义不大。支持自定义函数处理数据。缺点HQL表达能力有限。执行效率低。...

2020-02-17 21:11:15 1109

原创 Spark常见问题

Executor OOM前篇内存优化有过介绍,Spark内存主要用在执行计算、持久化存储两个方面,这两部分内存共享一片区域。一般是执行计算方面出现OOM1.考虑通过调低spark.memory.fraction参数适当减少持久化存储的份额,让计算内存有更多的内存使用。2.考虑在shuffle操作中,调低map端buffer大小,以多次溢写磁盘IO消耗的代价换取更多的执行内存;调低redu...

2020-01-21 09:38:14 154

原创 Spark数据倾斜及解决办法

数据倾斜在执行shuffle操作过程中,map端按照key分配数据输出,reduce端同样也按照key进行拉取、聚合。通常每一个key对应的数据量不对等,经常出些某些key数据量比其他key多很多。这种现象导致的后果,轻则拖慢job执行时间(执行时间由最慢的task决定),重则直接OOM(数据量太大,处理完成前不能回收内存)原因我觉得是两个必要条件,缺一个都不发生数据倾斜,而我们打破其中一个...

2020-01-21 00:38:37 220

原创 Spark其他调优的点

并行度为了充分利用集群,可以调整每一个操作的并行度。Spark已经给各个参数默认设置了并行任务的数量。可以做的就是传入操作的第二参数来改变并行度,或者通过spark.default.parallelism参数来设置默认并行度。一般,官方推荐每一个CPU核对应2~3个Task。mapPartitions 代替 mapmap算子每一个元素执行一次func,而mapPartitions 算子每一个...

2020-01-19 14:58:13 127

原创 Spark内存调优

由于Spark是基于内存计算的,所以集群中资源(比如CPU、带宽、内存)都会成为瓶颈。当集群内存够用时,网络带宽往往成为瓶颈。所有优化主要从两个方面进行:一个是数据序列化(提升网络性能,减少内存使用等),一个是内存优化数据序列化序列化在分布式应用程序中占用重要地位。Spark提供两种序列化库:Java serialization 拿来就用,但是太慢了。Kryo serialization...

2020-01-19 13:31:45 570

原创 SparkStreaming-DStream与DataFrame SQL联合操作

查询使用的SparkSession 可由StreamingContext中的SparkContext来创建,以此用来进行DataFrame Sql操作。val words: DStream[String] = ...words.foreachRDD { rdd => // 获取单例SparkSession val spark = SparkSession.builder.co...

2020-01-19 10:12:23 845 3

原创 SparkStreaming-DStream

Spark Streaming接收数据并将其分隔成一批批的数据,然后被Spark engine处理形成一批批的结果。需指出,Spark Streaming可以被应用与机器学习和图计算。Spark Streaming提供了一个高级抽象称为DStream,代表连续的数据流。DStream可从kafka、flume、kinesis等数据源创建,DStream内部是一个RDDs序列。快速入门Str...

2020-01-18 15:22:06 352

原创 SparkSql-数据源

常用加载/保存默认数据源是parquet ,除非用spark.sql.sources.default配置参数定义为其他。val usersDF = spark.read.load("examples/src/main/resources/users.parquet")usersDF.select("name", "favorite_color").write.save("namesAndFa...

2020-01-17 18:06:56 200

原创 SparkSql-自定义聚合函数

像Hive一样自定义聚合函数弱类型自定义聚合函数继承UserDefinedAggregateFunction 来实现,面向DataFrameimport org.apache.spark.sql.{Row, SparkSession}import org.apache.spark.sql.expressions.MutableAggregationBufferimport org.apa...

2020-01-17 15:23:27 354

原创 SparkSql-Datasets和DataFrames

SparkSql顾名思义就是可以执行sql查询,同样也可以用于从hive查询数据。DatasetsDatasets分布式数据集。spark 1.6引入,提供了RDD的优点(强类型、强大的lambda函数)和Spark-SQL优化了的执行引擎。它可由JVM对象创建,然后使用函数式转换进行修改,比如map、flatmap、filter等。DataFramesDataFrames列已命名的Dat...

2020-01-17 14:21:15 196

原创 Git本地与GitHub关联和同步

前提:先有一个GitHub账户,并创建好一个Github仓库,且本地成功安装git,如果没有请自行百度开始首先新建你的工程目录,比如D:\project,并进入,在空白处右键选择Git bash,通过命令行来创建输入git init把这个文件夹初始化git可管理的本地仓库,此时该目录下出现.git文件夹(默认隐藏)把代码粘进来,输入git add .添加所有代码到本地仓库输入 g...

2020-01-16 16:49:48 667

原创 自定义分区器插件-案例

kettle自定义分区器 代码实现

2020-01-16 13:42:14 134

原创 自定义分区器插件

kettle自定义分区器

2020-01-16 12:18:52 206

原创 转换步骤使用分区

kettle在转换中使用分区

2020-01-16 11:10:12 103

原创 共享变量

Spark共享变量 广播变量 累加器

2020-01-15 18:05:33 837

原创 Spark 数据读取和保存

文本文件val hdfsFile = sc.textFile("hdfs://hadoop01:9000/employee.txt")hdfsFile.saveAsTextFile("/employeeOut")JSON文件每一行是一条JSON串import scala.util.parsing.json.JSONval json = sc.textFile("/employee...

2020-01-15 17:19:21 342

原创 RDD 持久化和CheckPoint

RDD 持久化RDD持久化不仅仅指平常理解的物化,在这里还可以内存化。通过在RDD上调用persist() 或 cache()来进行持久化,并在第一次行动算子被调用时真正执行。持久化的目的是RDD重用、提速,同时提供一定的容错性,如果某个RDD出错,所需数据自动按照RDD依赖关系进行重新计算得到。RDD持久化分为不同级别,可以持久化数据集到磁盘、可以持久化到内存(序列化成java对象是为了节约...

2020-01-15 16:01:28 279

原创 理解Shuffle

Shuffle是spark跨不同分区重新分布分组数据的机制,这个操作会跨executor、机器copy数据底层机制以 reduceByKey 为例将所有属于key的values经过func运算聚合成一个tuple(key,new calc value)。问题是,并不是跟key相关的所有values都会出现在一个分区里,甚至出现在同一个节点里,而这些数据都需要全部归集起来进行计算。相当于从所有...

2020-01-15 11:15:29 578

原创 RDD的操作

RDD的创建三种创建方式从内存中创建使用parallelize val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8))使用makeRDD val rdd1 = sc.makeRDD(Array(1,2,3,4,5,6,7,8))从外部存储创建(往后看)由其他RDD转换(往后看)传递给RDD的函数运行在集群中的Spar...

2020-01-14 18:56:22 1060

原创 自定义步骤插件-案例

简要意图:实现一个实时拉取数据处理kafka消费步骤自定义步骤如下:处理流程如下:发到kafka的原始数据如下:结果:搭建好IDEA的Java开发环境。为了节省解决各种依赖关系的时间,而且有些依赖下载太慢,所以不用maven。再者Kettle工作目录里已经有完备的jar包。所以从工作目录data-integration\lib下,拷贝以下jar包到工程中,做好依赖配置最终工...

2020-01-13 17:40:02 343

原创 Spark YARN模式

YARN模式下:Hadoop Resources Manager进程就是Cluster Manager配置步骤确保spark-env.sh中HADOOP_CONF_DIR 或 YARN_CONF_DIR 指向 Hadoop 集群的配置文件目录。追加YARN_CONF_DIR 环境变量:vim spark-env.shYARN_CONF_DIR=/home/hadoop/hadoop-2....

2020-01-12 23:04:26 143

原创 Spark Standalone模式

Standalone模式下:master进程就是Cluster Manager配置步骤在spark/conf/下配置slaves1.mv slaves.template slaves2.vim slaveshadoop01hadoop02hadoop03在spark/conf/下配置spark-env.sh1.mv spark-env.sh.template spark-env...

2020-01-12 22:24:39 245 1

原创 Spark准备

基础信息版本:2.3.0官网下载 download支持:Java 8+, Python 2.7+/3.4+ and R 3.1+Scala :2.11.x安装完成后,跑一跑./bin/run-example SparkPi 10./bin/spark-shell --master local[2]Spark应用程序相关概念Spark application(Spark应用程序):...

2020-01-12 17:38:32 165

原创 记软考经历

我是从18年开始参加软考,时间过得并不久,至于为什么做这件事,确实是有原因的。那个时候自己转开发也已经有一段时间,总感觉好多东西不是很懂,或者说是一接触新东西并不能很快懂,这大概是非科班出身的童鞋都有的软肋。以前做测试的时候,也有一些计算机知识积累,但是都停留在黑盒,看不到内里,懂了又好像没懂。总爱收集各种pdf文档,现在翻出来基本都成了很老古董,而且越来越多,根本看不完,放到现在技术更新这么快的...

2020-01-12 15:52:36 882 1

原创 自定义步骤插件

自定义步骤插件需要实现以下四个接口(不指明都在org.pentaho.di.trans.step包下)StepMetaInterface 默认实现类BaseStepMeta说明:维护、校验、序列化配置,提供访问步骤类的入口,影响行布局变化StepDialogInterface 默认实现类org.pentaho.di.ui.trans.step.BaseStepDialog...

2020-01-11 15:45:47 521

原创 自定义插件调试设置-IDEA

配置Spoon客户端首先备份Spoon.bat,以防万一,然后文本编辑打开Spoon.bat,找到118行,其开头为if "%PENTAHO_DI_JAVA_OPTIONS%"=="",在其后面追加以下内容:-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,ad...

2020-01-11 15:26:41 548

原创 命令行执行

Pan是执行转换的命令行工具Kitchen是执行作业的命令行工具他们都独立于spoon之外。Linux命令格式 pan.sh -option=valueWindows命令格式 pan.bat /option:valueoption列表:version 显示版本信息file 指定ktr文件(value:文件路径)param 指定参数(value格式:key...

2020-01-11 15:11:16 376

原创 乱码问题

为了防止乱码问题,以下几个地方需要设置一下Spoon.bat/Spoon.sh添加-Dfile.encoding=UTF-8数据库连接->高级添加set names utf8;数据库连接->高级添加characterEncoding:utf-8...

2020-01-11 15:07:05 137

原创 案例四 流式处理(kafka)

意图:从kafka消费数据共200条,进过一系列处理、聚合,输出40条到数据库整个过程分为父转换SRT,子转换SKafkaProcess ,SRT拉取kafka数据,SKafkaProcess 负责处理,大体呈:数据 -> SRT -> SKafkaProcess ->结果。为毛分两个转换,为毛不是一个转换?因为【Kafka consumer】这个步骤配置界面需要输入另一...

2020-01-11 14:56:16 778

原创 案例三 数据分发

意图:将数据库表或文本文件中的数据,按照某个列的分发规则,分发到不同的后续步骤中去继续处理处理流程:步骤:原始数据共有a b c三列。分发规则配置,按a列的值进行分流。分发结果:...

2020-01-11 13:20:59 460

空空如也

空空如也

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

TA关注的人

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