Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-06-25, 22:46

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 3 篇文章 ] 
發表人 內容
 文章主題 : 只有一台電腦做 Map
文章發表於 : 2010-03-25, 23:19 
離線

註冊時間: 2010-03-06, 21:45
文章: 36
我的叢集環境 是串了兩台電腦
但我不確定是不是哪裡漏了什麼設定
我跑了一個MapReduce的範例後,只有一台電腦做 Map
想要來請教大家

以下是我跑得範例和資料庫的資料

資料庫:
row1 column=hardware:inlat, timestamp=1269528709070, value=111
row2 column=hardware:inlat, timestamp=1269528719747, value=222
row3 column=hardware:inlat, timestamp=1269528728389, value=333
row4 column=hardware:inlat, timestamp=1269528748536, value=444
row5 column=hardware:inlat, timestamp=1269528755122, value=555

程式:

public class LoadHBase{

public static class HtMap extends TableMapper<Text, Text> {
public void map(ImmutableBytesWritable key, Result value,Context context)throws IOException, InterruptedException {
String res = Bytes.toString(value.getValue(Bytes.toBytes("hardware"),Bytes.toBytes("inlat")));
context.write(new Text(key.toString()), new Text(res));
}
}
public static class HtReduce extends Reducer<Text, Text, Text, Text> {
public void reduce(Text key, Iterable<Text> values, Context context)throws IOException, InterruptedException {
String str = new String("");
Text final_key = new Text(key);
Text final_value = new Text();
for (Text tmp : values) {
str += tmp.toString();
}
final_value.set(str);
context.write(final_key, final_value);
}
}

public LoadHBase() throws Exception {
String input = "output2";
String tablename = "machine";

Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(conf);
fs.delete(new Path(input),true);

Job job = new Job(conf, " hbase data to hdfs");
job.setJarByClass(LoadHBase.class);
job.setNumReduceTasks(1);
Scan myScan = new Scan();
System.out.println("1234556767");
TableMapReduceUtil.initTableMapperJob(tablename, myScan, HtMap.class,Text.class, Text.class, job);
job.setReducerClass(HtReduce.class);
job.setOutputFormatClass(TextOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
FileOutputFormat.setOutputPath(job, new Path(input));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 只有一台電腦做 Map
文章發表於 : 2010-03-28, 14:05 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
rockhunter 寫:
我的叢集環境 是串了兩台電腦
但我不確定是不是哪裡漏了什麼設定
我跑了一個MapReduce的範例後,只有一台電腦做 Map
想要來請教大家


1. 請問 http://JobTracker:50030/ 顯示的 Mapper 跟 Reducer 個數是多少呢??
2. 如果資料量不是很多,恰巧您的 Data 僅放在其中一台 Data Node,執行時就會只有一台機器跑兩個 Mapper。
(因為只有兩台,若設定三份副本,會造成副本機制無法正常運作)
可以到 http://NameNode:50070/ 或者下 hadoop fsck 加 -locations 查 block 分布狀況(Ex. 把路徑改成 HBase 的路徑)

代碼:
jazz@hadoop:~$ hadoop fsck /user/jazz/start_vnc -blocks -files -locations
/user/jazz/start_vnc 68 bytes, 1 block(s):  OK
0. blk_-271624403860964835_582073 len=68 repl=2 [192.168.1.11:50010, 192.168.1.20:50010]


- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 只有一台電腦做 Map
文章發表於 : 2010-03-31, 10:01 
離線

註冊時間: 2010-03-06, 21:45
文章: 36
謝謝你的回答,我去試試看


jazz 寫:
rockhunter 寫:
我的叢集環境 是串了兩台電腦
但我不確定是不是哪裡漏了什麼設定
我跑了一個MapReduce的範例後,只有一台電腦做 Map

想要來請教大家


1. 請問 http://JobTracker:50030/ 顯示的 Mapper 跟 Reducer 個數是多少呢??
2. 如果資料量不是很多,恰巧您的 Data 僅放在其中一台 Data Node,執行時就會只有一台機器跑兩個 Mapper。
(因為只有兩台,若設定三份副本,會造成副本機制無法正常運作)
可以到 http://NameNode:50070/ 或者下 hadoop fsck 加 -locations 查 block 分布狀況(Ex. 把路徑改成 HBase 的路徑)

代碼:
jazz@hadoop:~$ hadoop fsck /user/jazz/start_vnc -blocks -files -locations
/user/jazz/start_vnc 68 bytes, 1 block(s):  OK
0. blk_-271624403860964835_582073 len=68 repl=2 [192.168.1.11:50010, 192.168.1.20:50010]


- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 3 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:Majestic-12 [Bot] 和 1 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作