
大数据
文章平均质量分 81
随笔
威尼斯的星期天
Console.log('♚')
展开
-
Kafka加密采集监控解决方案
kafka一般加密采集原创 2022-01-18 17:45:29 · 4768 阅读 · 0 评论 -
hdfs普通文本文件合并lzo压缩
lzo压缩并建立相关索引原创 2022-01-05 11:49:46 · 392 阅读 · 0 评论 -
Ubuntu18.04编译log4j2-2.15.0
2021/12/13号编译2.15.0版本 Log4j2,降低集群风险。原创 2021-12-13 20:23:59 · 2113 阅读 · 0 评论 -
flume----HDFS sink 启动时产生大量小文件处理办法
1.问题背景通过flume直接上传实时数据到hdfs,会常遇到的一个问题就是小文件,需要调参数来设置,往往在生产环境参数大小也不同1.flume滚动配置为何不起作用?2.通过源码分析得出什么原因?3.该如何解决flume小文件?2. 过程分析接着上一篇,blog.youkuaiyun.com/hu_lichao/a…本人在测试hdfs的sink,发现sink端的文件滚动配置项起不到任何作用,配置如下:a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 a1.转载 2021-01-27 10:53:09 · 935 阅读 · 0 评论 -
AirFlow高阶,两个启动时间不同DAG中的任务依赖关联demo
前言背景有个调度需求,查询以前历史DAG发现,有一个DAG可以作为我新调度的前置,所以想看看DAG之间task如何关联,所以有了下面的Demo。如果会科学上网,英语听力还不错的,可以移驾这里,这个大佬讲的会更到位!原理DAG A和DAG B是两个不同py文件写的,我A中一个task是我B中一个task的依赖,只有当A执行完了,我的B才能执行,那么该如何做呢,那么就应该安排一个监工的,看着A中指定task是否执行成功,执行成功那就监工就可以撤了,让B中的那个任务开始执行。Master.pyvim原创 2020-11-25 16:58:09 · 5986 阅读 · 4 评论 -
hadoop3.2.0,kafka_2.12-2.4.0 flume采集方案demo
效果根据消息中的事件时间来分目录,按照年月日分!前言公司有个数据采集需求,因为历史原因,我们公司使用的hadoop和kafka版本比较高,所以我采用了1.9.0的flume进行开发,flume内存调优这里就不讲了,有兴趣的自己去搜下。第一次使用肯定需要调优。环境准备java 1.8 flume 1.9.0 kafka_2.12-2.4.0 hadoop3.2.0flume的lib中需要将hadoop的一些依赖放进去,在hadoop3.2.0中慢慢去找hadoop-3.2.0/share/ha原创 2020-10-27 20:10:32 · 560 阅读 · 0 评论 -
使用alibaba-DruidPool出现拒绝创建连接对象
场景在做sparkstreaming业务时,对接kafka数据源,用到了手动提交offset,利用mysql存放offset!在分区内创建获取德鲁伊连接池里的连接对象。一直获取不到connection,报错信息如下line: 933) : init datasource error, url: jdbc:mysql://hadoop102:3306/qz_course?useUnicode=true&characterEncoding=utf8&serverTimezone=原创 2020-07-01 12:57:43 · 983 阅读 · 0 评论 -
查询hadoop集群中各个组件的版本方法(更新ing)
Zookeepersudo echo stat|nc localhost 2181原创 2020-06-02 02:00:19 · 1184 阅读 · 0 评论 -
My id 0 not in the peer list
前言集群使用外部的zk来管理所有的选举,hbase内嵌了一个zk。每次运行hbase后,我的外部zk进程就会挂掉。取而代之的是一个名字叫做HQuorumPeer的进程!名字是不是很眼熟。和我们的外部zk进程就多了个H?那么这个进程到底是怎么回事呢,搞明白为什么这个进程出现,搞明白为什么我外部的myid文件被篡改就搞明白了真相!查明原因每次我的myid文件都会被篡改,在日志中也没有反应相应的操作,那么只能做一个事情,那么就是将文件权限改为只读。当我把文件改为只读以后,奇妙的事情就这样发生了!启动完原创 2020-05-31 11:45:28 · 2117 阅读 · 0 评论 -
spark-shell --master yarn模式下 com.hadoop.compression.lzo.LzoCodec not found.
错误原因笔者在hadoop中配置了编解码器lzo,所以当使用yarn模式时,spark自身没有lzo的jar包所以无法找到!解决办法将lzo的jar包路径给spark!配置spark-default.conf文件!...原创 2020-05-04 21:21:29 · 795 阅读 · 1 评论 -
搭建高可用Hbase集群关键配置记录
hbase-site.xml因为配置了PATH里有HADOOP_HOME所以能够找到core-site能读到笔者配置的高可用!<configuration> <!--hdfs上存放HBase的路径 访问activeNamenode9000端口--> <property> <name>hbase.rootdir</name&...原创 2020-04-15 19:50:10 · 173 阅读 · 1 评论 -
azkaban中遇到Could not initialize class org.apache.derby.jdbc.AutoloadedDriver40
前言以前自己搭过一个azkaban的环境,但是过了很久后再重头搭建时发现了写不可思议的坑。下面记录下!报错信息Exception in thread “main” java.lang.NoClassDefFoundError: Could notinitialize class org.apache.derby.jdbc.AutoloadedDriver40 atjava.lang....原创 2020-04-14 22:38:21 · 2760 阅读 · 0 评论 -
tez在join操作中遇到数据丢失问题(牵涉hive优化)
前言相信很多人遇到过,将tez集成到hive中时,进行表join操作,比如3张表进行join,发现最后结果和预期比较 ,少了一些。然后对每个子查询进行分析,发现往往每个子查询又没有任何数据丢失!而是到了join阶段,数据才出现部分丢失。下面我们对此进行展开叙述。问题排查首先,为了排查到底是哪里的情况。我们知道,tez对DAG运算做了很多优化,和传统MR运行有区别。那么到底如何查呢。首先为...原创 2020-04-12 14:34:42 · 5488 阅读 · 17 评论 -
手写MR之自定义输出
前言为了实现控制最终文件的输出路径和输出格式,可以通过自定义outputFormat来进行实现。但是由于MR机制问题,驱动类里必须声明一个输出目录,而且必须是不存在的!否则在校验阶段无法提交job!需求读取一个txt文件,将每行包含zhengkw的合并到一个文件中,剩下的行合并到另一个文件中!Mapperpackage com.zhengkw.outputformat;impo...原创 2020-04-09 15:33:05 · 278 阅读 · 0 评论 -
手写MR之自定义输入解决小文件问题(sequenceFile)
前言无论HDFS还是MapReduce,在处理小文件时效率都非常低,但又难免面临处理大量小文件的场景,此时,就需要有相应解决方案。可以自定义InputFormat实现小文件的合并。需求将多个小文件合并成一个SequenceFile文件(SequenceFile文件是Hadoop用来存储二进制形式的key-value对的文件格式),SequenceFile里面存储着多个文件,存储的形式为文件路...原创 2020-04-09 15:11:15 · 391 阅读 · 0 评论 -
高版本hive中集成Tez以及配置代理和允许通过web端口访问hdfs
前言hive经常用于数仓,但是由于他的计算引擎(默认是MR)不支持DAG(Directed Acyclic Graph)DAG解释,所以导致效率低下,所以一般生产中用集成Tez详细配置解析,笔者就在这里简单的记录下配置。解压安装将apache-tez-0.9.1-bin.tar.gz上传到HDFS的/tez目录下。这一步是因为tez是在yarn上运行Tezjob,但是如果只装在一台机器上...原创 2020-04-07 21:39:46 · 709 阅读 · 0 评论 -
Hive中自定义UDF打包后上传到HDFS上的自定义函数库目录
前言之前写了一个指定UDF的案例,其中分享了2个比较常见的导入jar的方法!但是实际开发中,还可以放到HDFS上来进行管理,下面就此展开!自定义UDF方法上传jar在HDFS上创建一个目录/user/hive/jars[zhengkw@hadoop102 module]$ hadoop fs -mkdir -p /user/hive/jars上传[zhengkw@hadoop10...原创 2020-04-05 23:55:53 · 1409 阅读 · 0 评论 -
Failure to find org.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde in http://maven.aliyun.com
问题编写Hive自定义UDF以及UDTF函数时,测试都通过了,但是在附带依赖打包的时候发现了一个错误!错误代码:Failure to findorg.pentaho:pentaho-aggdesigner-algorithm:pom:5.1.5-jhyde inhttp://maven.aliyun.com/nexus/content/repositories/central/ wa...原创 2020-04-02 15:00:58 · 7238 阅读 · 7 评论 -
Linux中编译hadoop-lzo使hadoop能够支持lzo(maven编译)
Hadoop支持LZO环境准备 maven(下载安装,配置环境变量,修改sitting.xml加阿里云镜像) gcc-c++ zlib-devel autoconf automake libtool通过yum安装即可,yum -y install gcc-c++ lzo-devel zlib-devel autoconfautomake libtool注意 maven的配置...原创 2020-03-27 21:54:53 · 1416 阅读 · 1 评论 -
FastJsonAPI运用
实体类package com.zhengkw.dw.bean;/** * @ClassName:Person * @author: zhengkw * @description: * @date: 20/03/26下午 9:30 * @version:1.0 * @since: jdk 1.8 */public class Person { private Integ...原创 2020-03-27 01:10:11 · 200 阅读 · 0 评论 -
kafka中关于HW,LEO,offset之间的关系
前言下面叙述的概念我曾去官网查询无果,于是查询了大量的技术帖子进行汇总。这个结论是目前普遍接受的解释!参考贴链接offset官方的解释是每个一个offset就是一个消息!这里面会发现offset不连续,其实是进行了压缩,例如79到86.如果指定offset来消费消息,那么从79到86指定是等价的!这里就不展开说了,有兴趣自己查阅文档!HWHW我在官方文档里没有查到其定义,但是看了很...原创 2020-03-26 15:35:32 · 1221 阅读 · 0 评论 -
Hadoop源码编译支持Snappy压缩(Linux环境下联网利用Maven编译)
前言hadoop的类库中是不带有snappy的,但是考虑到snappy的优点(压缩速度较快,压缩比率较好,虽然不支持切片,但是满足在mr中的shuffle阶段和输出结果压缩!)后面我会再整理下hadoop常用压缩格式,以及各自的优劣点!资源准备CentOS联网配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的,以为需要用到Yum来进行安装!Yum安装...原创 2020-03-26 13:55:22 · 461 阅读 · 3 评论 -
azkaban的复杂场景使用以及使用时发现的一些坑!
前言完成一个复杂的azkaban使用案例,结构图如下任务描述job1:使用az框架传参,打印任务准备开始!job2:依赖于job1,在本地创建一个目录名字叫做inputwc!job3:依赖于job2,利用hive查询结果并输出到指定目录下的指定文件里job4:依赖于job2,调用自定义java程序生成一个文件,内容是职业名称并用制表符隔开!job5:依赖于job3,job4,将j...原创 2020-03-19 22:55:54 · 1120 阅读 · 0 评论 -
在高可用集群中再搭建HBase集群时master日志报错zookeeper.MetaTableLocator: Failed verification of hbase:meta
前言造成原因是由于zookeeper中的hbase中的meta数据丢失或不全造成的,这里提供一个搭建初期时的解决方案。生产时解决方案待定!解决思路先关闭Hbase的相关服务在hdfs上删除Hbase目录关闭hdfs和yarn服务关闭zkzk中删除zkdata中(在zoo.cfg中配置的dir)的数据 保留myid删除hbase里logs中的所有数据群起zk格式化 zkfc群...原创 2020-03-18 19:10:10 · 288 阅读 · 0 评论 -
搭建一个Azkaban(keytool生成SSL证书)
前言Azkaban是由Linkedin公司推出的一个批量工作流任务调度器,主要用于在一个工作流内以一个特定的顺序运行一组工作和流程,它的配置是通过简单的key:value对的方式,通过配置中的Dependencies 来设置依赖关系。Azkaban使用job配置文件建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和跟踪你的工作流。环境准备由于都是在java虚拟机上运行的java...原创 2020-03-17 23:37:59 · 1323 阅读 · 0 评论 -
kafka官方server-stop脚本无法生效的解决办法
前言综合2个帖子在这里插入代码片帖子1帖子2得到结果!修改kafka-server-stop.sh此时可以把PIDS=$(ps ax | grep -i ‘kafka.Kafka’ | grep java | grep -v grep| awk ‘{print $1}’)这行代码修改为PIDS=$(jps -lm | grep -i 'kafka.Kafka' | awk '{pri...原创 2020-03-17 00:17:58 · 924 阅读 · 0 评论 -
Hadoop节点动态新增和退役&Datanode多目录
前言随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。动态新增节点环境准备(1)在hadoop104主机上再克隆一台hadoop105主机(2)修改IP地址和主机名称(3)删除原来HDFS文件系统留存的文件(/opt/module/hadoop-2.7.2/data和log)(4)source一下配置文件...原创 2020-03-15 22:14:17 · 463 阅读 · 0 评论 -
flume自定义组件(source,Interceptor,sink)
Source原理每次Agent启动后,会调用PollableSourceRunner.start(),开启一个PollableSourceRunner线程!这个线程会初始化PollableSource(可以轮询地去读取数据源中的数据)对象! PollableSource由所在的PollingRunner线程控制,调用PollableSource的process()方法,来探测是否有新的...原创 2020-03-14 01:06:26 · 409 阅读 · 0 评论 -
手写MR之GroupComparator(Java)
Beanpackage com.zhengkw.groupingcomparator;import org.apache.hadoop.io.WritableComparable;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;/** * @ClassName:Order...原创 2020-03-11 20:39:05 · 105 阅读 · 0 评论 -
Hive自定义UDF函数
自定义UDF函数创建一个Maven工程Hive导入依赖<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec --> <dependency> <groupId>org.apache.hive</groupId>...原创 2020-03-11 01:36:56 · 363 阅读 · 0 评论 -
手写MapReduce之combiner
数据源准备4个txt文件,内容不限制,我用的是英文单词,用空格进行分割!Mapperpackage com.zhengkw.combiner;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import ...原创 2020-03-08 20:42:06 · 228 阅读 · 0 评论 -
手写MapReduce之实现WritableComparable<T>进行TopN排序(Java)
前言直通车之前写了一个全排序,使用的是RawComparator来实现!这次则使用WritableComparable实现!数据源 tel up down total13470253144 180 180 36013509468723 7335 110349 11768413560439638 918 4938 585613568436656 3597 25635 29...原创 2020-03-08 20:09:23 · 501 阅读 · 0 评论 -
手写MapReduce之Partitioner分区(Java)
前言通过继承Partitioner<MapKEYOUT,MapVALUEOUT >实现对数据的输出的结果文件数量划分!测试数据1 13736230513 192.196.100.1 www.zhengkw.com 2481 24681 2002 13846544121 192.196.100.2 264 0 2003 13956435636 192.196.100.3...原创 2020-03-08 19:53:45 · 399 阅读 · 0 评论 -
手写MapReduce系列之RawComparator<T>接口实现进行数据全排序
前言这个系列是对MR手写程序的整理,为了加深对MR的理解!数据源 手机号 上行 下行 总计13470253144 180 180 36013509468723 7335 110349 11768413560439638 918 4938 585613568436656 3597 25635 2923213590439668 1116 954 207013...原创 2020-03-08 17:25:31 · 277 阅读 · 0 评论 -
利用API来对HDFS操作(Java)
package com.zhengkw.hdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.File;imp...原创 2020-03-08 16:55:46 · 202 阅读 · 0 评论 -
低版本Hive配置详情
前言已经搭建起来一个Hadoop-HA集群,上面也搭建了Hive以及MySQL搭建方法直通车!点我!!。既然万事俱备,那么开始认识下Hive框架吧!从wordcount认识hive前面手写过很多MR程序,也对MR有一定的认识。hive框架是将每一句HQL转换成为一个MR程序!虽然提供的模板不能完全的覆盖所有生产环境,但是框架的强大依然让它非常流行。下面以简单的wordcount程序来认识下h...原创 2020-03-06 23:24:15 · 345 阅读 · 0 评论 -
手写一个简单的MR程序,并在集群中运行!!(wordcount)
前言实现一个手写的WC程序,并打包在集群上运行。创建一个Maven工程,导入pom工程目录导入pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XM...原创 2020-03-05 16:53:19 · 824 阅读 · 0 评论 -
基于HDFS-HA搭建一个Yarn-HA
前言之前搭建好了一个HDFS的高可用,基于他点我!!!再搭建起Yarn的高可用!常用脚本 直通车点我!!修改配置并且分发yarn-site.xml```powershell<?xml version="1.0"?><!-- Licensed under the Apache License, Version 2.0 (the "License"); you...原创 2020-03-05 16:35:27 · 894 阅读 · 0 评论 -
利用HadoopAPI实现对文件的压缩
package com.zhengkw.compression;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FSDataOutputStream;import org.apache.hadoop.f...原创 2020-03-05 11:59:04 · 319 阅读 · 0 评论 -
安装MySQL,替换Hive中的derby
前言Hive搭建好了,发现自带derby无法满足生产需求,所以需要重新指定一个关系型数据库,作为存放元数据的库!安装前准备上传rpm安装包到指定目录下笔者是放到了/opt/software目录中。检查linux是否已经安装了MySQLrpm -qa | grep mysqlrpm -qa | grep MySQL有查询出则删除,我查询到的mysql如下:mysql-libs-...原创 2020-03-05 11:32:25 · 394 阅读 · 0 评论