22
必必必必必必必必 JDK (https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS- CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start? ProductRef=jdk-6u10-docs-oth-JPR@CDS-CDS_Developer ) 必必必必必 cygwin (http://www.cygwin.com/ ) 必必必必必 NET 必 opensshopenssl 必必必 package 必必必必必 Path 必必必必必 c:\cygwin\bin;c:\cygwin\usr\bin

eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

必須先下載並安裝 JDK (https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u10-docs-oth-JPR@CDS-CDS_Developer )

下載並安裝 cygwin (http://www.cygwin.com/ )

需選擇安裝 NET的 openssh、openssl這兩個 package

在環境變數 Path中新增編輯c:\cygwin\bin;c:\cygwin\usr\bin

Page 2: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

開啟 cygwin視窗後輸入下列指令:ssh-host-config

接著會詢問When asked if privilege separation should be used,輸入 no。接著When asked if sshd should be installed as a service,回答輸入 yes。接著詢問 Enter the value of CYGWIN for the daemon:[],輸入 ntsec。

Page 3: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

此時在「服務」中,會多出一個「CYGWIN sshd」的服務,請按右鍵「啟動」服務。

Page 4: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

在 cygwin視窗中輸入下面指令:ssh-keygen接著將詢問密碼及檔案名稱,請直接按下「Enter」。

Page 5: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

接著輸入下面只列將可以看到「ssh」資料夾中的所有檔案。cd ~/.sshls -l

註冊新的授權密鑰輸入以下指令。cat id_rsa.pub >> authorized_keys

現在檢查的密鑰在那裡設置正確執行下面的指令。ssh localhost當輸入上面指令後,由於它是一個新的 SSH安裝,您警告說,主機的真實性無法確定,將提示您是否真的要連接,請回答 是的 ,然後按「Enter」鍵。 您應該看到 cygwin的提示符下再次,這意味著你已經成功連接。

再次輸入。ssh localhost

將可以看到上次登入的資訊。

將 hadoop檔案解壓縮到「C:\cygwin\home\Administrator」目錄下。也可利用下面指令解壓縮。(X代表 hdoop版本)tar -xzf hadoop-X.XX.X.tar.gz

Page 6: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

編輯 /hadoop/conf/hadoop-env.sh export JAVA_HOME="C:\\Program Files\\Java\\jdk1.6.0_21"

編輯 /hadoop/conf/core-site.xml <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/tmp/hadoop/hadoop-${user.name}</value> </property></configuration>

編輯 /hadoop/conf/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value>

Page 7: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

</property></configuration>

編輯 /hadoop/conf/mapred-site.xml <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property></configuration>

編輯完畢後輸入下列指令:cd hadoop-0.20.2/confsource hadoop-env.shhadoop namenode -formatstart-all.sh

在「C:\cygwin\home\Administrator\hadoop-0.20.2\contrib\eclipse-plugin」找到「hadoop-0.20.2-eclipse-plugin.jar」並複製到「C:\eclipse-europa-hadoop\plugins」下面。

Page 8: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

選擇「window」 -> 「open pers.. 」 -> 「other.. 」 -> 「map/reduce」。

Page 9: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

將會如下圖呈現「MapReduce」的視窗。

Page 10: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

選擇「file」 -> 「new」 -> 「project」 -> 「 Map/Reduce」 -> 「 Map/Reduce Project 」-> 「next」。

「project name: 」 test (可隨意輸入)「use default hadoop」 點選 「Configur Hadoop install dirctory」 後在選取 hadoop的目錄位置。選完後點選「 ok」以及「Finish」,完成新增專案動作。

Page 11: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

在剛剛新增完成的專案上按右鍵,接點選取「properties」。

Page 12: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

在「java Build Path」 ->「 Libraries 」找到「hadoop-0.20.0-ant.jar」 、「hadoop-0.20.0-core.jar 」、「hadoop-0.20.0-tools.jar」這三個項目並修改。Source中編輯輸入 C:/cygwin/home/Administrator/hadoop-0.20.2/srcjavadoc中編輯輸入 file:/C:/cygwin/home/Administrator/hadoop-0.20.2/docs/api/

修改後如下圖顯示。

Page 13: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。
Page 14: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

javadoc location -> 輸入:file:/usr/lib/jvm/java-6-

sun/docs/api/

視窗右下角黃色大象圖示"Map/Reduce Locations tag"

Location Name -> 輸入:hadoop (可隨意輸入)Map/Reduce Master -> Host-> 輸入:localhost Map/Reduce Master -> Port-> 輸入:9001 DFS Master -> Host-> 輸入:9000Finish

Page 15: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

File -> new -> mapper

Page 16: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

source folder-> 輸入: test/srcPackage : SampleName -> : mapper

將程式複製到mapper.java中package Sample;

import java.io.IOException;import java.util.StringTokenizer;

import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;

Page 17: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

public class mapper extends Mapper<Object, Text, Text, IntWritable> {

private final static IntWritable one = new IntWritable(1); private Text word = new Text();

public void map(Object key, Text value, Context context) throws IOException, InterruptedException { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } }}

File -> new -> reducer

source folder-> 輸入: test/srcPackage : SampleName -> : reducer

Page 18: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

將下列程式複製到 reducer.java中package Sample;

import java.io.IOException;

import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;

public class reducer extends Reducer<Text, IntWritable, Text, IntWritable> { private IntWritable result = new IntWritable();

public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get();

Page 19: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

} result.set(sum); context.write(key, result); }}

File -> new -> Map/Reduce Driver

source folder-> 輸入: test/srcPackage : SampleName -> : WordCount

Page 20: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

將程式複製到WordCount.java中package Sample;

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

public static void main(String[] args) throws Exception {

Page 21: eportfolio.lib.ksu.edu.tweportfolio.lib.ksu.edu.tw/user/G/9/G990Q001/repository... · Web viewFinish 設定完後,可以看到下方多了一隻藍色大象,左方展開資料夾也可以秀出在hdfs內的檔案結構。

Configuration conf = new Configuration(); String[] otherArgs = new GenericOptionsParser(conf, args) .getRemainingArgs(); if (otherArgs.length != 2) { System.err.println("Usage: wordcount <in> <out>"); System.exit(2); } Job job = new Job(conf, "word count"); job.setJarByClass(WordCount.class); job.setMapperClass(mapper.class);

job.setCombinerClass(reducer.class); job.setReducerClass(reducer.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); FileInputFormat.addInputPath(job, new Path(otherArgs[0])); FileOutputFormat.setOutputPath(job, new Path(otherArgs[1])); System.exit(job.waitForCompletion(true) ? 0 : 1); }}