原创 maven 運行scalatest以及elastic search 自定義id

項目背景 原來用sbt用的很順手,不過新公司scala項目也是用的maven,無奈只好用maven了,不過今天運行時發現scalatest不能正常被test,還有在用elasticsearch hadoop項目會隨機生成id,所以

原创 yaml vs json

yaml vs json 我們知道yaml是json的超集,關於yaml和json的介紹我們可以看wiki yaml 和wiki json yaml scala yaml scala語言沒太好用的wrapper,最終使用的java

原创 hdfs sync 再次重構

問題是一個很大的性能問題,如果我們比較了size一樣,那麼我們是不是還要把流去比較md5,這很是浪費,最後的做法是自己用modify time作爲比較依據: import java.io._ import org.apache.c

原创 spark sql讀hbase

項目背景 spark sql讀hbase據說官網現在在寫,但還沒穩定,所以我基於hbase-rdd這個項目進行了一個封裝,其中會區分是否爲2進制,如果是就在配置文件中指定爲#b,如long#b,還有用了個公司封裝的Byte轉其他類

原创 hdfs file md5 計算,實現本地與hdfs同步文件

需求 本地有文件,hdfs也有文件,如果是同一個文件,則不同步,否則就同步文件 如果本地有的,hdfs無,則上傳 如果本地無得,hdfs有,則刪除 重構版本:hdfs sync 重構 思考 計算文件相同,則計算md5值 如何算

原创 hdfs sync的同步代碼重構

這個版本還是有性能問題,由於size比較相同會將文件以流的形式去比較md5,這個代價太高,如果重複同步一個文件,那麼時間會一直很高,所以重構了一個新的版本,在sync 再次重構 原文在hdfs file md5 計算,實現本地與h

原创 scala冷門分享

上週給同事分享一些不常用但很有用的知識點,這裏把做的材料也分享出來 zipWithIndex (1 to 10).zipWithIndex call by Name and call By value def something(

原创 sbt與maven簡單對比

sbt vs maven sbt項目用ivy2,可以使用maven的包 sbt可以進行增量編譯,這個特性還是非常有吸引力,因爲scala的編譯速度是堪比c++的 sbt提供了一個scala的console,並且導入默認的一些包,

原创 大數據索引

bigdata platform and engine spark hadoop tez apex-core apex-malhar streaming spark-streaming flink strom mq ka

原创 sbt 區分多個環境

類似maven中的profile,我們可能有dev,test,publish多個環境,他們可能配置是不同的,所以應該: val ProfileDev = config("dev") extend Runtime val Profi

原创 spark 使用kryo

kryo vs nokryo 背景 我今天突發奇想,說測一下kryo如果沒有註冊會咋樣,結果發現沒有註冊的Kryo性能低於直接使用java.io.Serializable 讀取速度 源數據: 42903237條記錄 907M

原创 mac 下的新玩具

tools zsh 爲啥需要zsh,因爲能更快更方便的進行代碼提示與代碼補全,每個人的精力都是有限的,能打一個字母出來結果就絕對不打第二個。 plugins=(git brew mvn svn svn-fast-info s

原创 play-maven腳本

背景 play項目的啓動腳本比較難用,也不規範,如果通過maven的play插件在調用dist相關命令過程中會生成一個腳本: #!/usr/bin/env sh scriptdir=`dirname $0` classpath=$

原创 spark 1.6 下parquet vs orc

背景 這都是現在大數據下比較火熱的兩種存儲格式,orc和hive的關係可能要密切一點,但spark 對parquet寄予了厚望, 最近我們在測一個有join場景下的多個dataset的讀取情況,這裏簡單寫一下測試的一個結果,測試

原创 scala多值參數列表

多值參數列表類似java中的object … 今天一個同事問我多值列表,我就把給他演示的demo放出來吧,很簡單的一個概念 直接上代碼: scala> def printelements(element:Int*) = ele