<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集群開發數據挖掘
    主站蜘蛛池模板: 久久午夜夜伦鲁鲁片免费无码| 亚洲无删减国产精品一区| 久久成人18免费网站| 麻豆亚洲AV成人无码久久精品 | 亚洲一久久久久久久久| 亚洲国产精品成人久久| 国产麻豆剧传媒精品国产免费| 东北美女野外bbwbbw免费| 亚洲国产一区二区三区| a毛片基地免费全部视频| 亚洲三级中文字幕| 噜噜噜亚洲色成人网站∨| 国产精品亚洲高清一区二区| 性做久久久久免费观看| 一个人免费高清在线观看| 午夜影院免费观看| 久久久久久成人毛片免费看| a级毛片视频免费观看| jizz18免费视频| 国产麻豆成人传媒免费观看| 三级黄色片免费看| 67194国产精品免费观看| 又大又硬又爽又粗又快的视频免费| 久久免费香蕉视频| 91免费福利视频| 51精品视频免费国产专区| 91在线品视觉盛宴免费| 久久亚洲免费视频| 2021国产精品成人免费视频| 福利免费观看午夜体检区| 日本一道在线日本一道高清不卡免费| 我要看WWW免费看插插视频| 日日操夜夜操免费视频| 久久精品国产亚洲Aⅴ香蕉| 亚洲成年轻人电影网站www| 亚洲综合精品成人| WWW免费视频在线观看播放| 国产大片免费网站不卡美女 | 亚洲欧洲国产综合| 国产一区二区三区在线免费| 亚洲精品无码乱码成人|