SlideShare a Scribd company logo
1 of 5
Download to read offline
Lab 11: HADOOP MAPREDUCE
Biên so n: ThS. Nguy n Quang Hùngạ ễ
E-mail: hungnq2@cse.hcmut.edu.vn
1. Giới thiệu:
• Hadoop Map/Reduce là m t khung n n (software framework) mã ngu n m , h trộ ề ồ ở ỗ ợ
ng i l p trình vi t các ng d ng theo mô hình Map/Reduce. Đ hi n th c m t ngườ ậ ế ứ ụ ể ệ ự ộ ứ
d ng theo mô hình Map/Reduce, sinh viên c n s d ng các interface l p trình doụ ầ ử ụ ậ
Hadoop cung c p nh : Mapper, Reducer, JobConf, JobClient, Partitioner,ấ ư
OutputCollector, Reporter, InputFormat, OutputFormat, v.v..
• Yêu c u sinh viên th c thi ng d ng WordCount trên hai mô hình cluster đ hi u rõầ ự ứ ụ ể ể
ho t đ ng c a mô hình Map/Reduce và ki n trúc HDFS (Hadoop Distributedạ ộ ủ ế
FileSystem).
2. Tài liệu hướng dẫn cài đặt Apache Hadoop và MapReduce
tutorial:
- Hadoop: http://hadoop.apache.org/docs/r1.1.2/#Getting+Started
- Tài li u h ng d n cài đ t Apache Hadoop trên cluster (Cluster node setup):ệ ướ ẫ ặ
https://hadoop.apache.org/docs/r1.2.1/cluster_setup.html
- MapReduce Tutorial: http://hadoop.apache.org/docs/r1.1.2/mapred_tutorial.html
3. Chương trình ví dụ:
3.1. Cài đặt và sử dụng MapReduce
SV có th cài đ t mô hình Single Node Mode hay Pseudo-Distributed Operation trênể ặ
m t máy đ n. Các b c th c hi n nh sau:ộ ơ ướ ự ệ ư
 Download hadoop distribution t m t trong các liên k t sau: http://ừ ộ ế
hadoop.apache.org
 Kh i đ ng môi tr ng hadoop mapreduce b ng các l nh sau:ở ộ ườ ằ ệ
$ cd $HADOOP_HOME
$ bin/hadoop namenode –format
$ bin/start-all.sh
 Th c hi n duy t các trang web sau đ ki m tra xem Hadoop MapReduce đã ho tự ệ ệ ể ể ạ
đ ng hay ch a:ộ ư
• Namenode: http://localhost:50070
• JobTracker: http://localhost:50030
- Th c thi ng d ng m u đ c cung c p b i hadoop:ự ứ ụ ẫ ượ ấ ở
$ bin/hadoop fs -put conf input
$ bin/hadoop jar hadoop-example-*.jar grep input output ‘dfs[a-z.]+’
$ bin/hadoop fs –get output output
$ cat output/*
- K t thúc môi tr ng hadoop mapreduceế ườ
$ bin/stop-all.sh
M t s file c u hình đ thi t l p môi tr ng Peuso-DistribuCluster mode cho Hadoop g m:ộ ố ấ ể ế ậ ườ ồ
- Ba (3) t p tin chính trong th m c hadoop-version/conf:ậ ư ụ
conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
3.2. Chương trình ví dụ: WordCount.java
/* Filename: WordCount.java */
package org.myorg;
import java.io.IOException;
import java.util.*;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;
public class WordCount {
public static class Map extends MapReduceBase implements Mapper<LongWritable,
Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(LongWritable key, Text value, OutputCollector<Text,
IntWritable> output, Reporter reporter) throws IOException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
output.collect(word, one);
}
}
}
public static class Reduce extends MapReduceBase implements Reducer<Text,
IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {
int sum = 0;
while (values.hasNext()) {
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
public static void main(String[] args) throws Exception {
JobConf conf = new JobConf(WordCount.class);
conf.setJobName("wordcount");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(Map.class);
conf.setCombinerClass(Reduce.class);
conf.setReducerClass(Reduce.class);
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
JobClient.runJob(conf);
}
}
Biên d ch và th c thiị ự
$ export HADOOP_HOME=<th m c cài hadoop>ư ụ
$ javac -classpath $HADOOP_HOME/hadoop-core-*.jar -d ../wordcount_classes/
WordCount.java
$ jar -cvf wordcount.jar -C ../wordcount_classes/ .
$ mkdir wordcount
$ cd wordcount
$ mkdir input
$ cd input/
$ vi file01
Hello Hadoop Goodbye Hadoop
$ vi file02
Hello World Bye World
$ bin/hadoop -fs mkdir wordcount
$ bin/hadoop dfs -put $HOME/input/file0* wordcount/input/
$ bin/hadoop dfs -ls wordcount/input
Found 2 items
-rw-r--r-- 1 hung supergroup 28 2012-05-08 08:15 /user/hung/wordcount/input/file01
-rw-r--r-- 1 hung supergroup 22 2012-05-08 08:15 /user/hung/wordcount/input/file02
$ bin/hadoop dfs -cat wordcount/input/file*
Hello Hadoop Goodbye Hadoop
Hello World Bye World
$ bin/hadoop dfs -ls wordcount/input
Found 2 items
-rw-r--r-- 1 hung supergroup 28 2012-05-08 08:15 /user/hung/wordcount/input/file01
-rw-r--r-- 1 hung supergroup 22 2012-05-08 08:15 /user/hung/wordcount/input/file02
$ bin/hadoop jar ~/wordcount.jar org.myorg.WordCount wordcount/input
wordcount/output
12/05/08 08:17:38 WARN mapred.JobClient: Use GenericOptionsParser for parsing the
arguments. Applications should implement Tool for the same.
12/05/08 08:17:38 INFO mapred.FileInputFormat: Total input paths to process : 2
12/05/08 08:17:38 INFO mapred.JobClient: Running job: job_201205080748_0004
12/05/08 08:17:39 INFO mapred.JobClient: map 0% reduce 0%
12/05/08 08:17:57 INFO mapred.JobClient: map 66% reduce 0%
12/05/08 08:18:17 INFO mapred.JobClient: map 100% reduce 100%
12/05/08 08:18:22 INFO mapred.JobClient: Job complete: job_201205080748_0004
12/05/08 08:18:22 INFO mapred.JobClient: Counters: 30
…..
12/05/08 08:18:22 INFO mapred.JobClient: Combine output records=6
12/05/08 08:18:22 INFO mapred.JobClient: Physical memory (bytes) snapshot=471007232
12/05/08 08:18:22 INFO mapred.JobClient: Reduce output records=5
12/05/08 08:18:22 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1495506944
12/05/08 08:18:22 INFO mapred.JobClient: Map output records=8
$ bin/hadoop dfs -ls wordcount/output
Found 3 items
-rw-r--r-- 1 hung supergroup 0 2012-05-08 08:18
/user/hung/wordcount/output/_SUCCESS
drwxr-xr-x - hung supergroup 0 2012-05-08 08:17 /user/hung/wordcount/output/_logs
-rw-r--r-- 1 hung supergroup 41 2012-05-08 08:18 /user/hung/wordcount/output/part-
00000
[hung@ppdslab01 hadoop-0.20.205.0]$ bin/hadoop dfs -cat wordcount/output/part-00000
WordCount v2.0
Here is a more complete WordCount which uses many of the features provided by the
MapReduce framework we discussed so far.
This needs the HDFS to be up and running, especially for the DistributedCache-related features.
Hence it only works with a pseudo-distributed or fully-distributed Hadoop installation.
Source Code
https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html#Example
%3A+WordCount+v2.0
• Chú ý: M t s l nh thao tác trên HDFSộ ố ệ
$ bin/hadoop dfs –put <source> <dest> : cung c p input cho ch ng trìnhấ ươ
$ bin/hadoop dfs –get <dest> <source> : l y v output c a ch ng trình.ấ ề ủ ươ
$ bin/hadoop dfs –rmr <dir> : xóa th m c.ư ụ
$ bin/hadoop dfs –rm <file> : xóa t p tinậ
3 Bài tập
Bài 1: SV th c thi ch ng trình WordCount có đ m t n su t xu t hi n các t trong cácự ươ ế ầ ấ ấ ệ ừ
văn b n.ả
Bài 2: SV vi t ch ng trình tính PI theo mô hình Map/Reduce.ế ươ
Bài 3: Cho tr c t p các đ nh (t a đ trong không gian hai chi u (x, y)). Tìm đ ng điướ ậ ỉ ọ ộ ề ườ
ng n nh t qua hai đ nh cho tr c. G i ý: hi n th c gi i thu t Dijistra trên Hadoopắ ấ ỉ ướ ợ ệ ự ả ậ
MapReduce.

More Related Content

Similar to Lab 11 apache hadoop map reduce

Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processingViet-Trung TRAN
 
Web course php co ban
Web course   php co banWeb course   php co ban
Web course php co ban慂 志慂
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Son Giap
 
Cac lenh co_ban_linux
Cac lenh co_ban_linuxCac lenh co_ban_linux
Cac lenh co_ban_linuxgofriv
 
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on Ubuntu
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on UbuntuChapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on Ubuntu
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on UbuntuMinhtuan Chau
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0Cường Nguyễn Tam
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfChuong
 
Python moi
Python moiPython moi
Python moiDÉp LÊ
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developerAiTi Education
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developerDang Tuan
 
[C] giao trinh c dhbk - viet nhat
[C] giao trinh c   dhbk - viet nhat[C] giao trinh c   dhbk - viet nhat
[C] giao trinh c dhbk - viet nhatHoang Nguyen
 
DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfTamDo58
 
Tai lieu-php-coding-standard
Tai lieu-php-coding-standardTai lieu-php-coding-standard
Tai lieu-php-coding-standardVu Minh
 

Similar to Lab 11 apache hadoop map reduce (20)

Mapreduce simplified-data-processing
Mapreduce simplified-data-processingMapreduce simplified-data-processing
Mapreduce simplified-data-processing
 
Web course php co ban
Web course   php co banWeb course   php co ban
Web course php co ban
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879
 
Cac lenh co_ban_linux
Cac lenh co_ban_linuxCac lenh co_ban_linux
Cac lenh co_ban_linux
 
Flutter vs React Native 2018
Flutter vs React Native 2018Flutter vs React Native 2018
Flutter vs React Native 2018
 
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on Ubuntu
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on UbuntuChapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on Ubuntu
Chapter 1: Setup Apache, PHP, PhpMyAdmin. Python Mod on Ubuntu
 
Cài đặt quản trị hệ điều hành Ubuntu 12.0
Cài đặt quản trị  hệ điều hành Ubuntu 12.0Cài đặt quản trị  hệ điều hành Ubuntu 12.0
Cài đặt quản trị hệ điều hành Ubuntu 12.0
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdfLP_TRINH_HP_NG_MIPS_Mc_dich.pdf
LP_TRINH_HP_NG_MIPS_Mc_dich.pdf
 
Hop ngu mips
Hop ngu mipsHop ngu mips
Hop ngu mips
 
Node.js căn bản
Node.js căn bảnNode.js căn bản
Node.js căn bản
 
Python moi
Python moiPython moi
Python moi
 
Speaker dang minh tuan javascript for php developer
Speaker dang minh tuan   javascript for php developerSpeaker dang minh tuan   javascript for php developer
Speaker dang minh tuan javascript for php developer
 
Javascript for php developer
Javascript for php developerJavascript for php developer
Javascript for php developer
 
Tailieu
TailieuTailieu
Tailieu
 
[C] giao trinh c dhbk - viet nhat
[C] giao trinh c   dhbk - viet nhat[C] giao trinh c   dhbk - viet nhat
[C] giao trinh c dhbk - viet nhat
 
DoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdfDoThanhNghi2016_Python.pdf
DoThanhNghi2016_Python.pdf
 
Chuong07 php
Chuong07 phpChuong07 php
Chuong07 php
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Tai lieu-php-coding-standard
Tai lieu-php-coding-standardTai lieu-php-coding-standard
Tai lieu-php-coding-standard
 

Lab 11 apache hadoop map reduce

  • 1. Lab 11: HADOOP MAPREDUCE Biên so n: ThS. Nguy n Quang Hùngạ ễ E-mail: hungnq2@cse.hcmut.edu.vn 1. Giới thiệu: • Hadoop Map/Reduce là m t khung n n (software framework) mã ngu n m , h trộ ề ồ ở ỗ ợ ng i l p trình vi t các ng d ng theo mô hình Map/Reduce. Đ hi n th c m t ngườ ậ ế ứ ụ ể ệ ự ộ ứ d ng theo mô hình Map/Reduce, sinh viên c n s d ng các interface l p trình doụ ầ ử ụ ậ Hadoop cung c p nh : Mapper, Reducer, JobConf, JobClient, Partitioner,ấ ư OutputCollector, Reporter, InputFormat, OutputFormat, v.v.. • Yêu c u sinh viên th c thi ng d ng WordCount trên hai mô hình cluster đ hi u rõầ ự ứ ụ ể ể ho t đ ng c a mô hình Map/Reduce và ki n trúc HDFS (Hadoop Distributedạ ộ ủ ế FileSystem). 2. Tài liệu hướng dẫn cài đặt Apache Hadoop và MapReduce tutorial: - Hadoop: http://hadoop.apache.org/docs/r1.1.2/#Getting+Started - Tài li u h ng d n cài đ t Apache Hadoop trên cluster (Cluster node setup):ệ ướ ẫ ặ https://hadoop.apache.org/docs/r1.2.1/cluster_setup.html - MapReduce Tutorial: http://hadoop.apache.org/docs/r1.1.2/mapred_tutorial.html 3. Chương trình ví dụ: 3.1. Cài đặt và sử dụng MapReduce SV có th cài đ t mô hình Single Node Mode hay Pseudo-Distributed Operation trênể ặ m t máy đ n. Các b c th c hi n nh sau:ộ ơ ướ ự ệ ư  Download hadoop distribution t m t trong các liên k t sau: http://ừ ộ ế hadoop.apache.org  Kh i đ ng môi tr ng hadoop mapreduce b ng các l nh sau:ở ộ ườ ằ ệ $ cd $HADOOP_HOME $ bin/hadoop namenode –format $ bin/start-all.sh  Th c hi n duy t các trang web sau đ ki m tra xem Hadoop MapReduce đã ho tự ệ ệ ể ể ạ đ ng hay ch a:ộ ư
  • 2. • Namenode: http://localhost:50070 • JobTracker: http://localhost:50030 - Th c thi ng d ng m u đ c cung c p b i hadoop:ự ứ ụ ẫ ượ ấ ở $ bin/hadoop fs -put conf input $ bin/hadoop jar hadoop-example-*.jar grep input output ‘dfs[a-z.]+’ $ bin/hadoop fs –get output output $ cat output/* - K t thúc môi tr ng hadoop mapreduceế ườ $ bin/stop-all.sh M t s file c u hình đ thi t l p môi tr ng Peuso-DistribuCluster mode cho Hadoop g m:ộ ố ấ ể ế ậ ườ ồ - Ba (3) t p tin chính trong th m c hadoop-version/conf:ậ ư ụ conf/core-site.xml: <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> conf/hdfs-site.xml: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> conf/mapred-site.xml: <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> </configuration> 3.2. Chương trình ví dụ: WordCount.java /* Filename: WordCount.java */
  • 3. package org.myorg; import java.io.IOException; import java.util.*; import org.apache.hadoop.fs.Path; import org.apache.hadoop.conf.*; import org.apache.hadoop.io.*; import org.apache.hadoop.mapred.*; import org.apache.hadoop.util.*; public class WordCount { public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, one); } } } public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { JobConf conf = new JobConf(WordCount.class); conf.setJobName("wordcount"); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(Map.class); conf.setCombinerClass(Reduce.class); conf.setReducerClass(Reduce.class); conf.setInputFormat(TextInputFormat.class); conf.setOutputFormat(TextOutputFormat.class); FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); } }
  • 4. Biên d ch và th c thiị ự $ export HADOOP_HOME=<th m c cài hadoop>ư ụ $ javac -classpath $HADOOP_HOME/hadoop-core-*.jar -d ../wordcount_classes/ WordCount.java $ jar -cvf wordcount.jar -C ../wordcount_classes/ . $ mkdir wordcount $ cd wordcount $ mkdir input $ cd input/ $ vi file01 Hello Hadoop Goodbye Hadoop $ vi file02 Hello World Bye World $ bin/hadoop -fs mkdir wordcount $ bin/hadoop dfs -put $HOME/input/file0* wordcount/input/ $ bin/hadoop dfs -ls wordcount/input Found 2 items -rw-r--r-- 1 hung supergroup 28 2012-05-08 08:15 /user/hung/wordcount/input/file01 -rw-r--r-- 1 hung supergroup 22 2012-05-08 08:15 /user/hung/wordcount/input/file02 $ bin/hadoop dfs -cat wordcount/input/file* Hello Hadoop Goodbye Hadoop Hello World Bye World $ bin/hadoop dfs -ls wordcount/input Found 2 items -rw-r--r-- 1 hung supergroup 28 2012-05-08 08:15 /user/hung/wordcount/input/file01 -rw-r--r-- 1 hung supergroup 22 2012-05-08 08:15 /user/hung/wordcount/input/file02 $ bin/hadoop jar ~/wordcount.jar org.myorg.WordCount wordcount/input wordcount/output 12/05/08 08:17:38 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 12/05/08 08:17:38 INFO mapred.FileInputFormat: Total input paths to process : 2 12/05/08 08:17:38 INFO mapred.JobClient: Running job: job_201205080748_0004 12/05/08 08:17:39 INFO mapred.JobClient: map 0% reduce 0% 12/05/08 08:17:57 INFO mapred.JobClient: map 66% reduce 0% 12/05/08 08:18:17 INFO mapred.JobClient: map 100% reduce 100% 12/05/08 08:18:22 INFO mapred.JobClient: Job complete: job_201205080748_0004 12/05/08 08:18:22 INFO mapred.JobClient: Counters: 30 ….. 12/05/08 08:18:22 INFO mapred.JobClient: Combine output records=6 12/05/08 08:18:22 INFO mapred.JobClient: Physical memory (bytes) snapshot=471007232 12/05/08 08:18:22 INFO mapred.JobClient: Reduce output records=5
  • 5. 12/05/08 08:18:22 INFO mapred.JobClient: Virtual memory (bytes) snapshot=1495506944 12/05/08 08:18:22 INFO mapred.JobClient: Map output records=8 $ bin/hadoop dfs -ls wordcount/output Found 3 items -rw-r--r-- 1 hung supergroup 0 2012-05-08 08:18 /user/hung/wordcount/output/_SUCCESS drwxr-xr-x - hung supergroup 0 2012-05-08 08:17 /user/hung/wordcount/output/_logs -rw-r--r-- 1 hung supergroup 41 2012-05-08 08:18 /user/hung/wordcount/output/part- 00000 [hung@ppdslab01 hadoop-0.20.205.0]$ bin/hadoop dfs -cat wordcount/output/part-00000 WordCount v2.0 Here is a more complete WordCount which uses many of the features provided by the MapReduce framework we discussed so far. This needs the HDFS to be up and running, especially for the DistributedCache-related features. Hence it only works with a pseudo-distributed or fully-distributed Hadoop installation. Source Code https://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html#Example %3A+WordCount+v2.0 • Chú ý: M t s l nh thao tác trên HDFSộ ố ệ $ bin/hadoop dfs –put <source> <dest> : cung c p input cho ch ng trìnhấ ươ $ bin/hadoop dfs –get <dest> <source> : l y v output c a ch ng trình.ấ ề ủ ươ $ bin/hadoop dfs –rmr <dir> : xóa th m c.ư ụ $ bin/hadoop dfs –rm <file> : xóa t p tinậ 3 Bài tập Bài 1: SV th c thi ch ng trình WordCount có đ m t n su t xu t hi n các t trong cácự ươ ế ầ ấ ấ ệ ừ văn b n.ả Bài 2: SV vi t ch ng trình tính PI theo mô hình Map/Reduce.ế ươ Bài 3: Cho tr c t p các đ nh (t a đ trong không gian hai chi u (x, y)). Tìm đ ng điướ ậ ỉ ọ ộ ề ườ ng n nh t qua hai đ nh cho tr c. G i ý: hi n th c gi i thu t Dijistra trên Hadoopắ ấ ỉ ướ ợ ệ ự ả ậ MapReduce.