原创 實戰spark 2.x讀取&存儲數據

前言 Spark是基於Hadoop生態圈二次構建的,它支持多種輸入輸出源,spark可以通過Hadoop MapReduce 所使用的InputFormat 和 OutPutFormat 接口訪問數據,而大部分常見的文件格式與存

原创 kafka源碼分析之環境搭建

kafka作爲常用的消息中間件,在各大企業得到廣泛應用,筆者從今天開始將陸續對kafka 0.10.1進行源碼分析。工欲善其事必先利其器,在閱讀Kafka源碼之前,首先第一步得搭建源碼閱讀環境,選擇合適的工具可以使我們的學習效率

原创 hadoop源碼分析之文件拆分

InputFormat介紹 當我們編寫MapReduce程序的時候,都會進行輸入格式的設置,方便hadoop可以根據設置得文件格式正確的讀取數據進行處理,一般設置代碼如下: job.setInputFormatClass(Text

原创 實戰spark core數據讀取&存儲

前言 spark sql[spark 1.0.0]出現之前,數據的讀取是通過sparkContext得到的是RDD,數據的存儲是通過不同類型RDD的saveXXX方法存儲的,Spark的整個生態系統與Hadoop是完全兼容的,所以

原创 spark-Row實戰&源碼分析

前言 spark在操作dataset/dataframe時候,經常需要對每一行數據進行處理,像map/mapPartition/foreach/ foreachParition等,那麼我們在拿到一行數據時候,如何從中拿取出我們想要

原创 Zookeeper實戰—Zookeeper單機環境搭建&命令使用

zookeeper介紹 Zookeeper作爲一個協調管理者被用在分佈式系統中。當設計一個分佈式系統時,一般需要設計和開發一些協調服務: 名稱服務— 名稱服務是將一個名稱映射到與該名稱有關聯的一些信息的服務。電話目錄是將人的名字

原创 flink實戰--ProcessFunction

想象這樣一種情景,我們想在算子或者函數中獲取數據流中Watermark的時間戳,或者在時間上前後穿梭,我們該如何辦?ProcessFunction系列函數給我們提供了這樣子的能力,它們是Flink體系中最底層的API,提供了對數

原创 一文讓你瞭解DataSet處理Sql的各種實戰技巧

概述 項目中經常會用到sql相關操作,如果利用createTempView建立臨時表,純寫sql方式實現是一種常用的方法,但是如何利用原生的算子進行sql的各種操作,經常摸不着頭腦,本來基於spark 2.1.1進行原生算子進行s

原创 Spark Shuffle系列之Shuffle介紹&演進過程

Shuffle是什麼 在spark源碼分析之stage生成中,我們講到Spark在DAGSchduler階段會將一個Job劃分爲多個Stage,在上游Stage做map工作,下游Stage做reduce工作,其本質上還是MapRe

原创 Hive實戰-建表相關操作

內部表&外部表 在Hive創建表的語法中有一個關鍵字是EXTERNAL,該關鍵字表示表的類型,在Hive中一共有兩種類型的表:MANAGED_TABLE(內部表)和EXTERNAL_TABLE(外部表)。如果沒有加EXTERNAL

原创 spark數據處理實戰之聚合

spark dataset/dataframe經常會用到聚合函數進行指標的聚合計算,本文詳細講解了聚合函數,聚合算子,方便使用者清晰的認識如何進行聚合操作。 聚合函數 org.apache.spark.sql.function

原创 spark數據處理實戰之列空值&新增列處理

在spark dataset/dataframe操作過程中,我們經常會遇到對於一個列值的一些判斷情況,是否爲NULL,創建一個新列等,本文講解了常用的增加列的方法,並且對於列空值判斷,填充處理以及查詢的api做了詳細的描述和實例

原创 xgboost實戰--python&spark訓練預測

xgboost介紹 xgboost是大規模並行boosted tree的工具,它是目前最快最好的開源boosted tree工具包,比常見的工具包快10倍以上。在數據科學方面,有大量kaggle選手選用它進行數據挖掘比賽,其中包括

原创 MAC單機hadoop環境搭建&Wordcount實現

單機Hadoop環境搭建 下載hadoop源碼,我這裏下載的是2.10.0版本 添加hadoop環境變量,打開~/.zshrc # hadoop export HADOOP_HOME=/Users/lidongmeng/s

原创 flink實戰--MAC-flink環境搭建&wordcount實現

flink環境搭建 java環境 這裏我使用的是jdk 1.8,下載jdk,自行設置環境變量。 $: java -version java version "1.8.0_221" Java(TM) SE Runtime Envir