原创 Spark sql操作Hive

這裏說的是最簡便的方法,通過Spark sql直接操作hive。前提是hive-site.xml等配置文件已經在Spark集羣配置好。  val logger = LoggerFactory.getLogger(SevsSpark4.get

原创 Spark2.0操作ES

ES提供了支持包來方便的操作ES。首先添加ES的依賴maven:        <dependency>             <groupId>org.elasticsearch</groupId>             <artif

原创 Timsort工作原理

Timsort是spark中用作外部排序的機制。一個典型的應用是在spark sql中用來做Order操作的實現。Order時候將行記錄插入到ExternalSorter中,ExternalSorter用timsort排序數組,返回排序後的

原创 simhash短文本去重

simHash的java實現: import com.hankcs.hanlp.seg.common.Term; import com.hankcs.hanlp.tokenizer.StandardTokenizer; import

原创 Spark保持HDFS示例

  def saveAsNewAPIHadoopFile(       path: String,       keyClass: Class[_],       valueClass: Class[_],       outputForm

原创 SparkStreaming

Spark Streaming的內核機制。後臺線程負責接收源數據的流,收到的數據保存到BlockManager,並按照時間間隔封裝成批量RDD,在RDD上執行各種操作。 每種數據源提供自己的Receiver的實現,將接收的數據調用store

原创 Spark隨機森林RandomForest

位於ml/tree/impl/目錄下。mllib目錄下的隨機森林算法也是調用的ml下的RandomForest。ml是mllib的最新實現,將來是要替換掉mllib庫的。 RandomForest核心代碼 train方法

原创 maven編譯scala,依賴包打包到jar裏

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w

原创 Spark源碼之提交App的流程

有多種方式的提交,如Repl提交,rest的提交,本地提交等。 submit過程,在master節點提交jar包,在分配task的時候將jar包和參數裏的依賴包路徑等在子節點下載,最後執行task。 master在調度到LaunchDriv

原创 Flink操作mysql kafka和hbase

主程序 package com.streaming.flink; import java.util.Properties; import org.apache.flink.api.common.functions.FlatM

原创 Echarts製作動態K線圖和分時圖

1 K線圖 <!DOCTYPE html> <html lang="en"> <#include "../header.ftl"> <body> <#include "../nav.ftl"> <div class="cont

原创 Kafka命令行

kafka命令行: $ bin/kafka-console-producer.sh --broker-list dpnode05:6667 --topic "testThis is the first message" $ bin/kafk

原创 SpringBoot整合Mybatis

spring boot中使用mybatis有不少坑,特別是不同版本之間的兼容性等。這裏使用spring boot 1.5.9.版本和mybatis-spring-boot-starter 1.3.0版本。 mavne文件: <?xml ve

原创 Spark Catalyst

解析sql的庫。 主要類 名稱 說明 CodeGenerate 代碼生成器,主要對Expression生成對應的java代碼,輸出ExprCode。裏面包含了一系列的ExprCode子類。 ExprCode

原创 Spark源碼之BlockManager

BlockManager是分佈式塊存儲管理。核心機制是每個節點存儲自己的內存空間和磁盤空間。BlockManagerMaster負責與其他節點的BlockManager通信並負責塊在節點間的複製。BlockInfoManager負責管理塊的