- 博客(49)
- 收藏
- 关注
原创 Kafka的配置文件说明
目录Server.properties配置文件说明producer生产者配置文件说明consumer消费者配置详细说明Server.properties配置文件说明#broker的全局唯一编号,不能重复broker.id=0#用来监听链接的端口,producer或consumer将在此端口建立连接port=9092#处理网络请求的线程数量num.network.threads=3#用来处理磁盘IO的线程数量num.io.threads=8
2022-05-29 08:40:45
466
原创 Kafka当中的数据不丢失机制
生产者生产数据不丢失生产者数据不丢失过程图说明:有多少个分区,就启动多少个线程来进行同步数据发送数据方式可以采用同步或者异步的方式-过程图可以采用同步或者异步的方式同步:发送一批数据给kafka后,等待kafka返回结果1、生产者等待10s,如果broker没有给出ack相应,就认为失败。2、生产者重试3次,如果还没有响应,就报错异步:发送一批数据给kafka,只是提供一个回调函数。1、先将数据保存在生产者端的buffer中。buffer大小是2万条
2022-05-29 08:35:10
222
原创 Kafka的log存储以及查询机制
kafka中log日志目录及组成kafka在我们指定的log.dir目录下,会创建一些文件夹;名字是【主题名字-分区名】所组成的文件夹。 在【主题名字-分区名】的目录下,会有两个文件存在,如下所示:#索引文件00000000000000000000.index#日志内容00000000000000000000.log在目录下的文件,会根据log日志的大小进行切分,.log文件的大小为1G的时候,就会进行切分文件在kafka的设计中,将offset值作为了文件名的一部分
2022-05-29 08:26:06
1317
原创 Kafka的JavaAPI操作
1、创建maven工程并添加jar包创建maven工程并添加以下依赖jar包的坐标到pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav.
2022-05-29 07:43:51
1518
原创 Kafka集群环境搭建
目录一、初始化环境准备二、下载安装包并上传解压三、node01服务器修改kafka配置文件四、安装包分发到其他服务器上面去五、node02与node03服务器修改配置文件六、kafka集群启动与停止一、初始化环境准备安装jdk,安装zookeeper并保证zk服务正常启动二、下载安装包并上传解压通过以下地址进行下载安装包node01执行以下命令,下载并解压cd /export/softwareswget http://archive.apache.o
2022-05-23 22:58:11
578
原创 Kafka 认证登录注意事项
最近,在写关于Kafka的消费端代码,发现若要消费,需要登录的时候,对对端Kafka服务进行认证,研究了一番,以下将代码放出来参考了文章Kafka配置安全认证_月下茶凉的博客-CSDN博客_kafka安全认证Kafka配置安全认证提示:本人提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人
2022-05-18 22:08:20
1094
原创 解决使用maven打jar包缺失依赖包问题
问题描述今日,遇到一个问题,在用IDEA写好Java 代码之后,在IDEA运行没有问题,但是用maven打成jar包再运行的时候,却报缺失依赖包的情况。例如下面情况pom.xml配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-in
2022-05-14 22:54:20
17928
2
原创 Kafka 简单介绍
1、消息队列的介绍消息(Message)是指在应用之间传送的数据,消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,有消息系统来确保信息的可靠专递,消息发布者只管把消息发布到MQ中而不管谁来取,消息使用者只管从MQ中取消息而不管谁发布的,这样发布者和使用者都不用知道对方的存在2、常用的消息队列介绍2.1、RabbitMQRabbitMQ 2007年发布,是一个在AMQP(高级消息
2022-05-10 23:23:34
2226
原创 Impala基本介绍及架构介绍
impala基本介绍impala是cloudera 提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快3到10倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具。impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点。impala数据流理解impala优点与缺点优点1、基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。2、无需转换为Mapreduce,
2022-01-09 21:40:52
2639
原创 sqoop应用
本文章只是简单介绍了sqoop应用有空我会写一篇datax的使用,以及datax和sqoop的组件区别~1、sqoop1 与 sqoop2 的区别架构区别sqoop1架构sqoop2 架构可以看出sqoop2多了一层服务层一般项目实际应用中使用的是sqoop1版本!sqoop下载地址(appach版本)Index of /dist/sqoophttp://archive.apache.org/dist/sqoop/2、sqoop工作原理...
2021-12-20 22:38:26
187
原创 flume的负载均衡load balancer
负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法。Load balancing Sink Processor 能够实现 load balance 功能,如下图Agent1 是一个路由节点,负责将 Channel 暂存的 Event 均衡到对应的多个 Sink组件上,而每个 Sink 组件分别连接到一个独立的 Agent 上,示例配置,如下所示:在此处我们通过三台机器来进行模拟flume的负载均衡三台机器规划如下:node01:采集数据,发送到node02和n...
2021-12-04 08:55:28
213
原创 使用sshxcute来操作ssh端
本文介绍使用sshxcute的JAR包,通过SSH协议在远程Linux/Unix系统上执行命令1、JAR准备下载地址文件分享https://share.weiyun.com/ZGkRvUQ9
2021-11-23 10:16:47
879
原创 Flume简单安装及使用
1、Flume的安装1.1、下载下载地址Download — Apache Flumehttp://flume.apache.org/download.html下载 binary版本1.2、安装解压文件修改配置文件vi flume-env.sh填写JAVA_HOME 路径查看版本有显示的话,即可表示完成2、简单使用2.1、需求将日志文件 test.log内容输入到 hdfs上准备脚本#!...
2021-11-14 09:39:36
962
原创 Hive调优
1、Fetch抓取(Hive可以避免进行MapReduce)Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查...
2021-10-27 23:18:25
343
原创 Hive权限管理,增加用户,授权
目标:Hive添加用户,并授予不同的权限用户TRoot:拥有超级权限,由root用户授权 用户Auser:由TRoot授权,不能create database/drop database,拥有名为 Gdb1 的 database 所有权限 用户Buser:由用户Auser授权,拥有 Gdb1 的读写权限 用户Cuser:由用户Buser授权,只能够拥有Gdb1的读权限 用户Duser:由TRoot授权,可以同时拥有Gdb1、Gdb2的读写权限 用户Euser:由TRoot授权,只能够拥有G
2021-10-17 11:14:30
8437
原创 Hive安装部署
1、安装1.1derby版hive直接使用1.1.1解压hivecd /export/softwarestar -zxvf hive-1.1.0-cdh5.14.0.tar.gz -C ../servers/1.1.2直接启动bin/hivecd ../servers/cd hive-1.1.0-cdh5.14.0/bin/hivehive> create database mytest;缺点:多个地方安装hive后,每一个hive是拥有一套自...
2021-10-06 12:34:39
123
原创 HIVE简单介绍
1、HIVE简介什么是HiveHive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapReduce的任务的工具,甚至更进一步可以说hive就是一个MapReduce的客户端为什么使用Hive直接使用hadoop所面临的问题人员学习成本太高 项目周期要求太短 MapReduce实现复杂查询
2021-10-06 12:26:07
213
原创 Yarn资源调度
目录1、web界面查看2、Yarn介绍3、Yarn的主要组件介绍与作用3.1、yarn当中的各个主要组件的介绍3.2、yarn当中各个主要组件的作用resourceManager主要作用NodeManager主要作用ApplicationMaster主要作用Container主要作用3.3、yarn的架构3.4、yarn当中的调度器3.5、yarn常用参数设置1、web界面查看yarn集群的监控管理界面:http://192.168.52.100
2021-09-22 23:02:23
272
原创 MapReduce参数优化
MapReduce重要配置参数1、资源相关参数以下调整参数都在mapred-site.xml这个配置文件当中有//以下参数是在用户自己的mr应用程序中配置就可以生效(1) mapreduce.map.memory.mb: 一个Map Task可使用的资源上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。(2) mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Red
2021-09-22 22:31:15
292
原创 MapReduce多Job串联
多Job串联一个稍复杂点的处理逻辑往往需要多个mapreduce程序串联处理,多job的串联可以借助mapreduce框架的JobControl实现示例代码:ControlledJob cJob1 = new ControlledJob(job1.getConfiguration());ControlledJob cJob2 = new ControlledJob(job2.getConfiguration());ControlledJob cJob3 = new Controlled
2021-09-22 22:19:28
251
原创 mapreduce高阶内容(三) 自定义inputFormat
1、需求现在有一些数据,将数据原封不动地输出到两个不同的文件夹当中。2、分析程序的关键点是要在一个mapreduce程序中根据数据输出结果到不同目录,这类灵活的输出需求可以通过自定义outputformat来实现3、实现实现要点:在mapreduce中访问外部资源 自定义outputformat,改写其中的recordwriter,改写具体输出数据的方法write()第一步:自定义一个outputformatpackage cn.laojiajun.myform
2021-09-12 07:10:21
129
原创 Java抽象类小记,踩踩多态的坑!
今天学习写MapReduce的时候,遇到下面这样的一个代码:如图所见,context.getInputSplit() 返回的是 InputSplit 类型,而 InputSplit 是父类,FileSplit 是子类,我们知道,Java里,父类不能够强制转换成子类,那为什么这里又可以呢?带着这个疑问,我做了一个小实验,详见下面代码:Father类:public abstract class Father { public void sayFather() {
2021-09-06 22:36:14
202
1
原创 mapreduce高阶内容(二) 自定义inputFormat
1、需求无论hdfs还是mapreduce,对于小文件都有损效率,实践中,又难免面临处理大量小文件的场景,此时,就需要有相应解决方案2、分析小文件的优化无非以下几种方式:在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS 在业务处理之前,在HDFS上使用mapreduce程序对小文件进行合并 在mapreduce处理时,可采用combineInputFormat提高效率注意:本文介绍的是第二种处理方法!!!!3、实现本文实现的是上述第二种方式程序的核心机制:
2021-09-05 22:52:08
106
原创 reduce端Join算法实现以及map端Join算法实现
reduce端Join算法实现需求订单数据表t_order id date pid amount 1001 20150710 P0001 2 1002 20150710 P0001 3 1002 2015071
2021-09-05 22:37:59
106
原创 mapreduce高阶内容(一)
1、MapReduce的分区与reduceTask的数量在MapReduce中,通过我们指定分区,会将同一个分区的数据发送到同一个reduce当中进行处理,例如我们为了数据的统计,我们可以把一批类似的数据发送到同一个reduce当中去,在同一个reduce当中统计相同类型的数据,就可以实现类似数据的分区,统计等说白了就是相同类型的数据,送到一起去处理,在reduce当中默认分区只有1个。MapReduce当中的分区类图需求:将以下数据进行分开处理详细数据参见partition.cs.
2021-08-17 10:59:26
260
原创 Java编写mapreduce单词统计
使用Java编写mapreduce程序,核心思想是 分治简单来说,mapreduce编程需要经过以下8个步骤map阶段第一步:读取文件,解析成key value 对 k1 v1第二步:指定map逻辑,接收 k1 v1 转换成新的 k2 v2shuffle阶段第三步:分区...
2021-08-04 16:34:34
444
1
原创 使用org.apache.hadoop.hive.ql.tools.LineageInfo 找出sql的血缘关系
最近遇到一个需求需求就是,给你一段sql,然后解析这段sql里面用了哪些表。然后将这些表,跟数据库里面的表做匹配,数据库里面的表,会记录哪些表你有权限查询,哪些表没有权限查询需求重点:找出这段sql中使用了哪些表使用org.apache.hadoop.hive.ql.tools.LineageInfo即可找出sql使用到哪些表mvn依赖配置 <dependencies> <dependency> ...
2021-07-18 11:25:00
657
原创 Java代码获取HDFS文件系统操作对象
代码如下package cn.laojiajun.hdfs_project;import org.apache.commons.io.IOUtils;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;import org.junit.jupiter.api.Test;
2021-07-18 09:40:42
243
原创 HDFS简单命令
基本命令lsUsage:hdfs dfs -ls [-R] <args>Options:The -R option will return stat recursively through the directory structure.For a file returns stat on the file with the following format:permissions number_of_replicas userid groupid filesize m.
2021-07-11 11:25:42
105
原创 Hadoop分布式环境搭建练习
1、集群规划集群运行服务规划 192.168.88.3 192.168.88.4 192.168.88.5 zookeeper zk zk zk HDFS JournalNode JournalNode JournalNode NameNode (active) NameNode (standBy) ZKFC ZKFC DataNode DataNode DataNode YARN
2021-06-30 23:48:54
198
2
原创 zookeeper增删改查、监听,java练习
import org.apache.curator.RetryPolicy;import org.apache.curator.framework.CuratorFramework;import org.apache.curator.framework.CuratorFrameworkFactory;import org.apache.curator.framework.recipes.cache.NodeCache;import org.apache.curator.framework.reci.
2021-06-12 18:43:15
1232
3
原创 Hadoop环境准备
1、首先准备好系统镜像文件,我这里是CentOS 8.3下载地址https://mirrors.bfsu.edu.cn/centos/8.3.2011/isos/x86_64/我这里下载的是CentOS-8.3.2011-x86_64-dvd1.iso2、打开Vmware 加载镜像文件2.1新建虚拟机,并设置相关配置2.2、编辑虚拟机设置,加载镜像文件2.3、启动虚拟机,选择 Install CentOS Linux 8 选项...
2021-05-23 15:58:55
192
原创 Maven简单练习
1、安装配置一般情况下,类似IDEA这样的IDE会自带Maven插件,不需要专门安装软件!下面介绍手动安装步骤如下: (1)下载软件包 下载地址: http://maven.apache.org/download.cgi选择下面红框这两个都可以下载之后解压包,得到压缩包然后可以配置环境变量,或者可以不用配置,直接切换到文件夹目录,并进入bin目录,就可以运行了。Linux环境同样道理(两个环境前提都是要配置好java环境变量,否则会报错)...
2021-05-14 20:35:57
283
原创 Java字节流文件复制练习
Java字节流文件复制练习参考代码import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CopyDemo { .
2021-05-03 14:54:23
57
原创 Java异常处理
JAVA 异常分类及处理1、概念如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。 2、异常分类Throwable 是 Java 语言中所有错误或异常的超类。下一层分为 Error 和 ExceptionError1. Error 类是指 java 运行时系统的内部错...
2021-04-30 10:01:53
50
原创 Java集合
JAVA 集合1.接口继承关系和实现集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表包含 Queue)和 map(映射)。1. Collection:Collection 是集合 List、Set、Queue 的最基本的接口。 2. Iterator:迭代器,可以通过迭代器遍历集合中的数据 3. Map:是映射表的基础接口...
2021-04-18 21:44:15
96
原创 数据结构(Java版)
1、数据结构的存储方式数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。散列表、栈、队列、堆、树、图等等各种数据结构,其基础存储结构都是从数组或链表实现而来的用数组实现,就要处理扩容缩容的问题;用链表实现,没有这个问题, 但需要更多的内存空间存储节点指针。数组 访问快,修改慢链表 访问慢,修改快数组由于是紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但正因为连续存储,内存空间必须一次性分配够,所以说数组...
2021-04-14 10:25:10
106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人