原创 Scala併發編程實戰 - 2:Lock 鎖

synchronized作爲內置鎖,使用簡單,不易出錯,然鵝確有相當的侷限性,例如,無法從等待獲取鎖的阻塞中中斷,無法設置獲取鎖的超時。所以JUC提供了另一種更靈活的加鎖方式,即Lock。 Lock Lock接口定義如下 publ

原创 Spark Core解析 2:Scheduler 調度體系

Spark Core解析 2:Scheduler 調度體系 Overview 調度系統,是貫穿整個Spark應用的主心骨,從調度系統開始入手瞭解Spark Core,比較容易理清頭緒。 Spark的資源調度採用的是常見的兩層調度

原创 Scala併發編程實戰:Monitor與synchronized

Java併發編程最常用和易用的技術莫過於synchronized關鍵字,而Scala的併發編程之旅也可以從synchronized開始。而synchronized的背後其實是monitor技術。 什麼是Monitor Monito

原创 Spark Core 解析:RDD

引言 Spark Core是Spark的核心部分,是Spark SQL,Spark Streaming,Spark MLlib等等其他模塊的基礎, Spark Core提供了開發分佈式應用的腳手架,使得其他模塊或應用的開發者不必關

原创 基於Spark實現推薦算法-2:基於用戶的協同過濾(理論篇)

基於用戶的協同過濾 基於用戶的協同過濾,即User-Based CF (User-Based Collaborative Filtering),是基於一個這樣的假設“跟你愛好相同的人喜歡的物品,你很可能也喜歡”,所以User-Based

原创 Spark RDD API全集

RDD是啥 Resilient Distributed Dataset (RDD),彈性分佈式數據集,是對不可修改,分區的數據集合的抽象。 RDD is characterized by five main propertie

原创 Spark SQL 函數全集

Summary org.apache.spark.sql.functions是一個Object,提供了約兩百多個函數。 大部分函數與Hive的差不多。 除UDF函數,均可在spark-sql中直接使用。 經過import org.apac

原创 基於Spark實現推薦算法-1:推薦算法簡介

個性化推薦系統簡介 個性化推薦系統的定義在 1997 年由 Resnick 和 Varian 提出:利用互聯網向用戶提供信 息和建議,幫助用戶選擇產品,或模擬售貨員幫助用戶完成購買行爲的系統 。通常推薦 由三個要素組成:推薦算法、用戶、候

原创 一個Spark SQL查詢的一生

Spark是時下很火的計算框架,由UC Berkeley AMP Lab研發,並由原班人馬創建的Databricks負責商業化相關事務。而SparkSQL則是Spark之上搭建的SQL解決方案,主打交互查詢場景。 人人都說Spark/S

原创 Spark SQL Dataset API 全集

簡介 org.apache.spark.sql.Dataset是Spark SQL中核心的類,定義如下: class Dataset[T] extends Serializable DataFrame是Dataset[Row]的別名。 本

原创 用Spark Streaming實時計算海量用戶UV

提出需求 實時統計業務系統(web,APP之類)的訪問人數,即所謂UV,或者DAU指標. 這個需求怕是流計算最最最常見的需求了. 計算UV的關鍵點就在於去重,即同一個人訪問兩次是隻計一個UV的.在離線計算中統計UV比較容易想到的方法就是用

原创 自定義開發Spark ML機器學習類 - 1

初窺門徑 Spark的MLlib組件內置實現了很多常見的機器學習算法,包括數據抽取,分類,聚類,關聯分析,協同過濾等等. 然鵝,內置的算法並不能滿足我們所有的需求,所以我們還是經常需要自定義ML算法. MLlib提供的API分爲兩類:

原创 基於Spark實現推薦算法-4:基於物品的協同過濾(實現篇)

算法設計與實現 基於物品的協同過濾又稱Item-Based CF. 基於Spark的Item-Based CF算法其實現原理和步驟與經典方法基本一致,不同的地方主要在於具體步驟內的並行化計算。 相似度算法 在Spark MLlib中提供

原创 CentOS 配置SSH免密碼登陸(公私鑰登陸)

#環境說明 客戶機:Mac OS X 服務器:CentOS 6.5 客戶端:OpenSSH,OS X及大多數Linux都內置了OpenSSH.’ssh -v’命令可以查看版本. #大致流程 1.在客戶機創建一對密鑰文件,包括公鑰文件(~

原创 [SSH穿透]本地訪問服務器內網簡易教程

應用場景 通常爲了安全,服務器需要通過跳板機訪問,服務器對外網暴露的端口也嚴格限制。這種情況下若要在本地 訪問服務器上的服務或系統就會比較蛋疼。 有一個簡單的解決方案,就是在本地和跳板機之間建立SSH隧道。SSH隧道提供了一個網絡代理服務