原创 使用MapReduce求解join問題

背景 有兩張表,以文件的形式存儲在hdfs中,如下: 學生基本信息 001 jyw nan 002 lq nv 003 jl n 學生考試成績信息 001 english 90 001 math 92 002 chin

原创 JDK併發包中的線程池(一)

不使用線程池時的一些問題 public class NonePool { public static void main(String[] args) { new Thread(){

原创 使用MapReduce實現尋找共同好友的案例

假設有一下qq的好友列表數據,冒號前是一個用戶,冒號後是該用戶的所有好友(數據中的好友關係是單向的) A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,

原创 MapReduce的GroupComparator

問題 有如下的訂單數據,想要查詢出每一個訂單中的最貴的商品 Order_0000001 Pdt_01 222.8 Order_0000001 Pdt_01 222.8 Order_0000002 Pdt_03 5

原创 運行MR程序的方式

運行MR程序的幾種方式 打包成jar包後運行 可以需要配置 configuration.set("mapreduce.framework.name","yarn"); configuration.set("ya

原创 Hive中的數據定義(DDL)__Database(Schema)

Hive中的數據庫 創建數據庫的語句: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION

原创 JDK併發包中的線程池(二)核心線程池的內部實現

對於核心的幾個線程池 newSingleThreadExecutor newFixedThreadPool newCachedThreadPool 其內部都是使用的ThreadPoolExecutor實現的,下面給出它們的實現方式

原创 org.apache.commons.io.IOUtils.copyLarge源碼解析

本文的程序爲使用hdfs的客戶端從hdfs中讀取數據,並將得到的流copy到System.out中 其他的重載方法最後都是調用這個方法

原创 MapReduce的Shuffle原理

什麼是Shuffle Hadoop計算框架Shuffler, 在mapper和reducer中間的一個步驟 ,可以把mapper的輸出按照某種key值重新切分和組合成n份,把key值符 合某種範圍的輸出送到特定的reducer那裏

原创 MapReduce的全排序

問題的提出 正常情況下,Mapreduce的保障之一就是送到Reducer端的數據總是根據Reducer的輸入鍵進行排序的,如果我們使用單個Reducer,排序就會直接了當,但是隻是使用一個Reducer的情況少之又少,如果使用了

原创 Fork/Join框架

Fork/Join框架的思想 Fork/Join的思想是一個分而治之的思想的實現,跟MapReduce的思想如出一轍,簡單的說就是加入我們需要處理1000個數據,但是我們並不具備處理1000個數據的能力,那麼我們可以讓一個線程只處

原创 Hive中的分區表

分區表 創建分區表 CREATE TABLE employees ( name STRING, salary FLOAT, subordinates ARRAY<STRING>, deducti

原创 Hadoop2.x的yarn

hadoop mapreduce 1.x中的問題 原理 在1.x中主要使用的是JobTracker和TaskTracker這兩個組件管理系統中的資源 step1:客戶端提交任務 step2:JobTracker從nameno

原创 Hive之Table

創建表 創建表的語句 第一種 CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [CO

原创 hive 分區表msck命令

當我們創建好一個分區表的時候: CREATE external TABLE IF NOT EXISTS db01.employees( name STRING COMMENT 'Employee name', salary FL