原创 深入剖析volatile原理

前言 這篇文章,南國對Java併發中的一個重要知識點volatile關鍵字進行重要的剖析,這是繼深入剖析synchronized原理 對併發重要的知識點的詳細解析。筆者在寫這篇博客時候 許多地方參考了java關鍵字—volatil

原创 深入理解讀寫鎖ReentrantReadWriteLock和併發容器CopyOnWriteArrayList

1.讀寫鎖的介紹 在併發場景中用於解決線程安全的問題,我們幾乎會高頻率的使用到獨佔式鎖,通常使用jvm提供的關鍵字synchronized或者juc中實現了Lock接口的ReentrantLock。它們都是獨佔式獲取鎖,也就是在同

原创 深入剖析阻塞隊列BlockingQueue (詳解ArrayBlockingQueue和LinkedBlockingQueue及其應用)

前言 這篇博客南國主要講解關於Java中阻塞隊列的知識點,提到阻塞隊列(BlockingQueue)想必大家最先想到的是生產者-消費者,誠然這也是阻塞隊列最直接的應用場景。 本篇分爲四個章節,BlockingQueue簡介,常見的

原创 BitMap BloomFilter BitSet詳解

1. BitMap BitMap利用內存中連續的二進制位,用於對大量數據做去重和查詢。 例如,給定一塊長度爲10bit的內存空間,想要依次插入整形數據4,2,1,3,我們按照如下的步驟來做: package BitMap; /*

原创 深入剖析Java線程池——ThreadPoolExecutor與ScheduledThreadPoolExecutor

前言 這篇文章主要是針對線程池章的一些內容進行補充和中喲啊源代碼的解析,關於線程池的一些基礎知識我在Java面試07——併發知識點彙總及源碼解析已經做了一些總結,所以一些基礎的知識點南國在這裏有的就不在講述了。深入剖析系列屬於對併

原创 深入剖析Lock與AQS

前言 這篇文章時JAVA併發專欄的第四篇,在此特意感謝以下作者的精彩分享: 1. 初識Lock與AbstractQueuedSynchronizer(AQS) 2. 深入理解AbstractQueuedSynchronizer(A

原创 shell入門使用

前言 Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。 一般而言,我們會在Liuux系統中使用shell訪問系統並及進行一些數據的交互式操作。 這篇博

原创 SparkCore——詳述Spark作業調度

前言 我們在之前的博客中講過,TaskScheduler負責每個具體任務的實際物理調度,DAGScheduler負責將作業拆分成爲不停階段的具體有依賴關係的多批任務,可以理解爲DAGScheduler負責任務的邏輯調度。 本篇博客

原创 瞭解Java併發的工具類——計數器CountDownLatch和CyclicBarrier,信號量Semaphore,線程間交換數據Exchanger

1. 倒計時器CountDownLatch 在多線程協作完成業務功能時,有時候需要等待其他多個線程完成任務之後,主線程才能繼續往下執行業務功能,在這種的業務場景下,通常可以使用Thread類的join方法,讓主線程等待被join的

原创 postgrepSQL

入庫(postgrepSQL遠程將某個文件傳遞到psql某個數據表中) cat RSRP.txt|psql -U dbuser -h 172.17.4.41 -d npgsql_db -Atc "copy gld_2019071

原创 MapReduce高級應用——全排序和二次排序

前言 儘管現在MapReduce程序在日常開發中已經代碼編寫已經很少了,但作爲大數據Hadoop的三大板塊之一,他內在的許多思想也是很多後續框架的基礎鋪墊。本篇博客,南國重點回顧一下MR中的排序相關知識點。網上關於這個知識點 可能

原创 數據庫SQL實戰全解

前言 最開始寫SQL題全解的初衷是博主校招提前批時被pdd的筆試SQL一頓虐,斷斷續續花了一些時間也算是把所有的題目全部做完了。 1.查找最晚入職員工的所有信息 select * from employees where hire

原创 Docker入門

虛擬機 虛擬機可以在一種操作系統裏面運行另一種操作系統,比如在 Windows 系統裏面運行 Linux 系統。應用程序對此毫無感知,因爲虛擬機看上去跟真實系統一模一樣,而對於底層系統來說,虛擬機就是一個普通文件,不需要了就刪掉,

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

worldcount yarn-cluster集羣作業運行 之前寫的是一個windows本地的worldcount的代碼,當然這種功能簡單 代碼量少的 也可以直接在spark-shell中直接輸scala指令。 但是在項目開發 企

原创 Mariadb互爲主從(雙主模式)配置

前言 這段時間 一直在Cloudera Manager集羣上配置高可用的Mariadb服務。今天花一點記錄一下自己的配置過程 希望後續的讀者看到後 在遇到相同業務需求時具有參考價值。 以往我們在配置MySQL卓倉複製時,一般而言