如何执行Hadoop自带的例子

如何执行Hadoop自带的例子,第1张

如何执行Hadoop自带例子

 1、在linux系统中,所在目录“/home/kcm”下建立一个档案input

[ubuntu@701~]$ mkdir input

2.在资料夹input中建立两个文字档案file1.txt和file2.txt,file1.txt中内容是“hello word”,file2.txt中内容是“hello hadoop”、“hello mapreduce”(分两行)。

[ubuntu@701~]$ cd input

[ubuntu@701~]$ vi file1.txt(编辑档案并储存)

[ubuntu@701~]$ vi file2.txt(编辑档案并储存)

[ubuntu@701~]$ ls -l /home/kcm/input

file1.txt file2.txt

显示档案内容可用:

[ubuntu@701~]$ cat/home/kcm/input/file1.txt

hello word

[ubuntu@701~]$ cat /home/kcm/input/file2.txt

hello mapreduce

hello hadoop

3.在HDFS上建立输入资料夹wc_input,并将本地资料夹input中的两个文字档案上传到丛集的wc_input下

[ubuntu@701~]$ hadoop fs -mkdir wc_input

[ubuntu@701~]$ hadoop fs -put/home/kcm/input/file* wc_input

检视wc_input中的档案:

[ubuntu@701~]$ /hadoop fs -ls wc_input

Found 2 items

-rw-r--r-- 1 root supergroup 11 2014-03-13 01:19 /user/hadoop/wc_input/file1.txt

-rw-r--r-- 1 root supergroup 29 2014-03-13 01:19 /user/hadoop/wc_input/file2.txt

4.首先,在window下将wordcount进行打包,我们这里把它打包成wordcount.jar;然后,将wordcount.jar拷贝到linux系统中,存放的目录自己决定即可。我们这里存放到/home/kcm目录下面。

5.执行wordcount.jar包(转到该jar包存放的目录下):

[ubuntu@701~]$ hadoop jar wordcount.jar /user/hadoop/wc_input /user/hadoop/output

android sdk中自带的例子怎样执行

新建一个android project 在建立画面选择Create project frome exceting

sourse 接着选择android版本。然后location里面选择你sdk资料夹下sample/androi-7/ApiDemos 这个资料夹 apidemos资料夹下面就是所有的例子程式。建立以后右键点选选择Run us选单下面第一个选项执行它。

就会自动建立一个虚拟机器跑起来这个例子程式了。

里面是各种元件的程式码...

希望你满意我的答案

执行Android自带的例子时出错。

只能看到 Activity03 这个类的 onCreate方法 28行有个错误.... 应该是resultListener 这个类有问题,要看原始码 才知道的

MAPXTREME 6.7.1自带的例子里Routing and Geocoding无法执行

指定的URL可能没有Envinsa伺服器或伺服器无法处理请求

:localhost:8080/LocationUtility/services/LocationUtility

路径是否正确?

localhost:8080

指定的伺服器是否正确

GetMiAwareGeocodeClient是GeocodeClientFactory的属性吗?

我的是这样设定

puconn.ConnectionString = copConnStr

puconn.ConnectionString = Session("copconnstr").ToString

如何看tomcat自带的例子?

启动 tomcat(bin目录下的tomcat6.exe)

在浏览器位址列输入

:localhost:8080/examples/index. 即可

其实tomcat安装完成后

自带的例子会以一个工程的形式被发布到了webapps目录下

即上面提到的examples工程(tomcat 6.0) 5.0的版本也类似

ansys自带的例子如何看

应该是找在什么位置吧?

在ansys软体上面一行的最后一个的按钮help中,点选,然后再次点选下拉选单的help Topics

然后在开启的chm档案中点选Search(搜寻),然后在下面的输入框里面输入

Wele to the ANSYS Tutorials

就进入到自带例子的介面,如果还是不会,那就多练练windows怎么使用,,其他的一些例子在本人的百度部落格里面有说明

osgearth中自带的例子是怎么执行的

1、档案-->开启驱动器设定“测试事例目录”

2、双击又测树目录,载入.earth文件,如有修改,可储存

3、xml-->检视方式设定文字显示格式。

4、可在命令文字框中,自定义命令。

5、档案-->执行,执行“命令”串,检视osgEarth例项程式。

如何执行blazeds的例子

有文件的架构可以提供追溯其他工作产品的上下文。 有文件的架构可以传达可供选择的架构解决方案。 有文件的架构有助于从一个现有架构转换到一个新架构计划的计划编制。 有文件的架构通常能通过识别组成架构的元素及它们之间的依赖性来帮助编制计划。 有文件的架构可以提醒架构师在其所作的某些决定背后的基本原理。 有文件的架构有助于架构的评估。 选择视点。 建立工作产品。 给架构描述打包。 (1)功能性视点:它关注支援系统功能性的元素。 (2)部署视点:它关注支援系统分布的元素。 (3)需求视点:为形成架构的系统需求提供说明,它包括功能性需求、品质和约束。 (4)确认视点:为系统提供必需的功能、展示必需的品质和适应定义的约束提供说明。 交叉视点是从某一特定功能的视点出发,与基础视点交叉综合关注的元素,下图为一交叉视点的例子。 实现层级。 交叉关注。 逻辑检视是设计的物件模型。 过程检视获取设计的并发和同步方面的资讯。 开发检视描述的是软体开发环境中的软体静态组织。 物理检视描述了软体与硬体之间的对映,还反映了它在分散式方面的资讯。

求教eclipse如何学习自带的例子

例项就在安装目录下的tutorial里

执行起来后,多看,多写,多总结

如何确定oracle自带的例子在哪个owner里

登入sys as sysdba

[sql] view plain copy

select t.owner from all_tables t where t.table_name='例子的表名'

就可以查到owner了

然后用owner登入就可以测试给的example了

比如Oracle文件我看到一个example

UNION Example The following statement bines the results of o queries with the UNION operator, which eliminates duplicate selected rows. This statement shows that you must match data type (using the TO_CHAR function) when columns do not exist in one or the other table:

[sql] view plain copy

SELECT location_id, department_name "Department",

TO_CHAR(NULL) "Warehouse" FROM departments

UNION

SELECT location_id, TO_CHAR(NULL) "Department", warehouse_name

FROM warehouses

LOCATION_ID Department Warehouse

----------- ------------------------------ ---------------------------

1400 IT

1400 Southlake, Texas

1500 Shipping

1500 San Francisco

1600 New Jersey

1700 Aounting

1700 Administration

1700 Benefits

1700 Construction

1700 Contracting

1700 Control And Credit

...

而我不知道departments,warehouses表是属于scott还是Oe还是Hr或者别的owner?

我就用sys as sysdba登入

然后查询

[sql] view plain copy

select t.owner from all_tables t where t.table_name='WAREHOUSES'

得到

OWNER

OE

那么用OE登入就可以实验这个example了

这个是Oracle? Database Sample Schemas

11g Release 2 (11.2)

:docs.oracle./cd/E11882_01/server.112/e10831/toc.htm

 1、在linux系统中,所在目录“/home/kcm”下创建一个文件input

[ubuntu@701~]$ mkdir input

2.在文件夹input中创建两个文本文件file1.txt和file2.txt,file1.txt中内容是“hello word”,file2.txt中内容是“hello hadoop”、“hello mapreduce”(分两行)。

[ubuntu@701~]$ cd input

[ubuntu@701~]$ vi file1.txt(编辑文件并保存)

[ubuntu@701~]$ vi file2.txt(编辑文件并保存)

[ubuntu@701~]$ ls -l /home/kcm/input

file1.txt file2.txt

显示文件内容可用:

[ubuntu@701~]$ cat/home/kcm/input/file1.txt

hello word

[ubuntu@701~]$ cat /home/kcm/input/file2.txt

hello mapreduce

hello hadoop

3.在HDFS上创建输入文件夹wc_input,并将本地文件夹input中的两个文本文件上传到集群的wc_input下

[ubuntu@701~]$ hadoop fs -mkdir wc_input

[ubuntu@701~]$ hadoop fs -put/home/kcm/input/file* wc_input

查看wc_input中的文件:

[ubuntu@701~]$ /hadoop fs -ls wc_input

Found 2 items

-rw-r--r-- 1 root supergroup 11 2014-03-13 01:19 /user/hadoop/wc_input/file1.txt

-rw-r--r-- 1 root supergroup 29 2014-03-13 01:19 /user/hadoop/wc_input/file2.txt

4.首先,在window下将wordcount进行打包,我们这里把它打包成wordcount.jar;然后,将wordcount.jar拷贝到linux系统中,存放的目录自己决定即可。我们这里存放到/home/kcm目录下面。

5.运行wordcount.jar包(转到该jar包存放的目录下):

[ubuntu@701~]$ hadoop jar wordcount.jar /user/hadoop/wc_input /user/hadoop/output

在这个实例中,我将会向大家介绍如何使用Python 为 Hadoop编写一个简单的MapReduce

程序。

尽管Hadoop 框架是使用Java编写的但是我们仍然需要使用像C++、Python等语言来实现Hadoop程序。尽管Hadoop官方网站给的示例程序是使用Jython编写并打包成Jar文件,这样显然造成了不便,其实,不一定非要这样来实现,我们可以使用Python与Hadoop 关联进行编程,看看位于/src/examples/python/WordCount.py 的例子,你将了解到我在说什么。

我们想要做什么?

我们将编写一个简单的 MapReduce 程序,使用的是C-Python,而不是Jython编写后打包成jar包的程序。

我们的这个例子将模仿 WordCount 并使用Python来实现,例子通过读取文本文件来统计出单词的出现次数。结果也以文本形式输出,每一行包含一个单词和单词出现的次数,两者中间使用制表符来想间隔。

先决条件

编写这个程序之前,你学要架设好Hadoop 集群,这样才能不会在后期工作抓瞎。如果你没有架设好,那么在后面有个简明教程来教你在Ubuntu Linux 上搭建(同样适用于其他发行版linux、unix)

如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立单节点的 Hadoop 集群

如何使用Hadoop Distributed File System (HDFS)在Ubuntu Linux 建立多节点的 Hadoop 集群

Python的MapReduce代码

使用Python编写MapReduce代码的技巧就在于我们使用了 HadoopStreaming 来帮助我们在Map 和 Reduce间传递数据通过STDIN (标准输入)和STDOUT (标准输出).我们仅仅使用Python的sys.stdin来输入数据,使用sys.stdout输出数据,这样做是因为HadoopStreaming会帮我们办好其他事。这是真的,别不相信!

Map: mapper.py

将下列的代码保存在/home/hadoop/mapper.py中,他将从STDIN读取数据并将单词成行分隔开,生成一个列表映射单词与发生次数的关系:

注意:要确保这个脚本有足够权限(chmod +x /home/hadoop/mapper.py)。

#!/usr/bin/env python

import sys

# input comes from STDIN (standard input)

for line in sys.stdin:

# remove leading and trailing whitespace

line = line.strip()

# split the line into words

words = line.split()

# increase counters

for word in words:

# write the results to STDOUT (standard output)

# what we output here will be the input for the

# Reduce step, i.e. the input for reducer.py

#

# tab-delimitedthe trivial word count is 1

print '%s\\t%s' % (word, 1)在这个脚本中,并不计算出单词出现的总数,它将输出 "<word>1" 迅速地,尽管<word>可能会在输入中出现多次,计算是留给后来的Reduce步骤(或叫做程序)来实现。当然你可以改变下编码风格,完全尊重你的习惯。

Reduce: reducer.py

将代码存储在/home/hadoop/reducer.py 中,这个脚本的作用是从mapper.py 的STDIN中读取结果,然后计算每个单词出现次数的总和,并输出结果到STDOUT。

同样,要注意脚本权限:chmod +x /home/hadoop/reducer.py

#!/usr/bin/env python

from operator import itemgetter

import sys

# maps words to their counts

word2count = {}

# input comes from STDIN

for line in sys.stdin:

# remove leading and trailing whitespace

line = line.strip()

# parse the input we got from mapper.py

word, count = line.split('\\t', 1)

# convert count (currently a string) to int

try:

count = int(count)

word2count[word] = word2count.get(word, 0) + count

except ValueError:

# count was not a number, so silently

# ignore/discard this line

pass

# sort the words lexigraphically

#

# this step is NOT required, we just do it so that our

# final output will look more like the official Hadoop

# word count examples

sorted_word2count = sorted(word2count.items(), key=itemgetter(0))

# write the results to STDOUT (standard output)

for word, count in sorted_word2count:

print '%s\\t%s'% (word, count)

测试你的代码(cat data | map | sort | reduce)

我建议你在运行MapReduce job测试前尝试手工测试你的mapper.py 和 reducer.py脚本,以免得不到任何返回结果

这里有一些建议,关于如何测试你的Map和Reduce的功能:

——————————————————————————————————————————————

\r\n

# very basic test

hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py

foo 1

foo 1

quux1

labs1

foo 1

bar 1

——————————————————————————————————————————————

hadoop@ubuntu:~$ echo "foo foo quux labs foo bar quux" | /home/hadoop/mapper.py | sort | /home/hadoop/reducer.py

bar 1

foo 3

labs1

——————————————————————————————————————————————

# using one of the ebooks as example input

# (see below on where to get the ebooks)

hadoop@ubuntu:~$ cat /tmp/gutenberg/20417-8.txt | /home/hadoop/mapper.py

The 1

Project 1

Gutenberg 1

EBook 1

of 1

[...]

(you get the idea)

quux2

quux1

——————————————————————————————————————————————

在Hadoop平台上运行Python脚本

为了这个例子,我们将需要三种电子书:

The Outline of Science, Vol. 1 (of 4) by J. Arthur Thomson\r\n

The Notebooks of Leonardo Da Vinci\r\n

Ulysses by James Joyce

下载他们,并使用us-ascii编码存储 解压后的文件,保存在临时目录,比如/tmp/gutenberg.

hadoop@ubuntu:~$ ls -l /tmp/gutenberg/

total 3592

-rw-r--r-- 1 hadoop hadoop 674425 2007-01-22 12:56 20417-8.txt

-rw-r--r-- 1 hadoop hadoop 1423808 2006-08-03 16:36 7ldvc10.txt

-rw-r--r-- 1 hadoop hadoop 1561677 2004-11-26 09:48 ulyss12.txt

hadoop@ubuntu:~$

复制本地数据到HDFS

在我们运行MapReduce job 前,我们需要将本地的文件复制到HDFS中:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg gutenberg

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls

Found 1 items

/user/hadoop/gutenberg <dir>

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg

Found 3 items

/user/hadoop/gutenberg/20417-8.txt <r 1> 674425

/user/hadoop/gutenberg/7ldvc10.txt <r 1> 1423808

/user/hadoop/gutenberg/ulyss12.txt <r 1> 1561677

执行 MapReduce job

现在,一切准备就绪,我们将在运行Python MapReduce job 在Hadoop集群上。像我上面所说的,我们使用的是

HadoopStreaming 帮助我们传递数据在Map和Reduce间并通过STDIN和STDOUT,进行标准化输入输出。

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar

-mapper /home/hadoop/mapper.py -reducer /home/hadoop/reducer.py -input gutenberg/*

-output gutenberg-output

在运行中,如果你想更改Hadoop的一些设置,如增加Reduce任务的数量,你可以使用“-jobconf”选项:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar

-jobconf mapred.reduce.tasks=16 -mapper ...

一个重要的备忘是关于Hadoop does not honor mapred.map.tasks

这个任务将会读取HDFS目录下的gutenberg并处理他们,将结果存储在独立的结果文件中,并存储在HDFS目录下的

gutenberg-output目录。

之前执行的结果如下:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop jar contrib/streaming/hadoop-0.19.1-streaming.jar

-mapper /home/hadoop/mapper.py -reducer /home/hadoop/reducer.py -input gutenberg/*

-output gutenberg-output

additionalConfSpec_:null

null=@@@userJobConfProps_.get(stream.shipped.hadoopstreaming

packageJobJar: [/usr/local/hadoop-datastore/hadoop-hadoop/hadoop-unjar54543/]

[] /tmp/streamjob54544.jar tmpDir=null

[...] INFO mapred.FileInputFormat: Total input paths to process : 7

[...] INFO streaming.StreamJob: getLocalDirs(): [/usr/local/hadoop-datastore/hadoop-hadoop/mapred/local]

[...] INFO streaming.StreamJob: Running job: job_200803031615_0021

[...]

[...] INFO streaming.StreamJob: map 0% reduce 0%

[...] INFO streaming.StreamJob: map 43% reduce 0%

[...] INFO streaming.StreamJob: map 86% reduce 0%

[...] INFO streaming.StreamJob: map 100% reduce 0%

[...] INFO streaming.StreamJob: map 100% reduce 33%

[...] INFO streaming.StreamJob: map 100% reduce 70%

[...] INFO streaming.StreamJob: map 100% reduce 77%

[...] INFO streaming.StreamJob: map 100% reduce 100%

[...] INFO streaming.StreamJob: Job complete: job_200803031615_0021

[...] INFO streaming.StreamJob: Output: gutenberg-output hadoop@ubuntu:/usr/local/hadoop$

正如你所见到的上面的输出结果,Hadoop 同时还提供了一个基本的WEB接口显示统计结果和信息。

当Hadoop集群在执行时,你可以使用浏览器访问 http://localhost:50030/ ,如图:

检查结果是否输出并存储在HDFS目录下的gutenberg-output中:

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -ls gutenberg-output

Found 1 items

/user/hadoop/gutenberg-output/part-00000 <r 1> 903193 2007-09-21 13:00

hadoop@ubuntu:/usr/local/hadoop$

可以使用dfs -cat 命令检查文件目录

hadoop@ubuntu:/usr/local/hadoop$ bin/hadoop dfs -cat gutenberg-output/part-00000

"(Lo)cra" 1

"1490 1

"1498," 1

"35"1

"40," 1

"A 2

"AS-IS".2

"A_ 1

"Absoluti 1

[...]

hadoop@ubuntu:/usr/local/hadoop$

注意比输出,上面结果的(")符号不是Hadoop插入的。

转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12016971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存