原创 Spark job提交流程源代碼分析

Spark job相關概念 job spark程序遇到一個action算子時就會提交一個job,一般一個spark應用程序會觸發多個job。 stage 一個job通常包含一個或多個stage,每個stage裏的task可以並行

原创 SparkContext 初始化源代碼分析

SparkContext 初始化流程 SparkContext 是通往Spark 集羣的唯一入口,可以用來在 Spark 集羣中創建 RDD,累加 器和廣播變量,並對RDD執行各種算子,SparkContext的核心作用是初始化S

原创 HDFS源代碼分析之DataNode DirectoryScanner實現

DirectoryScanner DirectoryScanner的主要任務是定期掃描磁盤上的數據塊,檢查磁盤上的數據塊信息是否與FsDatasetImpl中保存的數據塊信息一致,如果不一致則對FsDatasetImpl中的信息進

原创 strace命令使用

命令介紹 strace是Linux環境下的一款程序調試工具,用來輸出一個應用程序所使用的系統調用。 strace底層使用內核的ptrace特性來實現其功能。 什麼是系統調用? 系統調用是通向操作系統本身的接口,是面向底層硬件的

原创 HDFS源代碼分析之DataNode BlockScanner實現

BlockScanner實現 每個DataNode都會有一個BlockScanner週期性的驗證DataNode上存儲的所有數據塊的正確性,並把損壞的數據塊報告給NameNode。 VolumeScanner是專門針對每個存儲目錄

原创 hive Hcatalog streaming API使用

hive streaming hive傳統的數據導入採用批量導入的方式,這中數據導入難以滿足實時性的要求。hive streaming提供了數據流式寫入的API,這樣外部數據可以連續不斷的寫入hive中。 必備條件 hive s

原创 spark sql系列--基本操作

spark sql產生 spark sql未出現前,hive以其對sql的完美支持成爲數據倉庫的主流方案。但是由於hive的任務最終都會轉化未mapreduce任務,因此它的查詢性能一致備受詬病。 後來,伯克利實驗室的開發人員開發

原创 spark sql系列--RDD,DataSet,DataFrame之間的轉換

RDD DataSet DataFrame三者的關係 共性 RDD、DataFrame、Dataset 全都是 spark 平臺下的分佈式彈性數據集,爲處理超大型數據 提供便利 2、三者都有惰性機制,在進行創建、轉換,如 map

原创 HBase與Hive整合

整合背景 hbase是一種面向列簇的nosql數據庫,主要用於存儲結構化和非結構化的數據,但是原生不支持sql,同時由於良好的寫入性能,主要用於實時數據的存儲。 hive將hdfs文件映射爲一張表,支持類SQL語句對其進行管理,不

原创 hive四種排序order by,sort by,distribute by,cluster by的區別

1.數據準備 創建person表 CREATE TABLE `person`( `id` int, `name` string, `address` string) 添加如下數據: hive> insert in

原创 antlr4開發環境搭建

簡介 ANTLR是一款強大的語法分析器生成工具,可用於讀取,處理,執行和翻譯結構化的文本或二進制文件。它被廣泛用於工業實踐。大數據領域中熟知的hive,presto,spark都使用它來構建sql解析器。Twitter使用ANTL

原创 spark streaming系列--流輸出

簡介 與spark SQL類似,spark streaming同樣可以將數據流輸出到外部系統,比如文件系統或者數據庫,以下是spark streaming支持的輸出操作。 foreachRDD可以自定義數據輸出方式,所以在日常的

原创 spark源代碼閱讀與調試環境搭建

實驗環境 編譯操作系統:centos7 spark版本:2.3.0 intellj idea版本:2019.1 編譯 編譯主機上需要預先安裝jdk,我已經安裝了jdk8。 一.下載源代碼包,下載地址:https://github

原创 spark sql原理---上篇

spark sql架構 Spark SQL 的整體架構如下圖所示 上圖可見,無論是直接使用 SQL 語句還是使用 DataFrame,都會經過如下步驟轉換成 DAG 對 RDD 的操作。 Parser 解析 SQL,生成 Un

原创 mapreduce org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z錯誤解決

今天本地調試mapreduce程序時遇到如下問題 Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.N