Es-hadoop-hadoop-streaming

提供:Dev Guides
移動先:案内検索

Hadoop-ストリーミング

Hadoopストリーミングは、Hadoopディストリビューションを使用して利用できます。 Esta utilidad crear y ejecutar Map/Reduce trabajos con cualquier archivo ejecutable o script como el mapa y/o el reductor。

Ejemplo usando Python

Para Hadoopストリーミング、気まぐれなエルコンテオデパララブラス。 Cualquier trabajo de Hadoop debe tener dos fases:mapa y reductor。 Hamosを使用して、Pythonのスクリプトを実行するスクリプトを作成します。 Tambiénse puede escribir la misma en Perl y Ruby。

FaseCódigoMapa

!/usr/bin/python
import sys
# Input takes from standard input for myline in sys.stdin:
# Remove whitespace either side myline = myline.strip()
# Break the line into words words = myline.split()
# Iterate the words list for myword in words:
# Write the results to standard output print '%s\t%s' % (myword, 1)

履歴書のアーカイブ(英語)(chmod + x/home/expert/hadoop-1.2.1/mapper.py)。

FaseCódigo還元剤

#!/usr/bin/python
from operator import itemgetter
import sys
current_word = ""
current_count = 0
word = ""
# Input takes from standard input for myline in sys.stdin:
# Remove whitespace either side myline = myline.strip()
# Split the input we got from mapper.py word, count = myline.split('\t', 1)
# Convert count variable to integer
   try:
      count = int(count)
except ValueError:
   # Count was not a number, so silently ignore this line continue
if current_word == word:
   current_count += count
else:
   if current_word:
      # Write result to standard output print '%s\t%s' % (current_word, current_count)
   current_count = count
   current_word = word
# Do not forget to output the last word if needed!
if current_word == word:
   print '%s\t%s' % (current_word, current_count)

mapper.pyとreductor.pyで作成されたHadoopディレクタリオのホームにあるマップの保護者。 Asegúresede que estos archivos tienen permisos deejecución(chmod + x mapper.pyおよびchmod + x reducer.py)。 SangríaComo python es s sensible por lo que el mismocódigose puede descargar desde el enlace que aparece acontinuación。

Ejecucióndel Programa WordCount

$ $HADOOP_HOME/bin/hadoop jar contrib/streaming/hadoop-streaming-1.
2.1.jar \
   -input input_dirs \
   -output output_dir \
   -mapper <path/mapper.py \
   -reducer <path/reducer.py

Don de "\" se usa paracontinuacióndelíneaclara de legibilidad。

イェメンプロによって、

./bin/hadoop jar contrib/streaming/hadoop-streaming-1.2.1.jar -input myinput -output myoutput -mapper/home/expert/hadoop-1.2.1/mapper.py -reducer/home/expert/hadoop-1.2.1/reducer.py

ストリーミングコーモファンチョーナ

アンエルイェンプロ前部、タントエルマパエルエルレダクトラーソンセクエンシアスデコマンドスデコマンドパイソンキューリーラエントラーダデスデラエントラーダエスタンダールアンドエミッタンスラサリダアラサリダエスタンダール。 ラユティリダドクレアウンマパ/レデューサートラバホ、エンヴィアーエルトラバホアウンクルースター、スーパーバイザーエルプログレソデラタレアハスタクエファイナリス。

地図と地図の地図、地図と地図の地図は、独立した国の地図です。 コモエルマタタレアセエジェクタ、ロビーコンヴェリテスサスエントラダスアンラスリニアスデアリメンタシオンイラスリニアスデラエントラダエスタンダール(STDIN)デルプロセソ。 エル・マインテリン、エル・マパ・レコジ・ラ・リネア・デ・プロダモス・オリエンタダ・ア・ラ・サリダ・エスタンダール(STDOUT)デル・プロセソ・イ・コンビエルテ・カダ・リネア・アン・パー・ド・クレーヴ/バロール、que se recoge en la salida del mapa デ・フォマ・プレデタミナーダ、エル・プレフィホ・デ・ラ・リーニャ・ハスタ・エル・プライマー・タブラシオン・エス・ラ・クラベ・イ・エル・レスト・デ・ラ・リーニア(excluyendo elcarácterdetabulación)seráel valor。 連続するタブラシオンとタブラシオンの連続した文字列、トダラリネアは、クラベレとエルバロールとヌルを考慮します。 シン・エンバーゴ、エスタ・プエデ・セル・パーソナリザダ、エン・ファンシオン・デ・ウナ・ネセシダッド。

レダクトアの制限を解除するためのコマンド、およびコマンドラインの連続したセクション、継続的、制限のないセクション。 コモ・レダクトレーター・タレア・セ・エジェクタ、ロス・バロレス・アン・ラス・リニアス・パレス・イ・アリメンタ・ラス・リニアス・デ・ラ・エントラーダ・エスターダール(STDIN)デル・プロセソ。 エルレンダリン、エルレダクターレコジェラリーニャデプロダコスオリエンタダアラサリダエスタンダール(STDOUT)デルプロセソ、コンビニエテカダリネアエンアンパーデクレーヴ/バロール、キューセレコージアンラサリダデルレダクター。 デ・フォマ・プレデタミナーダ、エル・プレフィホ・デ・ラ・リネア・ハスター・エル・プライマー・カタール・デ・タブラシオン・エス・ラ・クラベ・イ・エル・レスト・デ・ラ・リネア(excluyendo elcarácterdetabulación)es el valor。 シン・エンバーゴ、エスタ・プエデ・セル・パーソナリザダ・セグン・ネセシダデス・エスペフィフィカス。

Comandos重要

Parámetros Descripción
-Directorio de entrada/nombre de archivo Mapa de ubicación de entrada. (Obligatorio)
-Directorio de salida de nombre Ubicación de salida por reductor. (Obligatorio)
-Mapper ejecutable o script o JavaClassName Mapa ejecutable. (Obligatorio)
-Reductor ejecutable o script o JavaClassName Reductor ejecutable. (Obligatorio)
-Archivo nombre de archivo Hace que el mapa, el reductor, ejecutable o combinadora disponible localmente en los nodos de cálculo.
-Inputformat JavaClassName Clase de retorno debe pares clave/valor de texto clase. Si no se especifica, TextInputFormat se utiliza como valor predeterminado.
-Outputformat JavaClassName Clase de debe tener pares clave/valor de texto clase. Si no se especifica, TextOutputformat se utiliza como valor predeterminado.
-Partitioner JavaClassName Clase que determina qué reducir la clave es enviado a.
-Combinador o JavaClassName streamingCommand Combinador ejecutable de salida del mapa.
-Cmdenv nombre=valor Pasa la variable de entorno a los comandos de streaming.
-Inputreader Para mantener la compatibilidad: especifica un registro clase de lector (en lugar de un formato de entrada clase).
-Verbose Resultados detallados.
-Lazyoutput Crea una salida perezosamente. Por ejemplo, si el formato de salida se basa en FileOutputFormat, el archivo de salida se crea sólo en la primera llamada a la salida.recoger (o el contexto.write).
-Numreducetasks Especifica el número de reductores.
-Mapdebug Script para llamar al mapa tarea falla.
-Reducedebug Secuencia de comandos para llamar al reducir tarea falla.