如何写wordcount在hadoop2.7.1中运行

如何写wordcount在hadoop2.7.1中运行,第1张

1. 创建本地的示例数据文件

依次进入【Home】-【hadoop】-【hadoop-1.2.1】创建一个文件夹file用来存储本地原始数据。

并在这个目录下创建2个文颤枯闭件分别命名为【myTest1.txt】和【myTest2.txt】或者你想要的任何文件名。

分别在这2个文件中输入下列示例语句:

2. 在HDFS上创建输入文件夹

呼出终端,输入下面指令

bin/hadoop fs -mkdir hdfsInput

执行这个命令时可能会提示类似安全的问题,如果提示了,请使用

bin/hadoop dfsadmin -safemode leave

来退出安全模式。

当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结 束。安全茄裂模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入 安全模式。

意思是在HDFS远程创建一个输入目录,我们以后的文件需要上载到这个目录里面才能执行。

3. 上传本地file中文件到集群的hdfsInput目录下

在终端依次输入下面指令:

cd hadoop-1.2.1

bin/hadoop fs -put file/myTest*.txt hdfsInput

4. 运行例子:

在终端输入下面指令:

bin/hadoop jar hadoop-examples-1.2.1.jar wordcount hdfsInput hdfsOutput

注意,这里的示例程序是1.2.1版本的,可能每个机器有所不一致,那么请用*通配符代替版本号

bin/hadoop jar hadoop-examples-*.jar wordcount hdfsInput hdfsOutput

应该出现下面结果:

Hadoop命令会启动一个JVM来运行这个MapReduce程序,并自动获得Hadoop的配置,同时把类的路径(及其依赖关系)加入到Hadoop的库中。以上就是Hadoop Job的运行记录,从这里可以看到,这个Job被赋予了一个ID号:job_201202292213_0002,而且得知输入文件有两个(Total input paths to process : 2),败液同时还可以了解map的输入输出记录(record数及字节数),以及reduce输入输出记录。

查看HDFS上hdfsOutput目录内容:

在终端输入下面指令:

bin/hadoop fs -ls hdfsOutput

从上图中知道生成了三个文件,我们的结果在"part-r-00000"中。

使用下面指令查看结果输出文件内容

bin/hadoop fs -cat output/part-r-00000

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

(1)新建一个”input”目录,然后在里面新建test1”、“test2”文本文件,并分别写入“hello world”、“hello hadoop”

$ mkdir input

$ cd input

$ echo “hello world”>test1.txt

$ echo “hello hadoop”>test2.txt

注:input文件的路径为: /home/hadoop/input

(2)将本地文件“input”复制到hadoop的目录下

注:复制粘贴删除重命名可以不用指令,直接鼠标右键。方法是先在终端输入:

$ sudo nautilus

(3)将hadoop里面的肢谈“input”文件上传到HDFS文件系统中,粗梁然后重命名为“in”,然后新建数据输出目录“out”,指令及其结果如下:

$ bin/hadoop dfs –put input in

$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out

(4)任务执行完毕,查看结果

$ bin/hadoop dfs –cat out/*

hadoop 1

hello 2

world 1

cat: Source must be a file.

(6)输出文件从Hadoop分布式文件系统,复制到本地文件系统中查看,指令历凳碰及其结果如下:、

$ bin/hadoop dfs -get out output

$ cat output/*

cat: output/_logs: Is a directory

hadoop 1

hello 2

world 1

进入hadoop目录后,HDFS的一些命令 $ cd/usr/hadoop

bin/hadoop dfs -mkdir [文件夹名称] //建立文件夹

bin/hadoop dfs –ls //查看当前的HDFS根目录

bin/hadoop dfs -rmr [文件或文件名] //删除根目录下的文件或文件夹

bin/hadoop dfs -put [文件名1] [文件名2] //将dbrg1中hadoop目录下的文件名1拷贝到HDFS

希望可以帮助到你,望采纳,谢谢!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存