自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 资源 (1)
  • 收藏
  • 关注

原创 大话Flink之四-Flink流处理API 行行代码带你深刻理解Flink流处理API!

流处理API一、Environment1.1getExecutionEnvironment创建一个执行环境,表示当前执行程序的上下文。 如果程序是独立调用的,则 此方法返回本地执行环境;如果从命令行客户端调用程序以提交到集群,则此方法 返回此集群的执行环境,也就是说,getExecutionEnvironment 会根据查询运行的方 式决定返回什么样的运行环境,是最常用的一种创建执行环境的方式。ExecutionEnvironment env = ExecutionEnvironme.

2020-12-13 22:07:54 877

原创 大话Flink之三-Flink运行架构 有图有真相!

一、Flink 运行时的组件1、作业管理器(JobManager) • 控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的 JobManager 所控制执行。 JobManager 会先接收到要执行的应用程序,这个应用程序会包括:作业图 (JobGraph)、逻辑数据流图(logical dataflow graph)和打包了所有的类、 库和其它资源的JAR包。 JobManager 会把JobGraph转换成一个物理层面的数据流图,这个图被叫做 “执行图”..

2020-12-11 00:30:43 459 1

原创 执行Hive报Caused by: java.io.IOException: Unable to rename异常

1、问题描述:Caused by:java.io.IOException: Unable to renameobs://bigdatahll/warehouse/tablespace/hive/hll_dwb.db/dwb_driver_order_loc_in_dtl/dt=2020-11-09/.hive-staging_hive_2020-11-10_02-36-19_364_6573414509666215386-15624/_task_tmp.-ext-10000/_tmp.000007..

2020-12-04 11:27:44 2727 3

原创 Java并发编程实用工具类JUC的各种场景应用全解

一、JUC1、SaleTicketDemo.javaimport java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * @author yht * @create 20:46 * * 题目:三个售票员 卖出 30张票 * 笔记:如何编写企业级的多线程代码 * 固定的编程套路+模板是什么? * 1.在高内聚,低耦合的前提下

2020-09-08 22:52:19 3070

原创 HDFS的 DataNode 工作机制

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

2021-04-22 23:24:01 289

原创 HDFS的NameNode和SecondaryNameNode

一、NN 和 2NN 工作机制NameNode中的元数据是存储在哪里的? 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生了磁盘中备份元数据的FsImage。 这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新FsImage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦Nam...

2021-04-22 22:43:44 232

转载 HDFS HA高可用

1 HA 概述1)所谓HA(High Available),即高可用(7*24小时不中断服务)。2)实现高可用最关键的策略是消除单点故障。HA严格来说应该分成各个组件的HA机制:HDFS的HA和YARN的HA。3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。4)NameNode主要在以下两个方面影响HDFS集群 NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 NameNode机器需要升级,包括软件、硬...

2021-03-20 11:38:13 259

原创 大数据技术之Flume

1 概述1.1 Flume 定义Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。1.2 Flume 的优点可以和任意存储进程集成。 输入的的数据速率大于写入目的存储的速率,flume会进行缓冲,减小hdfs的压力。 flume中的事务基于channel,使用了两个事务模型(sender + receiver),确保消息被可靠发送。 Flume使用两个独立的事务分别负责从soucrc...

2021-03-11 18:27:49 273

原创 Hive企业级调优

目录1 Fetch 抓取2 本地模式3 表的优化3.1 小表、大表Join3.2 大表Join大表3.3 Map Join(小表join大表)3.4 Group by3.5 Count(Distinct)去重统计3.6 笛卡尔积3.7 行列过滤3.8 动态分区调整3.9 分桶3.10 分区4 合理设置 Map 及 Reduce 数4.1 复杂文件增加Map数4.2 小文件进行合并4.3 合理设置 Reduce 数5 并行执行6 严格

2021-03-11 15:51:26 139

原创 大数据技术之Hive数据类型

3 Hive 数据类型3.1 基本数据类型 Hive数据类型 Java数据类型 长度 例子 TINYINT byte 1byte有符号整数 20 SMALINT short 2byte有符号整数 20 INT int

2021-03-10 14:53:57 108

原创 大数据技术之Hive安装

2 Hive 安装2.1 Hive 安装地址1.Hive官网地址http://hive.apache.org/2.文档查看地址https://cwiki.apache.org/confluence/display/Hive/GettingStarted3.下载地址http://archive.apache.org/dist/hive/4.github地址https://github.com/apache/hive2.2 Hive 安装部署1.Hive安装及配置

2021-03-10 14:38:49 174

原创 大数据技术之Hive基本概念及与数据库的比较

1 Hive 基本概念1.1 什么是HiveHive:由Facebook开源用于解决海量结构化日志的数据统计。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。本质是:将HQL转化成MapReduce程序1)Hive处理的数据存储在HDFS2)Hive分析数据底层的默认实现是MapReduce3)执行程序运行在Yarn上1.2 Hive 的优缺点1.2.1 优点1)操作接口采用类SQL语法,提供快速开发.

2021-03-10 14:08:43 164

原创 大数据技术之Zookeeper

1 Zookeeper 入门1.1 概述Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper工作机制1.2 特点1.3 数据结构1.4 应用场景提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。统一命名服务:统一配置管理:统一集群管理:服务器节点动态上下线:软负载均衡:1.5 下载地址官网首页:https://zookeeper

2021-03-10 11:32:28 115 1

原创 Hadoop性能优化的一些思考

目录1 MapReduce 跑的慢的原因2 MapReduce 优化方法2.1 数据输入2.2 Map阶段2.3 Reduce阶段2.4 I/O 传输2.5 数据倾斜问题3 HDFS 小文件优化方法3.1 HDFS 小文件弊端3.2 HDFS 小文件解决方案1 MapReduce 跑的慢的原因MapReduce 程序效率的瓶颈在于两点:1、计算机性能 CPU、内存、磁盘健康、网络2、I/O 操作优化 (1)数据倾斜 (2)Map...

2021-03-09 21:52:44 135

转载 Java轻松搞定leetcode前100系列之53. 最大子序和

题目描述:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100...

2021-02-22 14:52:51 186

转载 Java轻松搞定leetcode前100系列之50. Pow(x, n) java实现x的n次幂函数

实现pow(x, n),即计算 x 的 n 次幂函数(即,xn)。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2^-2 = 1/2^2 = 1/4 = 0.25提示:-100.0 <x< 100.0-2^31<= n <=...

2021-02-22 11:37:19 303

转载 Java轻松搞定leetcode前100系列之49. 字母异位词分组

题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。题目分析:两个字符串互为字母异位词,当且仅当两个字符串包含的字母相同。同一组字母异位词中的字符串具备相同点,可以使用...

2021-02-22 10:38:06 118

转载 一个可以让你对回溯算法从入门到掌握的帖子

链接:https://leetcode-cn.com/problems/permutations/solution/hui-su-suan-fa-python-dai-ma-java-dai-ma-by-liweiw/

2021-02-21 16:09:41 56

转载 Java轻松搞定leetcode前100系列之45.跳跃游戏 II

题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳1步,然后跳3步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。解题方法:正向查找可到达的最大位置如果我们「贪心」地进行正向查找,...

2021-02-20 16:06:13 130

转载 Java轻松搞定leetcode前100系列之43.字符串相乘

题目:给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1和num2的长度小于110。num1 和num2 只包含数字0-9。num1 和num2均不以零开头,除非是数字 0 本身。不能使用...

2021-02-20 14:18:20 114

原创 别忘记奔跑-JVM+GC全解析(结合各方材料深入理解)

JVM+GC解析1 复习1.1 JVM内存结构1.1.1 体系概述1.1.2 Java8以后的JVM-Xms 堆的初始值是多大 (初始化堆内存默认是1/64)-Xmx 堆的最大值是多大 (最大堆内存默认是物理内存的1/4)1.2 GC的作用域1.3 常见的垃圾回收算法1.3.1 引用计数1.3.2 复制1.3.3 标记清除 (会导致内存碎片)1.3.4 标记整理2 进一步学习2.1 JVM垃圾回收的时候如何确定垃圾?什么是G

2021-02-18 21:56:11 442

原创 别忘记奔跑-CountDownLatch/CyclicBarrier/Semaphore 阻塞队列 线程池 死锁编码及定位

目录一、CountDownLatch/CyclicBarrier/Semaphore使用过吗?1.1CountDownLatch1.2CyclicBarrier1.3 Semaphore二、阻塞队列知道吗?2.1 队列+阻塞队列2.2 为什么用?有什么好处?2.3 BlockingQueue的核心方法2.4 架构梳理+种类分析2.4.1 架构介绍2.4.2 种类分析2.5 用在哪里2.5.1 生产者消费者模式三 线程池用过吗?ThreadPoolE..

2021-01-23 17:52:48 482

原创 Linux查看文件大小的几种方法

stat命令stat filepath#第三行的Size字段就是文件的字节数xanarry@ThinkPad:/$ stat ~/Downloads/jdk-8u60-linux-x64.tar.gz File: '/home/xanarry/Downloads/jdk-8u60-linux-x64.tar.gz' Size: 181238643 Blocks: 353984 IO Block: 4096 regular fileDevice: 808h/2

2021-01-19 23:21:21 691

原创 别忘记奔跑-synchronized和lock有什么区别?用新的lock有什么好处?

1 原始构成 synchronized是关键字属于jvm层面 monitorenter(底层是通过monitor对象来完成,其实wait/notify等方法也依赖于monitor对象,只有在同步块或方法中才能调用wait/notify等方法) monitorexit lock是具体类(java.util.concurrent.locks.lock)是api层面的锁2 使用方法 synchronized 不需要用户去手动释放锁,当sy...

2021-01-19 23:20:31 101

原创 别忘记奔跑-公平锁/非公平锁/可重入锁/递归锁/自旋锁

一、我们知道ArrayList是线程不安全,请编写一个不安全的案例并给出解决方案。集合类不安全的问题* ArrayList* HashSet(见JUC博客)* HashMapimport java.util.List;import java.util.UUID;import java.util.concurrent.CopyOnWriteArrayList;/** * 集合类不安全的问题 * ArrayList * */public class ContainerN.

2021-01-15 15:00:16 130

原创 别忘记奔跑-volatile CAS ABA问题

1.JMM 可见性、原子性、VolatileDemo代码演示可见性+原子性代码、有序性2.volatile是Java虚拟机提供的轻量级的同步机制(乞丐版的synchronized):保证可见性,不保证原子性,禁止指令重排Java 汇编案例解释:禁止指令重排小总结:...

2021-01-14 21:16:11 1566 5

转载 information_schema.partitions mysql

一、partitions 表中的常用列说明:  1、table_schema:表所在的数据库名  2、table_name:表名  3、partition_method:表分区采用的分区方法  4、partition_expression:分区键  5、partions_name:分区名  6、table_rows:分区中所包涵的数据行数  7、data_free:分区中还未使用的空间二、例子:查询实例中的分区表、分区方法,分区字段select conca

2021-01-11 19:26:31 1322

转载 Java轻松搞定leetcode前100系列之42. 接雨水 详细通俗的思路分析,多解法

题目描述:给定n个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length 0 <= n..

2021-01-05 16:38:45 135

转载 Java轻松搞定leetcode前100系列之41. 缺失的第一个正数

题目描述:给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1前言如果本题没有额外的时空复杂度要求,那么就很容易实现:我们可以将数组所有的数放入哈希表,随后从 1 开始依次枚举正整数,并判断其是否在哈希表中;我们可以从 1 开始依次枚举正整数,并遍历数组,判断其是否在数组中。如果数组...

2021-01-04 21:28:43 78

转载 Java轻松搞定leetcode前100系列之40. 组合总和 II

题目描述:给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]...

2021-01-04 16:41:35 179 1

转载 Java轻松搞定leetcode前100系列之39. 组合总和

题目描述:给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例2:输入:candidates = ...

2020-12-31 19:20:04 167

转载 Java轻松搞定leetcode前100系列之36. 有效的数独

题目描述:判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。1.数字1-9在每一行只能出现一次。2.数字1-9在每一列只能出现一次。3.数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".","1","9",...

2020-12-31 14:53:29 89

转载 Java轻松搞定leetcode前100系列之38. 外观数列

题目描述:给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = "1"countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,...

2020-12-31 14:46:06 144

转载 Linux中查看各文件夹大小命令du -h --max-depth=1

du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>] [--max-depth=<目录层数>][--help][--version][目录或文件]常用参数:-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或–total 除了显示目录或文件的大小外.

2020-12-29 19:32:44 149

原创 Linux寻找占用挂载在指定磁盘空间的大文件

有一天,领导加急信息,磁盘占用告警了,情形是这样的:别慌,先用 df -h 康康磁盘占用在 / 目录下,首先去到 / 目录下,cd /然后康康各文件夹大小:du -h --max-depth=1 (du命令具体解释见另一篇博客)啊哦!好多目录都没有权限。。。。一般我们可以操作的文件夹在wwwuser下,所以直奔主题(这个图片是已经清理完大文件的了,之前不是这个样子的)falcon-runner有嫌疑然后把大的文件删除就OK了!那么问题来了,大文件是怎么来的呢.

2020-12-29 19:12:21 400

转载 java对象数组的初始化 看完我悟了

public static void main(String[] args) { String[] str = new String[10];//1 初始化数组 for (int i = 0; i < 10; i++){ System.out.println(str[i]);//打印出来的是null } for (int i = 0; i < 10; i++){ str[i] =...

2020-12-29 16:41:29 1916

转载 Java轻松搞定leetcode前100系列之35. 搜索插入位置

题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0题目解答:与34题类似,使用二分法代码如下: .

2020-12-29 11:16:34 53

转载 Hive 日期函数 weekofyear

日期转周函数:weekofyear语法: weekofyear (string date)返回值: int说明:返回日期在当前的周数。举例:hive> select weekofyear('2020-12-29')53

2020-12-29 10:32:55 4008

转载 Java轻松搞定leetcode前100系列之34. 在排序数组中查找元素的第一个和最后一个位置

题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。设计并实现时间复杂度为O(log n)的算法解决此问题示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:...

2020-12-28 22:11:49 102

转载 Linux系统如何看目录属于哪个磁盘分区

Linux是先有目录,再有磁盘分区。df -h [目录]例如://没有挂载磁盘的目录,显示在系统盘[root@iZ2ze57v3n0zma46zqiq8nZ sh-1.5.5]# df -h /alidata/Filesystem Size Used Avail Use% Mounted on/dev/vda1 40G 4.6G 33G 13% ///挂载了磁盘的目录,显示在数据盘分区vdb1[root@iZ2ze57v3n0zma46zqiq...

2020-12-28 21:24:38 1608

编译原理样卷

编译原理的样卷,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

2017-12-27

空空如也

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

TA关注的人

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