<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Skynet

    ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks
    參考 : hadoop window 搭建 后,由于對 py 的語法喜歡 ,一直想 把hadoop,改成jython 的
    這次 在 自己電腦上  終于 完成,下面介紹過程:

    測試環(huán)境:
    依然的 windows + cygwin
    hadoop 0.18  # C:/cygwin/home/lky/tools/java/hadoop-0.18.3
    jython 2.2.1 # C:/jython2.2.1

    參考: PythonWordCount

    啟動 hadoop 并到 hdoop_home 下
    # 在云環(huán)境中創(chuàng)建 input 目錄
    $>bin/hadoop dfs -mkdir input

    # 在 包 hadoop 的 NOTICE.txt 拷貝到 input 目錄下
    $>bin/hadoop dfs -copyFromLocal c:/cygwin/home/lky/tools/java/hadoop-0.18.3/NOTICE.txt  hdfs:///user/lky/input

    $>cd
    src/examples/python

    # 創(chuàng)建 個 腳本 ( jy->jar->hd run  ) 一步完成!
    # 當(dāng)然 在 linux 寫個腳本比這 好看 呵呵!
    $>vim run.bat
    "C:\Program Files\Java\jdk1.6.0_11\bin\java.exe"  -classpath "C:\jython2.2.1\jython.jar;%CLASSPATH%" org.python.util.jython C:\jython2.2.1\Tools\jythonc\jythonc.py   -p org.apache.hadoop.examples -d -j wc.jar -c %1

    sh C:\cygwin\home\lky\tools\java\hadoop-
    0.18.3\bin\hadoop jar wc.jar  %2 %3 %4 %5 %6 %7 %8 %9

    # 修改 jythonc 打包 環(huán)境 。 +hadoop jar
    $>vim C:\jython2.2.1\Tools\jythonc\jythonc.py
    # Copyright (c) Corporation for National Research Initiatives
    # Driver script for jythonc2.  See module main.py for details
    import sys,os,glob

    for fn in glob.glob('c:/cygwin/home/lky/tools/java/hadoop-0.18.3/*.jar') :sys.path.append(fn)
    for fn in glob.glob('c:/jython2.2.1/*.jar') :sys.path.append(fn)
    for fn in glob.glob('c:/cygwin/home/lky/tools/java/hadoop-0.18.3/lib/*.jar'
    ) :sys.path.append(fn)

    import main
    main.main()

    import os
    os._exit(0)


    # 運(yùn)行
    C:/cygwin/home/lky/tools/java/hadoop-0.18.3/src/examples/python>
      run.bat WordCount.py  hdfs:///user/lky/input  file:///c:/cygwin/home/lky/tools/java/hadoop-0.18.3/tmp2




    結(jié)果輸出:

    cat c:/cygwin/home/lky/tools/java/hadoop-0.18.3/tmp2/part-00000
    (http://www.apache.org/).       1
    Apache  1
    Foundation      1
    Software        1
    The     1
    This    1
    by      1
    developed       1
    includes        1
    product 1
    software        1

    下面重頭來了 :(簡潔的 jy hdoop 代碼)
    #
    #
     Licensed to the Apache Software Foundation (ASF) under one
    #
     or more contributor license agreements.  See the NOTICE file
    #
     distributed with this work for additional information
    #
     regarding copyright ownership.  The ASF licenses this file
    #
     to you under the Apache License, Version 2.0 (the
    #
     "License"); you may not use this file except in compliance
    #
     with the License.  You may obtain a copy of the License at
    #
    #
         http://www.apache.org/licenses/LICENSE-2.0
    #
    #
     Unless required by applicable law or agreed to in writing, software
    #
     distributed under the License is distributed on an "AS IS" BASIS,
    #
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    #
     See the License for the specific language governing permissions and
    #
     limitations under the License.
    #

    from org.apache.hadoop.fs import Path
    from org.apache.hadoop.io import *
    from org.apache.hadoop.mapred import *

    import sys
    import getopt

    class WordCountMap(Mapper, MapReduceBase):
        one 
    = IntWritable(1)
        
    def map(self, key, value, output, reporter):
            
    for w in value.toString().split():
                output.collect(Text(w), self.one)

    class Summer(Reducer, MapReduceBase):
        
    def reduce(self, key, values, output, reporter):
            sum 
    = 0
            
    while values.hasNext():
                sum 
    += values.next().get()
            output.collect(key, IntWritable(sum))

    def printUsage(code):
        
    print "wordcount [-m <maps>] [-r <reduces>] <input> <output>"
        sys.exit(code)

    def main(args):
        conf 
    = JobConf(WordCountMap);
        conf.setJobName(
    "wordcount");
     
        conf.setOutputKeyClass(Text);
        conf.setOutputValueClass(IntWritable);
        
        conf.setMapperClass(WordCountMap);        
        conf.setCombinerClass(Summer);
        conf.setReducerClass(Summer);
        
    try:
            flags, other_args 
    = getopt.getopt(args[1:], "m:r:")
        
    except getopt.GetoptError:
            printUsage(
    1)
        
    if len(other_args) != 2:
            printUsage(
    1)
        
        
    for f,v in flags:
            
    if f == "-m":
                conf.setNumMapTasks(int(v))
            
    elif f == "-r":
                conf.setNumReduceTasks(int(v))
        conf.setInputPath(Path(other_args[0]))
        conf.setOutputPath(Path(other_args[
    1]))
        JobClient.runJob(conf);

    if __name__ == "__main__":
        main(sys.argv)







    整理 m.tkk7.com/Good-Game
    posted on 2009-09-04 17:14 劉凱毅 閱讀(1982) 評論(0)  編輯  收藏 所屬分類: python集群開發(fā)數(shù)據(jù)挖掘
    主站蜘蛛池模板: 最近免费中文字幕大全视频 | 亚洲6080yy久久无码产自国产| 色婷五月综激情亚洲综合| 成年女人毛片免费播放人| 国产亚洲精品精品精品| 国产亚洲综合成人91精品| 免费在线视频你懂的| 亚洲色图视频在线观看| 久久国产一片免费观看| 亚洲AV中文无码乱人伦在线视色| 亚洲精品无码专区在线| 国内精品免费视频自在线| 亚洲午夜一区二区三区| 亚洲色欲久久久久综合网| 一区二区三区免费高清视频| 亚洲午夜久久久精品影院| 免费国产综合视频在线看 | 亚洲国产高清精品线久久| 色欲国产麻豆一精品一AV一免费| 噜噜综合亚洲AV中文无码| 国产l精品国产亚洲区在线观看| 成人毛片18女人毛片免费视频未 | 亚洲精品欧洲精品| 亚洲国产精品一区二区第一页免 | 9久久免费国产精品特黄| 亚洲中文字幕无码av| 日本特黄特色免费大片| 美女免费视频一区二区| 亚洲欧洲视频在线观看| 亚洲人成色777777在线观看| 无码囯产精品一区二区免费 | 日本一区二区三区在线视频观看免费 | 色婷婷六月亚洲综合香蕉| 亚洲av女电影网| 日韩免费一区二区三区在线| 中文在线观看免费网站| 亚洲熟妇色自偷自拍另类| 亚洲精品无码不卡在线播HE| 亚洲男女内射在线播放| 色播在线永久免费视频| 一色屋成人免费精品网站 |