自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

南国的技术栈

学无止境,沉淀下来让自己充电。每月至少发布一篇技术文章~

原创 大数据面试题——Zookeeper篇

前言 Zookeeper,中文名又称为动物园管理员。他属于Hadoop生态圈中重要的组件框架之一。主要是起到分布式协调调度的作用,日常中我们可能经常使用到zookeeper,但是他并不像Hadoop Spark会经常进行应用编程的开发,也不像Hive HBase那样进行数据的交互式查询操作等。 关...

2019-05-27 11:17:55

阅读数 186

评论数 1

原创 大数据面试题——Spark篇

1. 简要讲述hadoop和spark的shuffle相同和差异? 1)从高层次的的角度来看,两者并没有大的差别。 它都是将 mapper(Spark 里是 ShuffleMapTask)的输出进行 partition,不同的 partition 送到不同的 reducer(Spark 里 red...

2019-04-18 14:11:35

阅读数 348

评论数 0

原创 大数据面试题——Hive篇

1. Hive有哪些方式保存元数据,各有什么特点? Hive支持三种不同的元存储服务器,分别为:内嵌式元存储服务器、本地元存储服务器、远程元存储服务器,每种存储方式使用不同的配置参数。 内嵌式元存储主要用于单元测试,在该模式下每次只有一个进程可以连接到元存储,Derby是内嵌式元存储的默认数据库...

2019-04-16 19:30:07

阅读数 479

评论数 0

原创 大数据面试题——Hadoop篇

前言 结合南国 不到一年时间 学习大数据的知识梳理,加上2019年春天找实习的经历,在这里南国写博客的同时会参考一些资料 写出大数据内一些高频的面试知识点。 1.Hadoop基础 通常是集群的最主要瓶颈:磁盘IO cpu 和内存在大数据集群中都是可以扩充的,磁盘不行。 Yarn,Cloudera...

2019-04-12 17:22:12

阅读数 293

评论数 0

原创 SparkCore——详述Spark作业调度

前言 我们在之前的博客中讲过,TaskScheduler负责每个具体任务的实际物理调度,DAGScheduler负责将作业拆分成为不停阶段的具体有依赖关系的多批任务,可以理解为DAGScheduler负责任务的逻辑调度。 本篇博客,结合这段时间看过的一些书籍,南国在这里重点回顾一下Spark中作业...

2020-02-06 15:29:01

阅读数 121

评论数 0

原创 postgrepSQL

入库(postgrepSQL远程将某个文件传递到psql某个数据表中) cat RSRP.txt|psql -U dbuser -h 172.17.4.41 -d npgsql_db -Atc "copy gld_20190719_rsrp (x_offset, y_offset, rs...

2020-02-01 19:24:45

阅读数 28

评论数 0

原创 了解Java并发的工具类——计数器CountDownLatch和CyclicBarrier,信号量Semaphore,线程间交换数据Exchanger

1. 倒计时器CountDownLatch 在多线程协作完成业务功能时,有时候需要等待其他多个线程完成任务之后,主线程才能继续往下执行业务功能,在这种的业务场景下,通常可以使用Thread类的join方法,让主线程等待被join的线程执行完之后,主线程才能继续往下执行。当然,使用线程间消息通信机制...

2020-01-26 16:50:10

阅读数 64

评论数 0

原创 MapReduce高级应用——全排序和二次排序

前言 尽管现在MapReduce程序在日常开发中已经代码编写已经很少了,但作为大数据Hadoop的三大板块之一,他内在的许多思想也是很多后续框架的基础铺垫。本篇博客,南国重点回顾一下MR中的排序相关知识点。网上关于这个知识点 可能已经有很多的知识介绍,本来不打算写这篇博客。最近一段时间终于抽空看了...

2020-01-11 20:53:20

阅读数 58

评论数 0

原创 shell入门使用

前言 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 常见的shell指令 echo命令用于向窗口输出文本。 使用变...

2020-01-07 18:59:28

阅读数 22

评论数 0

转载 深入剖析Java线程池——ThreadPoolExecutor与ScheduledThreadPoolExecutor

前言 这篇文章主要是针对线程池章的一些内容进行补充和中哟啊源代码的解析,关于线程池的一些基础知识我在Java面试07——并发知识点汇总及源码解析已经做了一些总结,所以一些基础的知识点南国在这里有的就不在讲述了。深入剖析系列属于对并发知识的一些地方的详细剖析,所以这里更加侧重于一到两个知识点的详细剖...

2020-01-07 15:06:55

阅读数 13

评论数 0

转载 一文聊聊ConcurrentHashMap

1.ConcurrentHashmap简介 在使用HashMap时在多线程情况下扩容会出现CPU接近100%的情况,因为hashmap并不是线程安全的,通常我们可以使用在java体系中古老的hashtable类,该类基本上所有的方法都采用synchronized进行线程安全的控制,可想而知,在高并...

2020-01-04 17:25:35

阅读数 13

评论数 0

转载 深入理解读写锁ReentrantReadWriteLock和并发容器CopyOnWriteArrayList

参考文章:ReentrantReadWriteLock 1.读写锁的介绍 在并发场景中用于解决线程安全的问题,我们几乎会高频率的使用到独占式锁,通常使用jvm提供的关键字synchronized或者juc中实现了Lock接口的ReentrantLock。它们都是独占式获取锁,也就是在同一时刻只有一...

2020-01-01 12:28:54

阅读数 13

评论数 0

原创 深入剖析阻塞队列BlockingQueue (详解ArrayBlockingQueue和LinkedBlockingQueue及其应用)

1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现List,Map,Queue接口的容器类,但是这些容器类基本上不是线程安全的,除了使用Collections可以将其转换为线程安全的容器,Doug Lea大师为我们都准备了对应的...

2019-12-26 18:20:37

阅读数 25

评论数 0

转载 深入理解Condition

1.Condition简介 任何一个java对象都天然继承于Object类,在实现线程通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等...

2019-12-26 14:29:11

阅读数 12

评论数 0

转载 深入剖析Lock与AQS

1. JUC的基本结构 Java开发人员中,我们一般把java.util.concurrent简称为JUC包,泛指我们日常用到的并发多线程中的知识模块。下图是concurrent包的目录结构图。 其中包含了两个子包:atomic以及lock,另外在concurrent下的阻塞队列以及execut...

2019-12-20 17:45:38

阅读数 21

评论数 0

转载 深入剖析volatile原理

前言 这篇文章,南国对Java并发中的一个重要知识点volatile关键字进行重要的剖析,这是继深入剖析synchronized原理 对并发重要的知识点的详细解析。笔者在写这篇博客时候 许多地方参考了java关键字—volatile.md 仔细读完,获益匪浅。 1.volatile简介 volat...

2019-12-02 09:18:12

阅读数 14

评论数 0

原创 BitMap BloomFilter BitSet详解

1. BitMap BitMap利用内存中连续的二进制位,用于对大量数据做去重和查询。 例如,给定一块长度为10bit的内存空间,想要依次插入整形数据4,2,1,3,我们按照如下的步骤来做: package BitMap; /** * 位图BitMap实现代码 * @author xjh 2...

2019-11-16 20:13:05

阅读数 20

评论数 0

原创 数据库SQL实战全解

牛客网 数据库SQL实战 查找最晚入职员工的所有信息 select * from employees where hire_date= (select max(hire_date) from employees); 查找入职员工时间排名倒数第三的员工所有信息 select * from emplo...

2019-10-21 17:41:30

阅读数 83

评论数 0

原创 Cloudera Manager HA模式搭建

2 Cloudera Manager HA模式搭建 2.1 设置主机和负载平衡器 在一个高水平,在单独的主机上设置Cloudera Manager Server和Cloudera Management Service 角色(包括Cloudera Navigator),并确保通过配置的负载平衡器对来...

2019-10-06 12:10:41

阅读数 55

评论数 0

原创 Docker入门

虚拟机 虚拟机可以在一种操作系统里面运行另一种操作系统,比如在 Windows 系统里面运行 Linux 系统。应用程序对此毫无感知,因为虚拟机看上去跟真实系统一模一样,而对于底层系统来说,虚拟机就是一个普通文件,不需要了就删掉,对其他部分毫无影响。 虽然用户可以通过虚拟机还原软件的原始环境。但是...

2019-09-25 09:31:12

阅读数 12

评论数 0

原创 spark代码 spark-submit提交yarn-cluster模式

worldcount yarn-cluster集群作业运行 上面写的是一个windows本地的worldcount的代码,当然这种功能简单 代码量少的 也可以直接在spark-shell中直接输scala指令。 但是在项目开发 企业运用中,因为本地的资源有限 使得无法发挥出spark的真正优势。因...

2019-07-15 21:20:10

阅读数 62

评论数 0

原创 Mariadb互为主从(双主模式)配置

前言 这段时间 一直在Cloudera Manager集群上配置高可用的Mariadb服务。今天花一点记录一下自己的配置过程 希望后续的读者看到后 在遇到相同业务需求时具有参考价值。 以往我们在配置MySQL卓仓复制时,一般而言 在配置到一主 一从 能够实现MySQL的读写分离 就差不多了,因为导...

2019-07-10 17:42:07

阅读数 370

评论数 0

原创 kafka入门

基本概念 框架介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 首先让我们看几个基本的消息系统术语: 名称 说明 Topic 主题,可以理解为一个队列 Partition 分区,为了实现扩展性,一个非常大的topic...

2019-06-08 21:24:32

阅读数 48

评论数 0

原创 大数据面试中经典的案例分析

1. Hadoop会有哪些重大故障,如何应对? 1)namenode单点故障:通过zookeeper搭建HA高可用,可自动切换namenode。 2)ResourceManager单点故障:可通过配置YARN的HA,并在配置的namenode上手动启动ResourceManager作为Slave,...

2019-05-19 14:40:59

阅读数 213

评论数 0

转载 Java面试10-网络IO模型详解

前言 Java面试专栏的第10篇,这篇博客 南国带你主要回顾一下在Java网络IO常见的几种模型 以及大名鼎鼎的Netty框架。 注意这里所讲的网络IO和我在Java面试09——IO知识大盘点 讲述的IO不一样,上一篇我们主要讲述的是文件的读写。传统IO的Java编程主要是以流的形式,NIO是以块...

2019-05-12 23:18:58

阅读数 355

评论数 0

原创 深入剖析synchronized原理

前言 这篇博客,南国就Java并发编程经常会用到的synchronized关键字做一个深入的剖析。如果读者对于Java并发的一些基础知识没有太多了解,欢迎查看我前段时间写过的Java面试07——并发知识点汇总及源码解析,在这篇博客中我对并发编程中的大部分知识有了一个基础的概括和总结,适合刚入行Ja...

2019-05-04 21:38:28

阅读数 181

评论数 0

原创 一文了解Zookeeper

前言 一直想找时间好好写一篇关于Zookeeper的博客,今夜窗外听取蛙声一片 既上一篇写到了分布式锁的几种实现方式。这里 整理自己的一些理解,写下一篇关于Zookeeper的博文。话不多说,干货送上~ Zookeeper概览 Zookeeper,中文名是动物园管理员。它是一个开源的分布式协...

2019-04-26 22:37:42

阅读数 110

评论数 0

转载 分布式锁入门及常见实现方式介绍

前言 想写这篇博客 是根据南国之前面试经历 经常被问到zokeeper实现分布式锁的原理,之前太忙 也没时间整理资料。通过今天这篇博文 对分布式锁以及实现方式做一个小的总结概括。 本篇博客属于转载,这里我综合了之前所看过的一些资料 通过自己的理解写下这篇博客,在此感谢以下精彩好文。 1.分布式锁简...

2019-04-26 20:43:56

阅读数 62

评论数 0

转载 Spark Streaming运行架构和运行原理总结

1. SparkStreaming的运行架构 Spark Streaming相对其他流处理系统最大的优势在于流处理引擎和数据处理在同一软件栈,其中Spark Streaming功能主要包括流处理引擎的流数据接收与存储以及批处理作业的生成与管理,而Spark Core负责处理Spark Stream...

2019-04-21 16:20:45

阅读数 54

评论数 0

原创 SparkStreamin-DStream的输出操作以及foreachRDD详解

输出操作概览 在Spark应用中,外部系统经常需要使用到Spark DStream处理后的数据,因此,需要采用输出操作把DStream的数据输出到数据库或者文件系统中。 Output Meaning print 打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么...

2019-04-21 15:29:29

阅读数 362

评论数 0

转载 SparkStreamig——StreamigContext Receiver内部原理剖析

1. StreamingContext初始化过程 StreamingContext是很多Streaming功能的入口,如:它提供从多种数据源创建DStream的方法等。在StreamingContext创建时将会创建如下主要组件: 1.1 创建DStreamGraph,并为其设置转换成RDD的时间...

2019-04-19 12:02:39

阅读数 68

评论数 0

原创 Hadoop(MapReduce)性能优化

前言 我们时常谈论说到MapReduce时,我们都会说它是离线计算框架,磁盘IO开销大,job运行比较慢等等。 这一篇博客,南国系统回顾下mr程序运行慢的原因,以及如何优化mr程序。 MapReduce运行慢的原因 我们都知道MapReduce是离线计算框架,不同于Spark内存计算框架模型。一个...

2019-04-14 17:19:04

阅读数 237

评论数 0

原创 SQL进阶-多表查询及相关习题讲解

前言 紧接着之前叙述过的SQL常用语句总结,在这一篇博客中南国也有对多表查询进行了一些叙述,但经过这段时间的笔试面试经历,感觉自己对这块知识的理解 还不够深入。 所以,在这篇SQL进阶中,南国对SQL经常用到的多表知识点在做一个详细的讲解。 提到关系数据库中的多表查询时,你会想到什么呢?? 你是不...

2019-04-07 14:52:13

阅读数 88

评论数 0

原创 Hive优化

前言 Hive系列的第三篇,南国在这里主要是总结归纳一下日常中经常会碰到的Hive的知识点。因为Hive是基于Hadoop的数据仓库,HiveQL内部的执行过程也是基于MapReduce实现的。 首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题? 数据量大不是问题,数据倾斜是...

2019-03-25 17:14:15

阅读数 149

评论数 0

原创 操作系统面试知识大盘点

前言 这篇文章南国根据自己的理解 写一篇在互联网公司面试中操作系统常问的知识点。本篇博客许多内容都是在前人的基础上进行的总结和概括,所以这篇博客 南国还是那他归纳为转载。干货很多,马上到~ 1.基本概念 1.1 并行和并发 这个概念在之前的博客中,我也讲过多次了。之类再做个简单的概述。 并发是指宏...

2019-03-24 17:46:50

阅读数 83

评论数 0

原创 Hive初级

Hive的内置函数和基本的UDF函数 1.内置函数 在Hive中给我们内置了很多函数官方地址 也可以在启动hive后输入命令查看函数: SHOW FUNCTIONS; DESCRIBE FUNCTION <function_name>; DESCRIBE FUNCTION EXTEND...

2019-03-19 15:11:36

阅读数 43

评论数 0

转载 Hive入门

Hive基本概念 先来谈谈自己的理解: 有些人可能会说Hive不就是写SQL的吗,那我们其实可以从另一个角度来理解:Hive就是那么强大啊,只要写SQL就能解决问题,其实这些人说的也没错Hive确实就是写SQL的,对于传统的 DBA人员或者会写SQL就很容易上手了,但是您知道他的底层细节吗,怎么优...

2019-03-19 10:11:10

阅读数 68

评论数 0

转载 Spark处理数据倾斜

前言 继上一篇写了一篇Hadoop处理数据倾斜,本篇博客针对Spark应用开发 南国在这里参考网上学习的资料和一些日常开发经验,写一篇有关于Spark处理数据倾斜的文章。 1. 数据倾斜的基本概念 关于这点,其实上一篇博客里面 南国已经做了讲述。这里南国再做个简单的论述,数据倾斜主要就是大数据集群...

2019-03-16 19:55:08

阅读数 87

评论数 0

原创 二分查找算法详解及对应leetcode习题详解 java实现

前言 这篇博客,我就查找算法里面 时间复杂度是O(logn)的二分查找算法进行一个比较完善的剖析。话不多说,干货送上。 1.基本知识点 二分查找(Binary Search)算法,有的数据结构书里面也叫做折半查找算法。算法本身针对的是一个有序的数据集合,查找思想类似于分治思想。每次通过和区间中间元...

2019-03-12 22:10:35

阅读数 59

评论数 0

原创 贪心算法及相关leetcode习题详解 java代码实现

前言 这篇博客,南国根据自己之前一段时间的学习和刷题,对贪心算法这一知识点做个小的归纳。这篇博客的内容首先是基础知识点,随后是具体的实战习题。话不多说,干货速来~ 基础知识点 在计算机专业常见的极大算法里面,贪心算法算是比较好理解的了。一句话用来概括就是,贪心算法:在对问题求解时,总是做出当前看来...

2019-03-10 18:12:14

阅读数 94

评论数 0

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