自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (5)
  • 收藏
  • 关注

原创 Linux文件操作高频使用命令

文章目录0.新建操作:1.查看操作2.删除操作3.复制操作4.移动操作:5.重命名操作:6.解压压缩操作0.新建操作:mkdir abc #新建一个文件夹touch abc.sh #新建一个文件1.查看操作查看目录:ll #显示目录文件详细信息查看文件内容:cat|head|tail命令cat abc.txt #查看abc的内容head -5 abc.txt #...

2019-08-28 16:47:38 181676 41

原创 Linux文件权限管理

序言:本篇主要讨论以下内容:Linux中文件权限文件的授权用户组文件权限ls -lh //可以查看目录详情,包括内存占用大小drwxr-xr-x 2 root root 21 Jun 19 17:51 fileIotServer-rw-r--r-- 1 root root 63M Jun 19 18:48 iotserver-0.0.1.jar-rw-r--r-- 1 r...

2019-06-22 17:50:25 13529 2

原创 Java并发编程知识导航

Java并发编程知识地图

2022-07-26 12:08:58 205 1

原创 一次内存泄露排查小结

java内存泄露排查总结

2022-07-21 10:02:10 1390

原创 有了Docker为何需要k8s

文章目录为什么需要k8s容器编排的重要性调度和编排的区别K8s核心概念面向API对象编程核心功能全景图之前的文章,我们聊了Docker,提到一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。似乎有了Docker,部署应用已经足够简单,那为什么还需要k8s等编排工具?这篇文章我们就来聊聊k8s要解决什么问题,以及它的一些核心概念。Docker技术成熟后,容器发展就开始关注编排层面。比如Docker公司自己推出的do

2022-01-27 18:45:30 8425 1

原创 HBase笔记-体系结构梳理

Hbase发展历史要说清楚HBase的来龙去脉,还得从Google当年风靡一时的“三篇论文”——GFS、MapReduce、BigTable说起。2003年Google在SOSP会议上发表了大数据历史上第一篇公认的革命性论文——***《 GFS: The Google File System 》***之所以称其为“革命性”是有多方面原因的:首先,Google在该论文中第一次揭示了如何在大量廉价机器基础上存储海量数据,这让人们第一次意识到海量数据可以在不需要任何高端设备的前提下实现存储,换句话说,任何一

2022-01-24 23:40:45 1717

原创 分布式系统架构演进

文章目录服务奔溃的本质分布式架构的演进高可用服务优化思路总结高并发下服务为什么会崩溃,本质是什么? 应对高并发的分布式架构又是如何不断演进优化?服务奔溃的本质崩溃是通俗的说法,就是服务不正常了。但是这个不正常是有语境的,比如我们淘宝买东西,应该几秒钟就提示购买成功,但是如果界面一直转圈,10秒后才出来,这个就叫负载大,卡了。如果这个时间继续增大到30秒或者1分钟,浏览器就认为超时了,直接显示打不开,那么对外就是宣称服务崩溃了。比如双十一某宝一些页面一直打不开。但是实际上服务器上程序并没有退出,只是

2022-01-13 09:04:35 313

原创 Docker常用指令笔记

文章目录0.Docker核心概念1.安装Docker1.1.安装Docker1.2.删除Docker2.Docker常用命令2.1.镜像操作2.2.容器操作3.镜像加速3.小结0.Docker核心概念在上篇分享中,我们聊到 Docker是一种沙盒技术,Docker容器的本质其实是一个特殊的Linux进程。它被Namespace做了隔离,资源被cgroup做了限制,并且能看到的文件系统,也被rootfs做了手脚。那这个容器又是如何启动起来的?隔离限制的幕后操作者又是谁? 这就涉及到下面几个名称:do

2022-01-11 23:03:18 1054

原创 Docker容器的本质

Docker容器让云计算领域再次活跃起来,那些无人问津的后端技术,被再次拿出来讨论。其中最多的一个便是,Docker容器和传统的虚拟机到底有什么区别? 有人说,Docker只是轻量化的虚拟技术?这种说法是否正确,我们往下看。Docker容器和虚拟机的区别虚拟机技术开启了云计算时代,云计算简单的说就是把你的软件运行在云主机上,而云主机就是云计算厂商放在机房中的虚拟机(VM) . 虚拟机是采用硬件虚拟化技术将一台物理机器分隔成多个逻辑隔离的单元,每个单元都是一个虚拟的计算机,有一个完整的操作系统。虚拟机和使

2022-01-07 23:33:05 1710 1

原创 OLAP技术调研

文章目录一.OLTP和OLAP区别二.OLAP分类1.多维OLAP2.关系型OLAP3.混合OLAP三.计算模型对比四.OLAP处理框架1.Hive2.Presto3.Impala4.ClickHouse5.Druid6.Kylin7.Spark SQL&Flink SQL8.Kudu9.Hbase(Phoenix)10.Doris小结参考目前离线数仓已经搭建完毕,之前的业务指标一直在用Hive做T+1处理,用Azkaban每日凌晨进行数据的清洗处理和指标计算,现在进一步想增加交互式查询和更加灵活

2022-01-03 22:33:50 923

原创 布隆过滤器在UV统计中的应用

一.内存瓶颈用Flink统计UV(Unique Visitor:网站独立访客数)这个指标时,需要根据UserId进行去重(同一个用户的多个操作,只会统计一次)。开始的思路是通过一个Set数据结构,保存一个窗口中所有的userID,因为Set数据结构本身具有去重功能,最后计算Set的Size即可得到统计指标。但是当时并未考虑将一个计算窗口中的所有数据存入Set中内存会是一个瓶颈。试想:一个小时的窗口,发生的用户访问行为,在某些大型网站上,可能是千万,甚至上亿级别。下面通过简单的定量分析说明:假如Use

2021-09-15 18:49:50 563

原创 FlinkSQL快速入门

一.FlinkSQL和TableAPI简介Flink针对流处理和批处理,为我们提供了多种操作API。从图中可知,越上层的API抽象程度越高,门槛越低(大家都熟悉SQL),但也丧失了灵活性。Table API 是一系列集成在Java或Scala语言中的查询API,它允许通过一些关系运算符操作进行很直观的操作。FlinkSQL 则是基于Apache Calcite实现了标准的SQL,可以通过编写SQL的方式进行Flink数据处理。需要引入的依赖<dependency> <gr

2021-09-08 16:39:28 5925

原创 Gradle和Maven构建项目时的注意事项

文章目录mavendependencyManagementscop范围packaging类型maven打包项目引入一个jar到本地maven仓库gradle如何将依赖一同打包到jar中父子工程依赖打包项目maven和gradle作为两种项目编译构建工具,有一些开发常用的点,这里做一下记录,比如父子项目如何统一管理版本,如何打包等等。本文大约需要5分钟阅读。maven统一管理版本和依赖父工程pom文件<?xml version="1.0" encoding="UTF-8"?><p

2021-07-21 15:54:45 888

原创 Azkaban任务动态参数小结

文章目录1. 数仓任务调度案例2.动态传参任务案例1. 数仓任务调度案例每日凌晨,我们会将业务数据库同步到数仓中,并进行清洗和相关指标的计算,然后导出到PostgreSQL中给业务系统使用,整个过程可以通过Azkaban进行调度执行。job编写job内容是执行对应的shell脚本,执行对应的任务,比如hive的脚本等。job的执行顺序依靠dependencies来描述,A 依赖B,则B先执行。多个依赖用逗号分隔。import_log.jobtype=commanddo_date=${d

2021-05-25 16:15:31 1867 3

原创 Azkaban部署和配置

文章目录1.安装部署1.1.下载源码1.2.解压源码:1.3.编译源码1.4.打包等待1.5.拷贝安装包1.6.初始化数据库1.7.配置azkaban1.8.启动服务1.9.配置ssl(可选)2.使用Azkaban2.1.简单入门2.2.常见错误3.小结1.安装部署1.1.下载源码https://github.com/azkaban/azkaban/tags1.2.解压源码:tar -zxf azkaban-3.85.1.tar.gz -C /opt/soft1.3.编译源码需要安装git,

2021-05-25 13:41:30 1267 2

原创 Hive窗口函数小结

一.窗口函数作用1.1.测试数据首先我们看下面一组数据: business表中有一组消费流水记录。1.2.应用场景需求:求在2017年4月份购买过的顾客及总人数 从上面数据可以看出,4月份mart和jack购买过,所以总人数是2人。此时通过传统的group by显然无法实现:select name ,count(*) as sum_peoplefrom businesswhere substring(orderdate,1,7) = '2017-04'group by name;

2021-04-29 19:16:36 450

原创 动态规划算法思考

文章目录从背包问题说起暴力求解动态规划求解问题升级问题补充动态规划解题思路基本特征求解思路算法练习目录杨辉三角硬币找零八皇后问题棋盘走位最长子序列其他资料从背包问题说起背包问题是一个非常经典的算法问题,它有多种版本,这里我先描述一种简单的:有一个背包,它能装的最大物品重量是 capacity, 有若干物品 ,重量分别不等(物品无法切分)。问:背包中能装入的最大重量是多少?这是一个0-1背包问题,即物品要么选择装入,要么选择不装入,不能装物品的一部分。暴力求解因为每种物品有放入、或不放入两种

2020-12-24 15:53:06 206 1

原创 map-reduce job执行过程和优化

文章目录提交 job到Yarn的流程Map-Reduce过程详解和优化通用优化常用优化参数列表本文将梳理一个MapReduce任务详细的执行过程,并通过图解的方式,说明中间我们可控的部分和常用的优化手段。提交 job到Yarn的流程在Hadoop1.x中map-reduce job通过job traker执行,多个任务便会有多个job traker。job traker 负责资源分配,任务执行状态的监控等等。它做了所有的事情,所以不利于扩展,并且job traker存在单点故障,一旦job trake

2020-11-20 16:45:14 625

原创 scala环境集成

文章目录scala和java的区别。scala环境搭建scala和java的区别。scala的基础是java,其作者也是java编译器的核心开发者。scala 在保留部分java语法的基础上,有自己特有的语法和类库,同时对部分java语法做了封装,让其更加简洁。所以scala 环境必须要有jdk。 下面通过一张图,说明scala和java的对比:可以看到scala 代码会调用 jdk 和 Scala SDK ,而scala SDK 封装了部分jkd库,所以依赖jdk。最终都会运行在JVM上。scal

2020-10-21 16:31:11 178

原创 Zookeeper笔记

文章目录什么是zookeeperzookeeper内部原理选举机制:节点类型:Stat结构体:监听器原理zookeeper使用本地模式安装分布式安装部署客户端命令什么是zookeeperzookeeper是一个分布式协调系统,它保存集群中大家关心的数据,通过观察者模式让各个节点了解这些数据。(比如配置文件,节点的在线情况,统一命名,负载均衡)zookeeper内部原理选举机制:1)半数机制:集群中半数以上机器存活,集群可用。所以Zookeeper适合安装奇数台服务器。2)Zookeeper虽然在

2020-10-15 07:53:31 194

原创 Flume自定义组件(上篇)

文章目录Flume事务自定义拦截器自定义Source自定义sink在聊自定义组件前,先了解下Flume的事务。Flume事务自定义拦截器案例: 自定义拦截器,将不同内容发往不同Channel,然后分发到不同的分析系统Flume2 和Flume3。1.创建一个 maven 项目,并引入以下依赖。<dependency> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-cor

2020-09-30 16:03:11 263

原创 Flume常用拓扑结构

文章目录多个Flume串联多个Flume聚合复制和多路复用负载均衡和故障转移Flume 支持下面几种方式读取日志流数据:AvroThriftSyslogNetcatAvro source和Avro sink 对Flume灵活的拓扑结构至关重要。Avro source : 可以接受Avro Client 发送的 事件,或者Avro sink发送的事件。Avro Source被设计为高扩展的RPC服务器端,能从其他的Flume Agent的Avro Sink或者使用Flume的SDK发

2020-09-29 15:40:48 537

原创 Flume常用组件示例

文章目录安装定义监听端口数据写事件到控制台案例监控单个追加日志文件监控某个文件夹的新文件断点续传文件安装1) Flume 官网地址http://flume.apache.org/2)文档查看地址http://flume.apache.org/FlumeUserGuide.html3)下载地址http://archive.apache.org/dist/flume/第一步:apache-flume-1.7.0-bin.tar.gz 上传到 linux 并解压到/opt/目录第二步:将 flu

2020-09-29 15:34:32 145

原创 Hadoop排序算法笔记

文章目录归并排序代码实现:递归复杂度分析:是否是稳定算法:应用场景快排代码实现:递归复杂度分析是否是稳定排序:应用场景思考一堆排序概念:堆代码实现堆排序排序动态演示Hadoop的MapReduce阶段用到很多排序算法,这里总结做个记录。归并排序把一个要排序的数组,分为两部分,然后分别排序,最后将两个有序的集合再合并。而分开的两部分,可以采用同样的方法继续分解。这是一种典型的分治思想。代码实现:递归public class MergeSort{ //对数组a[p,r]区间的数进行排序

2020-09-28 11:00:25 633

原创 Hadoop乱码引发的思考

文章目录Reducer阶段的乱码如何编码为何UTF-8需要三个字节?Reducer阶段的乱码在Hadoop的Mapper阶段,我读入了一个有中文的txt文档。处理后,Reducer输出后乱码原因是txt文档是GBK编码格式,而我用下面方式读取后,在Reducer阶段使用UTF-8编码,就会乱码。@Overrideprotected void map(LongWritable key, Text value, Context context) throws IOException, Inter

2020-09-09 17:34:17 441

原创 Http协议的Cookie

文章目录CookieCookie使用流程Cookie如何过期?SessionJAVA中Session的生成过程Session过期时间小结Cookie和Session会使用两个HTTP头,Set-Cookie` and `Cookie服务器端会使用Set-Cookie ,需要注意的是Set-Cookie 携带多个Cookie时,需要用 逗号 ,分隔,每个Cookie 是 name=value的形式,每个Cookie的属性用分号;隔开。例如:Set-Cookie: user_id=5; Expires=

2020-08-27 09:50:49 378

原创 HDFS的DataNode工作原理

文章目录工作原理超时设置添加新服役节点退役旧数据节点工作原理1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该

2020-07-31 15:16:47 244

原创 NameNode和SeconddaryNameNode工作原理

文章目录工作机制:1.第一阶段:NameNode启动2.第二阶段:Secondary NameNode工作NN和2NN工作机制详解:停止集群,重新格式化测试Fsimage和Edits的解析CheckPoint时间设置NameNode故障处理方法一:将SecondaryNameNode中的数据拷贝到NameNode存储数据的目录方法二:使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中数据拷贝到NameNode目录中。首先,我们做个假设,如果存

2020-07-16 16:55:04 251

原创 HDFS文件写入流程分析

文章目录视频介绍流程分析视频介绍 hdfs 流程分析1.客户端通过本地的DistributedFileSystem 调用create() 请求创建文件2.DistributedFileSystem 会发送一个RPC请求让namenode在命名空间创建文件,但是不会携带具体的块数据,namenode会做一系列检查:文件是否已经存在,是否具有权限,文件夹是否存在等,如果检查通过

2020-07-13 22:45:39 211

原创 HDFS-java客户端操作API

文章目录客户端操作环境搭建常见错误:客户端常用API1.文件常见API操作2.流操作-分块下载客户端操作环境搭建1.环境准备工作:在windows使用java客户端调用HDFS集群时,会初始化一个本地的文件系统对象,期间会用到hadoop编译包的一些文件。所以我们需要将Hadoop安装包解压到某个目录,并配置HADOOP_HOME 环境变量同时在path中添加%HADOOP_HOME%/bin需要注意,要选择对应版本的windows编译包。如果用Linux包(即集群中安装的hadoop包)解压,则需

2020-07-04 07:31:52 437

原创 HDFS常用操作shell命令

文章目录常用命令:遇到问题:一般使用bin/hadoop fs 或 bin/hdfs dfs 命令dfs是fs的实现类。两个命令都是操作HDFS.常用命令:#查看hadoop fs -ls /#创建目录:-p创建多级目录hadoop fs -mkdir -p /zx/file #从本地剪切文件到HDFShadoop fs -moveFromLocal ./tt.txt /zx/file#从本地拷贝文件到HDFS 和-put命令功能一样hadoop fs -copyFromLocal

2020-07-04 07:26:47 304

原创 crontab语法和使用示例

文章目录基本语法执行规则特殊符号Linux定时任务一般使用crond服务,系统一般默认安装有定时任务crond服务:service crond status基本语法crontab [选项]-e : 编辑或添加定时任务-l : 查看系统的定时任务-r : 删除当前用户所有的定时任务示例:[root@hadoop103 xiaomao]# crontab -l*/10 * * * * /usr/sbin/ntpdate hadoop101有一个定时任务,是每过10分钟,执行/usr/s

2020-06-13 16:31:43 343

原创 Hadoop集群部署(最新版)

文章目录准备工作部署计划1.安装JDK和Hadoop2.编写一个集群同步脚本3.配置Hadoop4.单节点启动5.配置SSH免登录6.集群启动7.访问准备工作三台虚拟机hostnamehosts配置文件ip用户hadoop101192.168.43.11 hadoop101192.168.43.12 hadoop102192.168.43.13 hadoop103192.168.43.11xiaomaohadoop102同上192.168.43.

2020-06-13 09:38:52 446

原创 Typora利用PicGo图片床自动上传图片

文章目录效果实现步骤1.下载配置PicGo2.配置Typora效果 Typora作为支持markdown语法的工具,是写博客记笔记的神器。但是本地插入图片后,在其他电脑打开,图片无法加载。借助PicGo,插入图片时自动上传网络并且插入链接,一次操作,处处方便。先看看效果:拖入图片到Typora后,会自动调用本地的PicGo上传该图片到配置的服务上。然后插入的路径就是该链接。实现步骤要实现该效果需要以下下面两步操作:1.下载配置PicGo下载地址:https://github.com/Molu

2020-05-26 21:31:57 721

原创 利用shell脚本自动更新部署SpringBoot项目

文章目录背景脚本源码脚本说明脚本使用背景 因为项目中有多个模块,每个模块需要打包成一个jar运行。每次更新到服务器比较麻烦,所以就想到利用脚本一键实现代码的更新、编译打包、备份、和启动工作。项目中模块除了一个是用gradle编译,其他都是采用maven管理依赖。脚本源码deploy.sh#!/bin/bash#//////////////////////////微服务启动管理脚本//////////////////////////#模块列表,因为maven和gradle构建的差异

2020-05-15 20:51:33 1258

原创 Hadoop3.1.2三节点环境搭建

文章目录安装步骤问题总结搭建hadoop3.1.2 三节点完全分布式环境。安装步骤安装过程总体分为下面几个部分:(1)准备需要的主机(2)安装JDK 和hadoop(3)配置Hadoop。(4)配置SSH无密码连接。(5)格式化HDFS。(6)启动Hadoop并验证安装。(1)准备需要的主机本教程搭建三节点hadoop集群,需要三台主机。可以是虚拟机或者云主机。虚拟机需要配置好静态IP,并设置好主机名。(可以采用默认主机名,这里为配置管理方便使用下面主机名)IP主机名称

2020-05-08 22:29:06 505

原创 SpringBoot对不同Bean注解的区别和使用场景

文章目录什么是Bean?注解@Bean @Component ..等都有什么区别?SpringBoot注入对象冲突如何解决?什么是Bean? 谈Bean的潜台词是在说Spring中的Bean,我们都知道Spring中的BeanFactory,而Bean这个概念也是由此而来。在Spring中,只要一个类能被实例化,并被Spring容器管理,这个类就称为一个Bean,或者SpringBean.除...

2020-04-01 16:11:21 3571 1

原创 Kafka的三层消息架构

文章目录TopicPartitionRecordKafka 属于分布式的消息引擎系统,它的主要功能是提供一套完备的消息发布与订阅解决方案。Topic本质上一个Topic是命名的记录流。Kafka用log的方式记录这些主题数据。一个主题Log会分成若干个分区(Partition),而这些分区可以分布在不同的Kafka Server上或者不同的磁盘上。换句话说,我们可以认为一个主题是一个分类目录...

2020-03-08 19:32:52 1392

原创 SpringCloud概览

本文主要讨论微服务的基本概念,SpringCloud的核心组成和SpringCloud的使用示例。文章目录什么是微服务SpringCloud是什么SpringCloud使用示例什么是微服务单体架构的困境单体架构我们可以理解为我们将所有的功能打成一个Jar包或者war包,放在一台服务器的tomcat里运行,在应用比较小时,还很合适,但是当业务扩张,很多问题就显露出来,比如应用职责过多,导...

2020-03-02 19:46:34 816

原创 2020java面试-Spring基础

文章目录什么是Spring使用Spring的好处Spring的组成模块核心容器(应用上下文)模块BeanFactory 实现举例Spring加载流程BeanFactory和ApplicationContext有什么区别说说你对 Spring 的理解你对Spring核心组件的理解本篇是继上篇java基础面试考点后的Spring系列的基础高频考点。整理成文。什么是Springspring是一个轻...

2020-02-10 20:40:07 1265

HTT2_Indicator.zip

如何检测https网站正确使用了HTTP/2或SPDY? 1:chrome浏览器 下载该插件:HTTP/2 and SPDY indicator

2019-09-27

android开关按钮的多种实现方式

android开关按钮的多种实现方式,其中有多种方式,源码可以直接复制使用,android开关按钮的多种实现方式android开关按钮的多种实现方式

2017-09-04

commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar文件上传下载jar包

commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar文件上传下载jar包

2017-08-15

genymotion-arm-translation_v1.1

genymotion安装apk提示INSTALL_FAILED_NO_MATCHING_ABIS解决办法 拖入该工具类到模拟器,按提示点ok,最后重启即可

2017-08-14

安卓Service和AIDL使用示例代码

我的博客 安卓中本地服务和远程服务AIDL使用 中示例代码

2016-09-04

空空如也

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

TA关注的人

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