原创 Curator框架中的Leader選舉細節說明

    之前寫過一篇文章,講了下如何基於Zookeeper和Curator框架寫Master選舉的Demo,本文來細說下Curator框架在進行Master選舉的時候,內部是如何實現的。     Demo可以查看之前寫的那篇文章《一個簡單

原创 Spark數據傾斜如何解決

    項目中經常會使用到Spark進行批處理,數據量大的時候總是會遇到數據傾斜的情況,參考了項目中遇到的情況以及網上的一些案例,寫篇文章來總結下如何處理Spark中常見的數據傾斜問題。當然由於業務場景不一樣,本文說到的一些解決數據傾斜的

原创 Quartz的負載均衡如何實現

    項目中使用Quartz來管理定時任務,配置將任務信息保存到關係型數據庫中,並且使用的是集羣模式。集羣會保證同一個任務到達觸發時間的時候,只有一臺機器去執行該任務。我現在想了解的是:     1.Quartz如何保證任務只在一個節點

原创 Flink的ExactlyOnce語義與Checkpoint的實現

    本文主要是想了解下Flink如何實現Exactly_Once語義以及它的CheckPoint機制。   消息發送三種語義介紹: 我們在一般的流處理程序中,消息發送會有三種處理語義: At_Most_Once:     至多一次,表

原创 Strom、SparkStreaming以及Flink三種流式框架了解

    本文主要是想了解下Storm、Flink、Spark Streaming這三種流式計算框架的區別以及它們適合的應用場景。   Storm:     Storm 是 Twitter 開源的分佈式實時大數據處理框架,擅長處理海量數據,

原创 Flink運行時環境介紹

    本文主要是相對Flink作業是如何運行的進行一個大概的介紹,如果有發現的說的不對的地方,非常歡迎在指正!我們一起進步!   一. Apache Flink是什麼?     Apache Flink 是一個開源的分佈式,高性能,高可

原创 JAVA中優先隊列PriprityQueue詳解

    Java中PriorityQueue通過二叉小頂堆實現,可以用一棵完全二叉樹表示。本文從Queue接口函數出發,結合生動的圖解,深入淺出地分析PriorityQueue每個操作的具體過程和時間複雜度,將讓讀者建立對Priority

原创 SparkSQL使用整理(二)

    整理下一些常用到的DataFream和DataSet的API,如何從RDD產生DataFrame和DataSet可以看下之前寫的文章“SparkSQL使用整理(一)”。     本文中讀取的people.json文件就是spark

原创 JVM指針壓縮性能問題

    當前一臺個人臺式機的內存都能隨隨便便超過4G內存,所以現在基本上大家用的都是64位的JVM。對於32位的JVM來說,對象引用(指針)的長度是32位,能表示的最大範圍是2^32 = 4G,而對於64位的JVM來說,對象應用的長度就變

原创 Flink WaterMark不觸發問題

    業務上需要將同一個時間段的兩種數據收集到一起做一些計算,這兩種數據分別存在於Kafka的兩個Topic中。計算邏輯是這樣的:     使用兩個DataStream分別消費兩個Topic中的數據,對兩條流先分別設置WaterMark

原创 HBase的Compaction理解

   本文是對自己瞭解到的HBase Compaction機制做個總結。   爲什麼需要Compaction:     因爲HBase使用了LSM樹,將寫數據和索引時的隨機寫轉變成了順序寫磁盤,提高了寫入時的性能。但是小文件過多的話,查詢

原创 記錄下Flink開發過程中遇到的一些坑(持續更新)

    以下記錄的問題,Flink版本爲1.10.0,Kafka版本爲0.10.0.1。有些問題至今不知道原因是啥,如果有朋友知道的話,麻煩和我說下唄,感謝感謝!   1.setStartFromEarliest不起作用     在IDE

原创 SQL On Hadoop框架了解

    本文主要是對最近了解的一些SQL On Hadoop的框架做一個簡單的總結。雖然現在NoSQL伴隨着大數據應用崛起,但是SQL仍然是最受歡迎的操作手段,比如Spark SQL,Hive SQL等等。   爲什麼要SQL On Ha

原创 記一次由RegionServer下線引起的GC調優經歷

    今天早上發現在跑的一個Spark任務的失敗了,任務內部會涉及到高併發的查詢HBase。從Spark任務的界面上來看看,是與HBase的交互出了問題,報錯SocketTimeOutException。到服務器上看,發現HBase的R

原创 Spark中多個任務間的調度邏輯

    本文想要了解一個問題,如果多個線程通過同一個SparkSession提交作業,不同線程間的作業是怎麼調度的,工程中Spark使用的是FIFO模式。     單個Spark作業詳細的運行流程可見之前寫的那篇文章《Spark-Job執