- 博客(125)
- 资源 (5)
- 收藏
- 关注
原创 java多线程实现Runnable接口的线程安全问题
一、案例:模拟火车站售票,开启三个窗口售票出现的问题:卖票过程中,出现了重票、错票 ==>也就是出现了线程的安全问题问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票。解决思路:当一个线程(一个窗口)在操作ticket(火车票)的时候,其他线程不能参与进来。直到这个线程(这个窗口)操作完ticket(火车票)时,其他线程才可以开始操作ticket(火车票)。这种情况即使这个线程(这个窗口)出现了阻塞,也不能被改变。解决办法:在Java中,我们通过同步机制
2020-11-16 18:47:30
1227
原创 idea中resources文件夹下无法显示.log文件解决
一、很困扰的问题,.log文件明明已经上传到resources文件夹下了,但是无法显示而且我重新上传,就提示已经存在,是否覆盖了二、解决办法ctrl+alt+s,打开设置如下图所示:如下图所示:添加*.log:...
2020-11-10 09:45:54
778
1
原创 zookeeper 案例讲解
一、监听服务器节点动态上下线案例需求:某分布式系统中,主节点可以有多台,可以动态上下线,任意一台客户端都能实时感知到主节点服务器的上下线。需求分析:不管是服务器还是客户端,对于zookeeper而言都是客户端服务器端代码:import org.apache.zookeeper.*;import org.apache.zookeeper.data.Stat;import java.io.IOException;public class DistributeServer { //
2020-11-09 15:14:11
214
原创 zookeeper api操作讲解
一、zookeeper中节点增删改查pom中添加依赖:<dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.2</version> </dependency> <dependen
2020-11-08 22:02:52
138
原创 zookeeper 3.4.10版本安装部署及命令行操作讲解
一、本地模式安装部署安装前准备安装Jdk拷贝zookeeper安装包到Linux系统下解压到指定目录 [jh@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz -C /opt/module/配置修改将/opt/module/zookeeper-3.4.10/conf 这个路径下的 zoo_sample.cfg修改为zoo.cfg [jh@hadoop102 conf]$ mv zoo_sample.cfg zoo.c
2020-11-08 21:14:12
676
2
原创 zookeeper 概述讲解
一、下载地址https://mirrors.aliyun.com/apache/zookeeper/二、zookeep是什么zookeeper是一个分布式协调服务的开源概架,可以用来解决分布式集群中应用系统的一致性问题(例如怎样避免同时操作同一数据造成脏读的问题);也是为分布式程序提供协调服务得Apache项目。zooKeeper本质上是一个分布式的小文件存储系统,提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理,从而用来维护和监控你存储的数据的状态变化,通过监控这些
2020-11-08 19:52:15
262
原创 flink 中window的开窗开始时间、结束时间讲解
可以看到计算公式如下/** * Method to get the window start for a timestamp. * * @param timestamp epoch millisecond to get the window start. * @param offset The offset which window start would be shifted by. * @param windowSize The size of the generated ...
2020-11-08 14:10:36
2538
原创 Java实现斐波那契数列以及int取值溢出问题详解
一、斐波那契数列是什么?这里借鉴百度百科一下下:斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n∈ N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有
2020-11-07 20:40:17
1663
原创 flink 报错:could not find implicit value for evidence parameter of type 已解决
一、详细报错Error:(42, 74) could not find implicit value for evidence parameter of type org.apache.flink.api.common.typeinfo.TypeInformation[com.jh.appmarketing23.MarketingUserBehavior] val stream: DataStream[MarketingUserBehavior] = environment.addSource(
2020-11-06 17:11:29
1968
原创 基于flink 1.11版本 的Watermark机制
一、Watermark前言在使用eventTime的时候如何处理乱序数据?我们知道,流处理从事件产生,到流经source,再到operator,中间是有一个过程和时间的。虽然大部分情况下,流到operator的数据都是按照事件产生的时间顺序来的,但是也不排除由于网络延迟等原因,导致乱序的产生,特别是使用kafka的话,多个分区的数据无法保证有序。所以在进行window计算的时候,我们又不能无限期的等下去,必须要有个机制来保证一个特定的时间后,必须触发window去进行计算了。这个特别的机制,就是water
2020-11-05 19:11:41
193
原创 flink报错:Error: Static methods in interface require -target:jvm-1.8 已解决
一、详细报错Error:(55, 92) Static methods in interface require -target:jvm-1.8 .assignTimestampsAndWatermarks(WatermarkStrategy.forBoundedOutOfOrderness[LogEvent](Duration.ofSeconds(2))二、报错原因在flink 1.11版本中使用 WatermarkStrategy 类中的方法时可能会报异常三、解决第一种解决
2020-11-05 18:36:20
421
原创 java中常见的时间格式化
一、时间戳时间戳是指英国大伦敦格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数二、java时间格式化字母及其含义字母含义GEra 标志符y年M年中的月份w年中的周数W月中的周数D年中的天数d月份中的天数F月份中的星期E星期中的天数aam/pm 标记H一天中的小时数(0-23)k一天中的小时数(1-24Kam/pm
2020-11-05 14:54:50
11309
原创 flink1.11报错:java.lang.IllegalStateException: No ExecutorFactory found to execute the application
一、报错信息Exception in thread "main" java.lang.IllegalStateException: No ExecutorFactory found to execute the application. at org.apache.flink.core.execution.DefaultExecutorServiceLoader.getExecutorFactory(DefaultExecutorServiceLoader.java:84) at org.apache
2020-11-04 19:36:58
2680
原创 JDBC报错:The server time zone value is unrecognized or represents more than one time zone 已解决
一、详细报错信息Caused by: java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the 'serverTimezone' configuration property) to use a more specifc time zo
2020-11-03 22:32:32
1519
7
原创 flink 安装Standalone高可用模式报错 Could not start cluster entrypoint StandaloneSessionClusterEntrypoint 已解决
一、先来看看详细报错信息:ERROR org.apache.flink.runtime.entrypoint.ClusterEntrypoint - Could not start cluster entrypoint StandaloneSessionClusterEntrypoint.org.apache.flink.runtime.entrypoint.ClusterEntrypointException: Failed to initialize the cluster entr
2020-10-28 14:47:45
5494
2
原创 Kafka 实现高效读写数据
一、顺序写磁盘Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端,为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。二、零复制(零拷贝)技术...
2020-10-27 09:56:04
297
原创 idea中java项目打jar包详解
1、点击 File , 点击 Project Structure2、如下图依次点击3、点击选择主类4、因为项目已经指定了相关jar包,所有把这些选中的删掉5、点击 Build 、点击 Build Artifacts6、一切ok
2020-10-27 09:37:34
316
原创 flume中 kafka sink flume自定义Interceptor实现消息分主题收集
自定义 flume 拦截器类,并打包上传到 /flume/lib 下import org.apache.flume.Context;import org.apache.flume.Event;import org.apache.flume.interceptor.Interceptor;import java.util.ArrayList;import java.util.List;import java.util.Map;/* 自定义flume 拦截器 */public class Ka
2020-10-27 09:07:43
336
原创 flume kafka sink kafka对接flume简单实现详解
1、flume的配置文件 kafka-sink.properties# Name the components on this agent# source:起一个别名# properties文件它是java的配置文件,=左边就是键,=右边是值;键的开头都是以a1(就是flume的名字--agent的名字就是a1);a1随便起a1.sources = r1# sink:起一个别名a1.sinks = k1# channels;:起一个别名a1.channels = c1# Describe
2020-10-26 21:33:39
2030
原创 Kafka producer 自定义拦截器(interceptor)
一、拦截器原理Producer 拦截器(interceptor)是在 Kafka 0.10 版本被引入的,主要用于实现 clients 端的定制化控制逻辑。对于 producer 而言,interceptor 使得用户在消息发送前以及 producer 回调逻辑前有机会对消息做一些定制化需求,比如修改消息等。同时,producer 允许用户指定多个 interceptor按序作用于同一条消息从而形成一个拦截链(interceptor chain)。Intercetpor 的实现接口是 org.apa
2020-10-26 17:21:48
636
8
原创 kafka consumer消费者API
一、准备工作在IDE上创建maven项目,pom文件添加依赖<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --><dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version
2020-10-26 15:03:48
342
原创 kafka producer 生产者API操作
一、准备工作在IDE上创建maven项目,pom文件添加依赖<!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients --><dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version
2020-10-25 20:53:00
196
原创 Kafka consumer 消费者原理详解
一、消费方式kafka采用发布订阅模式:一对多。发布订阅模式又分两种:push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适当的速率消费消息。kafka consumer 采用 pull(拉)模式从 broker 中读取数据。pull 模式不足之处是,如果 kafka 没
2020-10-25 12:29:42
1258
原创 Kakfa Broker Leader的选举机制讲解
Kakfa Broker Leader的选举Kakfa Broker集群受Zookeeper管理。所有的Kafka Broker节点一起去Zookeeper上注册一个临时节点,因为只有一个Kafka Broker会注册成功,其他的都会失败,所以这个成功在Zookeeper上注册临时节点的这个Kafka Broker会成为Kafka Broker Controller,其他的Kafka broker叫Kafka Broker follower。(这个过程叫Controller在ZooKeeper注册Wa
2020-10-24 15:55:42
1899
6
原创 kafka producer生产者设计原理讲解
一、分区策略分区的原因方便在集群中扩展,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic又可以有多个 Partition 组成,因此整个集群就可以适应任意大小的数据了;可以提高并发,因为可以以 Partition 为单位读写了。分区的原则我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象。(1)指明 partition 的情况下,直接将指明的值直接作为 partiton 值;(2)没有指明 partition 值但有
2020-10-24 15:08:39
448
原创 kafka 集群部署搭建
一、简单介绍Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。二、集群规划主机centos7-1centos7-2centos7-3centos7-4kafka√√√√zookeeper√√√√三、集群部署解压安装包修改配置文件vim conf/server.properties#broker 的全局唯一编号,不能重复broker.id=0#删除 topi
2020-10-23 22:24:29
151
原创 消息队列的两种模式及优缺点
一、使用消息队列的好处解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。可恢复性:系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理。缓冲:有助于控制和优化数据流经过系统的速度,解决生产消息和消费消息的处理速度不一致 的情况。灵活性 &峰值处理能力:在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流量并不常见。如果为以能处理这类峰值访问为标准来投入资源随
2020-10-23 21:49:02
1023
原创 Kafka 基础架构、工作流程、存储机制介绍
Producer :消息生产者,向 kafka broker 发消息的客户端;Consumer :消息消费者,向 kafka broker 取消息的客户端;Consumer Group :消费者组,由多个 consumer 组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。Broker :一台 kafka 服务器就是一个 broker。一个集群由多个 broker 组成。一个 b..
2020-10-23 21:16:43
317
原创 hive中beeline连接报错 User: root is not allowed to impersonate root:已解决
hive中beeline连接报错Error: Could not open client transport with JDBC Uri: jdbc:hive2://node-4:10000: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException):
2020-10-23 20:09:09
1447
原创 Linux上安装NetCat及简单使用
一、介绍:netcat是一个通过TCP/UDP在网络中进行读写数据工具(命令),被称为“瑞士军刀”,主要用于调试领域、传输领域甚至黑客攻击领域。利用该工具,可以将网络中一端的数据完整的发送至另一台主机终端显示或存储,常见的应用为文件传输、与好友即时通信、传输流媒体或者作为用来验证服务器的独立的客户端。当然,也可以在脚本中使用该工具。二、Linux上安装:第一种方式:yum -y install ncyum remove nmap-ncat.x86_64(删除) 第二种方式:下载rp
2020-10-23 15:41:55
2309
原创 java连接MongoDb报错 com.mongodb.MongoSocketOpenException: Exception opening socket 已解决
用idea写java连接MongoDb报错,先来看看详细报错信息解决办法编辑vim mongodb/conf/mongod.conf添加bind_ip=0.0.0.0修改完之后配置文件为:#指定启动端口port=27017#指定数据存放目录dbpath=data/db#指定日志存放目录logpath=log/mongodb.log#后台运行fork=true#使用任何IP登陆bind_ip=0.0.0.0出现报错信息原因从mongodb 3.6版本之后,它把b
2020-10-22 19:52:14
4972
9
原创 Linux讲解使用前准备
一、Linux和Windows区别比较WindowsLinux费用收费且很贵Linux免费或少许费用软件与支持数量和质量的优势,不过大部分为收费软件;由微软官方提供支持和服务开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和自由软件社区提供支持安全性三天两头打补丁安装系统安全性更新,还是会中病毒木马要说Linux没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比Windo
2020-10-22 14:21:01
1007
6
原创 Kafka 常用命令行操作汇总
启动服务bin/kafka-server-start.sh config/server.properties 阻塞进程bin/kafka-server-start.sh -daemon config/server.properties 守护进程停止服务bin/kafka-server-stop.sh config/server.properties新建Topicbin/kafka-topics.sh --zookeeper centos7-1:2181 --create --topic my
2020-10-20 20:25:00
363
原创 log4j2 概述、配置详情、日志八种输出级别讲解
Log4j:专门为我们的javat程序记录日志使用的;就是jar包+配置文件那么没有使用log4j的时候,如何打印信息呢?System.out.println(“====”);log4j2官网:http://logging.apache.org/log4j/2.x/文件目录介绍:项目中部署:配置文件log4j2.xml<?xml version="1.0" encoding="UTF-8"?><!-- status=debug 可以查看log4j的装配过程 --&g
2020-10-20 19:51:16
1945
原创 Error:java: Compilation failed: internal java compiler error报错 java内部编译失败解决办法
Error:java: Compilation failed: internal java compiler error报错,java内部编译失败解决点击 File-ProJect Structure点击 File-Settingsmaven项目中,也可在pom文件中指定jdk相关信息:<plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</
2020-10-20 15:47:48
312
原创 Hadoop中 Map Join与计数器
一、概念Map Join适用于一张表十分小、一张表很大的场景,然后两张表还有关联二、项目介绍1、待处理文本order.txt订单信息表里记录着订单ID,商品ID,订单销量(模拟当大表)1001 01 11002 02 21003 03 31004 01 41005 02 51006 03 6pd.txt商品信息表里记录着商品ID,商品名称(模拟当小表,小表直接加入缓存)01 小米02
2020-10-20 13:00:23
224
2
原创 idea中部署tomcat以及解决tomcat控制台乱码问题
idea中部署tomcat1、创建一个Maven-web项目点击File–New–Project选择模板,webapp设置项目名等完成2、部署tomcat选择local3、tomcat控制台乱码解决ctrl+alt+s 打开idea设置,修改tomcat中的conf下的配置文件在server.xml中添加 URIEncoding=“UTF-8”将logging.properties文件中改成GBK...
2020-10-19 19:09:23
239
原创 Hadoop中 Combiner合并
一、概念Combiner是MapReduce程序中Mapper和Reduce之外的一种组件Combiner组件的父类就是ReducerCombiner和Reduce的区别主要在于运行位置Combiner是在每一个MapTask所在的节点运行, Reduce是在接收全局所有Mapper的输出结果后执行Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减少网络传输量Combiner要在不影响最终逻辑业务的情况下使用,而且,Combiner的输出kv要
2020-10-19 18:28:09
240
原创 idea设置新建一个类自动生成所属者和时间信息
1、首先打开idea,点击File,Settings2、点击Editor3、里面添加这些信息,当然也可以设置成自己喜欢的内容/** * CREATE BY ${USER} ON ${YEAR}.${MONTH}.${DAY} ${HOUR}:${MINUTE} $DAY_NAME_FULL * DESC: */
2020-10-18 22:32:44
949
flink-shaded-hadoop-2-uber-2.7.5-8.0.jar
2020-10-28
项目所需数据源 logs.txt
2020-10-14
spark core项目所用到的数据源文件 agent1.log
2020-10-13
数据源文件 agent.log
2020-10-13
项目所需数据源文件 ip.txt
2020-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅