99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)精彩閱讀 Hadoop 在Windows7操作系統(tǒng)下使用Eclipse來(lái)搭建hadoop開(kāi)發(fā)環(huán)境
Hadoop 在Windows7操作系統(tǒng)下使用Eclipse來(lái)搭建hadoop開(kāi)發(fā)環(huán)境
2015-01-05
收藏

 Hadoop 在Windows7操作系統(tǒng)下使用Eclipse來(lái)搭建hadoop開(kāi)發(fā)環(huán)境


網(wǎng)上有一些都是在Linux下使用安裝Eclipse來(lái)進(jìn)行hadoop應(yīng)用開(kāi)發(fā),但是大部分Java程序員對(duì)linux系統(tǒng)不是那么熟悉,所以需要在windows下開(kāi)發(fā)hadoop程序,所以經(jīng)過(guò)試驗(yàn),總結(jié)了下如何在windows下使用Eclipse來(lái)開(kāi)發(fā)hadoop程序代碼。

 

1、 需要下載hadoop的專(zhuān)門(mén)插件jar包

hadoop版本為2.3.0,hadoop集群搭建在centos6x上面,插件包下載地址為:http://download.csdn.net/detail/mchdba/8267181jar包名字為hadoop-eclipse-plugin-2.3.0,可以適用于hadoop2x系列軟件版本。


2、 把插件包放到eclipse/plugins目錄下

為了以后方便,我這里把盡可能多的jar包都放進(jìn)來(lái)了,如下圖所示:


  

 

3、重啟eclipse,配置Hadoop installation directory    

     如果插件安裝成功,打開(kāi)Windows—Preferences后,在窗口左側(cè)會(huì)有Hadoop Map/Reduce選項(xiàng),點(diǎn)擊此選項(xiàng),在窗口右側(cè)設(shè)置Hadoop安裝路徑。

 


 

 

4、配置Map/Reduce Locations

     打開(kāi)Windows-->Open Perspective-->Other

 

 

 

選擇Map/Reduce,點(diǎn)擊OK,在右下方看到有個(gè)Map/Reduce Locations的圖標(biāo),如下圖所示:


點(diǎn)擊Map/Reduce Location選項(xiàng)卡,點(diǎn)擊右邊小象圖標(biāo),打開(kāi)Hadoop Location配置窗口:

輸入Location Name,任意名稱(chēng)即可.配置Map/Reduce Master和DFS Mastrer,Host和Port配置成與core-site.xml的設(shè)置一致即可。

去找core-site.xml配置:

<property>                                        <name>fs.default.name</name>                                                                        <value>hdfs://name01:9000</value>                                                                                </property>

在界面配置如下:

 


點(diǎn)擊"Finish"按鈕,關(guān)閉窗口。點(diǎn)擊左側(cè)的DFSLocations—>myhadoop(上一步配置的location name),如能看到user,表示安裝成功,但是進(jìn)去看到報(bào)錯(cuò)信息:Error: Permission denied: user=root,access=READ_EXECUTE,inode="/tmp";hadoop:supergroup:drwx---------,如下圖所示:


應(yīng)該是權(quán)限問(wèn)題:把/tmp/目錄下面所有的關(guān)于hadoop的文件夾設(shè)置成hadoop用戶(hù)所有然后分配授予777權(quán)限。

cd /tmp/

chmod 777 /tmp/

chown -R hadoop.hadoop /tmp/hsperfdata_root

之后重新連接打開(kāi)DFS Locations就顯示正常了。


Map/Reduce Master (此處為Hadoop集群的Map/Reduce地址,應(yīng)該和mapred-site.xml中的mapred.job.tracker設(shè)置相同) 

(1):點(diǎn)擊報(bào)錯(cuò):

An internal error occurred during: "Connecting to DFS hadoopname01".

java.net.UnknownHostException: name01

直接在hostname那一欄里面設(shè)置ip地址為:192.168.52.128,即可,這樣就正常打開(kāi)了,如下圖所示:


5、新建WordCount項(xiàng)目

    File—>Project,選擇Map/Reduce Project,輸入項(xiàng)目名稱(chēng)WordCount等。

    在WordCount項(xiàng)目里新建class,名稱(chēng)為WordCount,報(bào)錯(cuò)代碼如下:Invalid Hadoop Runtime specified; please click 'Configure Hadoop install directory' or fill in library location input field,報(bào)錯(cuò)原因是目錄選擇不對(duì),不能選擇在跟目錄E:\hadoop下,換成E:\u\hadoop\就可以了,如下所示:

 

一路下一步過(guò)去,點(diǎn)擊Finished按鈕,完成工程創(chuàng)建,Eclipse控制臺(tái)下面出現(xiàn)如下信息:

14-12-9 下午04時(shí)03分10秒: Eclipse is running in a JRE, but a JDK is required

  Some Maven plugins may not work when importing projects or updating source folders.

14-12-9 下午04時(shí)03分13秒: Refreshing [/WordCount/pom.xml]

14-12-9 下午04時(shí)03分14秒: Refreshing [/WordCount/pom.xml]

14-12-9 下午04時(shí)03分14秒: Refreshing [/WordCount/pom.xml]

14-12-9 下午04時(shí)03分14秒: Updating index central|http://repo1.maven.org/maven2

14-12-9 下午04時(shí)04分10秒: Updated index for central|http://repo1.maven.org/maven2

 


 

6, Lib包導(dǎo)入:
需要添加的hadoop相應(yīng)jar包有:

/hadoop-2.3.0/share/hadoop/common下所有jar包,及里面的lib目錄下所有jar包,
/hadoop-2.3.0/share/hadoop/hdfs下所有jar包,不包括里面lib下的jar包,
/hadoop-2.3.0/share/hadoop/mapreduce下所有jar包,不包括里面lib下的jar包,
/hadoop-2.3.0/share/hadoop/yarn下所有jar包,不包括里面lib下的jar包,
大概
18個(gè)jar包左右。

 

 

7,Eclipse直接提交mapreduce任務(wù)所需要環(huán)境配置代碼如下所示:


  1. package wc;
  2. import java.io.IOException;
  3. import java.util.StringTokenizer;
  4. import org.apache.hadoop.conf.Configuration;
  5. import org.apache.hadoop.fs.Path;
  6. import org.apache.hadoop.io.IntWritable;
  7. import org.apache.hadoop.io.Text;
  8. import org.apache.hadoop.mapreduce.Job;
  9. import org.apache.hadoop.mapreduce.Mapper;
  10. import org.apache.hadoop.mapreduce.Reducer;
  11. import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
  12. import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
  13. import org.apache.hadoop.util.GenericOptionsParser;
  14.  
  15. public class W2 {

  16.     public static class TokenizerMapper extends
  17.             Mapper<Object, Text, Text, IntWritable> {
  18.         private final static IntWritable one = new IntWritable(1);
  19.         private Text word = new Text();
  20.         public void map(Object key, Text value, Context context)
  21.                 throws IOException, InterruptedException {
  22.             StringTokenizer itr = new StringTokenizer(value.toString());
  23.             while (itr.hasMoreTokens()) {
  24.                 word.set(itr.nextToken());
  25.                 context.write(word, one);
  26.             }
  27.         }
  28.     }
  29.  
  30.     public static class IntSumReducer extends
  31.             Reducer<Text, IntWritable, Text, IntWritable> {
  32.         private IntWritable result = new IntWritable();
  33.         public void reduce(Text key, Iterable<IntWritable> values,
  34.                 Context context) throws IOException, InterruptedException {
  35.             int sum = 0;
  36.             for (IntWritable val : values) {
  37.                 sum += val.get();
  38.             }
  39.             result.set(sum);
  40.             context.write(key, result);
  41.         }
  42.     }
  43.  
  44.     public static void main(String[] args) throws Exception {
  45.  
  46.         Configuration conf = new Configuration(); System.setProperty(\


 

8、運(yùn)行

 8.1、在HDFS上創(chuàng)建目錄input

 [hadoop@name01 hadoop-2.3.0]$ hadoop fs -ls /

[hadoop@name01 hadoop-2.3.0]$  hadoop fs -mkdir input

mkdir: `input': No such file or directory

[hadoop@name01 hadoop-2.3.0]$ PSfs需要全目錄的方式來(lái)創(chuàng)建文件夾

如果Apache hadoop版本是0.x 或者1.x,

  bin/hadoop hdfs fs -mkdir -p /in

  bin/hadoop hdfs fs  -put /home/du/input   /in

 

如果Apache hadoop版本是2.x.

  bin/hdfs  dfs  -mkdir -p /in

  bin/hdfs  dfs   -put /home/du/input   /in

 

如果是發(fā)行版的hadoop,比如Cloudera CDH,IBM BI,Hortonworks HDP 則第一種命令即可。要注意創(chuàng)建目錄的全路徑。另外hdfs的根目錄是 /


 

2、拷貝本地README.txtHDFSinput

[hadoop@name01 hadoop-2.3.0]$ find . -name README.txt

./share/doc/hadoop/common/README.txt

[hadoop@name01 ~]$ hadoop fs -copyFromLocal ./src/hadoop-2.3.0/share/doc/hadoop/common/README.txt /data/input

[hadoop@name01 ~]$

 [hadoop@name01 ~]$ hadoop fs -ls /
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2014-12-15 23:34 /data
-rw-r--r--   3 hadoop supergroup         88 2014-08-26 02:21 /input
You have new mail in /var/spool/mail/root
[hadoop@name01 ~]$

3,運(yùn)行hadoop結(jié)束后,查看輸出結(jié)果
(1),直接在hadoop服務(wù)器上面查看
[hadoop@name01 ~]$ hadoop fs -ls /data/
Found 2 items
drwxr-xr-x   - hadoop supergroup          0 2014-12-15 23:29 /data/input
drwxr-xr-x   - hadoop supergroup          0 2014-12-15 23:34 /data/output
[hadoop@name01 ~]$ 

(2),去Eclipse下查看


(3),在控制臺(tái)上查看信息

  1. 2014-12-16 15:34:01,303 INFO [main] Configuration.deprecation (Configuration.java:warnOnceIfDeprecated(996)) - session.id is deprecated. Instead, use dfs.metrics.session-id
  2. 2014-12-16 15:34:01,309 INFO [main] jvm.JvmMetrics (JvmMetrics.java:init(76)) - Initializing JVM Metrics with processName=JobTracker, sessionId=
  3. 2014-12-16 15:34:02,047 INFO 

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }