原创 Hadoop Pig 安裝

1 從http://pig.apache.org/ 下載安裝包 2 解壓  tar xvf pig-0.12.0.tar.gz 3 配置環境變量 export PIG_CLASSPATH=$HADOOP_INSTALL/conf/ ex

原创 Hadoop MapReduce 計數器

Hadoop 爲每個 job 維護了一系列的內置計數器。計數器被分爲組 通過定義一個 Java 枚舉類型可以在代碼中自定義計數器。枚舉類型名稱是計數器組名,枚舉字段是計數器名稱。 public class SalarySumTemp

原创 Hadoop MapReduce Shuffle and Sort

Hadoop 確保每個reduce 的輸入都是按 key 排序的。系統執行排序的過程稱爲shuffle. Map 端,map 產生輸出時,並不是簡單的把數據寫到磁盤。會先緩衝在內存中,並進行一些預排序。 每個map 任務都有一個環

原创 Hadoop MapReduce 過程概述

一個MapReduce任務就是一個Job。Job分爲2個階段:Map 和 Reduce Map函數接收一個<key,value>形式的輸入,然後產生一個<key,value>形式的中間輸出,Hadoop會把相同中間Key值的value集

原创 Hadoop MapReduce 深入MapReduce Job 提交

一個job的運行,涉及4個實體:客戶端,JobTracker,TaskTracker,HDFS 【客戶端】使用Job.submit()提交任務,任務提交後。 1 向 jobtracker 請求一個新的作業ID (JobTracker.g

原创 01 Java 併發 進程和線程

在併發編程中,有兩個基本的執行單元:進程和線程。在java語言中,併發編程最關心的是線程,然而,進程也是非常重要的。 即使在只有單一的執行核心的計算機系統中,也有許多活動的進程和線程。因此,在任何給定的時刻,只有一個線程在實際執行

原创 Maven 插件之 maven-antrun-plugin

雖然Maven已經代替Ant,成爲Java 工業領域事實上的構建標準.但在某些情況下,如果可以用Ant命令,還是很方便的. 藉助 maven-antrun-plugin 插件,可以在Maven執行時,額外執行Ant腳本. maven-a

原创 設計模式 02 創建類模式之簡單工廠模式

工廠模式根據抽象程度的不同分爲三種:簡單工廠模式(也叫靜態工廠模式)、工廠方法模式、以及抽象工廠模式。 簡單工廠模式,簡單說就是有一個類,提供靜態方法,可以創建多個對象。 interface Human { publ

原创 MySQL 01 通過二進制包安裝MySQL

原文 二進制包是針對一些通用環境做的編譯包,在大部分 linux平臺上都能直接安裝。相比 yum 和 rpm 安裝,預編譯二進制包安裝的優勢有: 1. 更靈活,可以自定義安裝路徑,不像 yum/rpm 那樣,只能安裝到固定陌路下 2.

原创 個人翻譯文集目錄

以下文章發表在 併發編程網  瞭解 CMS 垃圾回收日誌 Java 正則表達式 JVM實用參數(五)新生代垃圾回收 JAVA性能優化調查結果(第二部分)

原创 03 Java 併發 線程安全理論基礎

線程安全問題 線程安全問題可能是非常複雜的。 競態條件 當兩個線程競爭同一資源時,如果對資源的訪問順序敏感,就稱存在競態條件。導致競態條件發生的代碼區稱作臨界區。 public class Counter { prote

原创 05 Java JUC 中的 Executor 框架 提交線程

Executors類裏面提供了一些靜態工廠,生成一些常用的線程池。 newSingleThreadExecutor:創建一個單線程的線程池。這個線程池只有一個線程在工作,也就是相當於單線程串行執行所有任務。如果這個唯一的線程因爲異常結束,

原创 Creating JSON from Java

Jackson 是一般比較常用的JSON解析框架, Spring mvc 中就是用Jackson解析JSON的. 官方網址: https://github.com/FasterXML/jackson 需要注意 Jackson 有兩個

原创 07 Java JUC 中的 Executor 框架 週期性任務調度

ScheduledExecutorService基於ExecutorService,是一個完整的線程池調度。另外在提供線程池的基礎上增加了四個調度任務的API。 schedule(Runnable command,long delay,

原创 08 Java JUC 中的 ThreadPoolExecutor

通過 Executors 工具可以創建普通的線程池以及schedule調度任務的調度池。來看下內部是怎麼實現的 public static ExecutorService newFixedThreadPool(int nThreads)