原创 整理一些Spark數據傾斜解決的思路

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

原创 Flink Job執行流程分析

    之前寫過一篇文章分析過Flink的基本架構,當時大概瞭解了JobManager、TaskManager、Slot等概念,本文主要是想了解下Flink中Job的執行流程,老是把Job執行當成一個黑盒總感覺難受。     之前說過Fl

原创 HBase的BulkLoad

    在網上看到了一篇文章說到了HBase的BulkLoad機制,從文章中看出BulkLoad是不走HBase的服務端的,直接和Hadoop打交道將數據直接生成HFile,然後將文件直接移到Region下面。如下圖所示:     相比

原创 SparkOnYarn-Container啓動流程

    Spark On Yarn程序的啓動流程和之前的那篇《Yarn初步瞭解》文章中的“應用程序的”開發流程是一樣的。先在某個NodeManager(NM)節點上啓動Application Master(AM),再由AM向Resourc

原创 ThreadLocal是幹嘛用的?

ThreadLocal是通過將變量設置成Thread的局部變量,即使用該變量的線程提供一個獨立的副本,可以獨立修改,不會影響其他線程的副本,這樣來解決多線程的併發問題。ThreadLocal主要是線程不安全的類在多線程中使用,一般常用於數

原创 ES數據寫入流程介紹

    今天被人問到了ES相關的問題,沒有說上來。ES有段時間沒用了,很多細節都忘了,幸好之前有看過一些源碼,這裏就整理下,寫篇博客記錄一下。首先大致說下寫索引的大概流程:     primary分片是寫索引的主入口,由它負責驗證輸入正確

原创 Quartz的MisFire機制解析

    在上一篇《Quartz的負載均衡如何實現》文章中說過Quartz的線程模型,提到了MisFire任務是由MisfireHandler線程專門進行處理的,本文主要是來了解下該部分功能是如何實現的。   源碼分析:     Misfi

原创 GeoMesa-HBase 索引以及查詢原理簡單瞭解

    在項目中使用GeoMesa作爲時空索引數據庫,打算了解下這個組件如何做到索引數據,又是如何做到數據查詢的。本文主要是瞭解GeoMesa的索引原理(空間Z曲線和GeoHash算法)以及GeoMesa-HBase查詢流程。   空間Z

原创 IDEA中直接提交Spark任務

    記錄下如何在Widows下的IDEA中直接提交Spark on yarn任務。由於項目使用的是Spring Boot,這裏提交任務指的是在IDEA中啓動Spring Boot工程,然後發送一個Rest請求,觸發Spark on y

原创 Yarn的CapacityScheduler與DRF瞭解

    Capacity Scheduler以隊列爲單位劃分資源,每個隊列可以設定一定比例的資源最低保證和使用上限,每個用戶也可以設定一定的資源使用上限以防止濫用隊列中的資源。當一個隊列的資源有剩餘時,可暫時將剩餘資源給其他隊列使用。  

原创 (轉載)Nginx 原理和架構

Nginx 是一個免費的,開源的,高性能的 HTTP 服務器和反向代理,以及 IMAP / POP3 代理服務器。Nginx 以其高性能,穩定性,豐富的功能,簡單的配置和低資源消耗而聞名。 Nginx 的整體架構 Nginx 裏

原创 Yarn初步瞭解

    項目中打算Spark任務都放到Yarn上統一進行資源管理,所以打算分析Spark on Yarn的運行流程和Yarn自身的資源管理機制,在此之前先大概瞭解下一般Yarn上的任務大致是怎麼運行起來的。   Yarn架構簡介:    

原创 Zookeeper實現分佈式獨佔鎖

   由於項目是要部署到多個節點上進行運行的,並且沒有使用主備模式,使用的是主主模式,所以當兩個節點上不同進程操作同一資源的時候,需要一個分佈式鎖對資源進行加鎖處理。     目前一般主流的方案都是使用redis來實現的,奈何當前項目處理

原创 Kafka部分Partition中無數據導致Window不觸發問題

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

原创 Flink的內存模型的一些個人理解

    其實官方文檔中的對於Flink內存模型講解的已經很詳細了,本文主要是介紹下個人對這個內存模型的理解,如果有理解不對的地方,希望大家幫忙指正下!因爲接觸Flink的時間比較晚,所以一上來我們使用的就是V1.10版本,TaskMana