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

    測試環境:
    依然的 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 下
    # 在云環境中創建 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

    # 創建 個 腳本 ( jy->jar->hd run  ) 一步完成!
    # 當然 在 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 打包 環境 。 +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)


    # 運行
    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




    結果輸出:

    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集群開發數據挖掘
    主站蜘蛛池模板: 亚洲天堂中文字幕在线| 国产午夜免费秋霞影院| 久久国产亚洲精品麻豆| 99re免费视频| 亚洲男人的天堂在线播放| a毛片免费观看完整| 亚洲AV永久无码精品成人| 亚洲Av高清一区二区三区| jjizz全部免费看片| 亚洲天堂2016| 免费鲁丝片一级在线观看| 久久亚洲AV成人无码国产电影 | 5555在线播放免费播放| 日本一道一区二区免费看| 亚洲av成本人无码网站| 免费人成网站在线高清| 亚洲AV无码专区在线亚| 四色在线精品免费观看| 特a级免费高清黄色片| 亚洲永久精品ww47| 99re热精品视频国产免费| 亚洲国语在线视频手机在线| 最近高清国语中文在线观看免费| 亚洲爆乳AAA无码专区| 亚洲午夜久久久久妓女影院| 国产好大好硬好爽免费不卡| 亚洲国产成人手机在线电影bd | 亚洲乱码中文字幕综合234| 久青草视频在线观看免费| 久久久久亚洲AV无码网站| 毛片大全免费观看| 成人片黄网站色大片免费观看cn| 久久亚洲sm情趣捆绑调教| 国产黄色片在线免费观看| 国产在线观看无码免费视频| 亚洲妓女综合网99| 久久精品国产亚洲Aⅴ蜜臀色欲| 67194国产精品免费观看| 特级毛片爽www免费版| 亚洲成a人片在线观看播放| 亚洲av无码成人精品区|