在windows下搭建hadoop工程(二)之 WordCount 作业测试

四、WordCount.java测试

1、测试准备

wordcount.java程序是用来统计词频的,因此这里需要先建好输入文件。/test/input/
但是发现从eclipse上传到hdfs中的文件大小始终都为0

这里写图片描述

尝试使用hadoop shell的方式来创建文件。
在执行文件上传命令时会抛出异常:
File /tmp/wordcount/1.txt could only be replicated to 0 nodes, instead of 1。
于是使用命令jps查看启动进程,发现只有两个启动成功,

这里写图片描述

日志位于hadoop-1.0.0/logs/目录下。
查看错误日志:
2016-04-11 17:25:29,598 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in D:\tmp\hadoop-zhangmanyi\dfs\data: namenode namespaceID = 1744166126; datanode namespaceID = 1790925227

位于D:\tmp\hadoop-zhangmanyi\dfs\data\current\目录下的version文件中记录了namespaceID

这里写图片描述

于是执行一次停止脚本命令,再删除version文件(建议备份),然后hdfs格式化一次,再重新启动脚本。
hdfs中Browse the filesystem可以访问了,猜想之前应该是因为datanode没有启动成功的原因。

这里写图片描述

Jps查看的进程数还是显示两个进程。
但是查看日志应该是应该已经启动成功了的。不知道什么原因。

这里写图片描述

文件上传命令:

bin/hadoop fs -put 1.txt /test/input/

查看hdfs指定目录下的文件:

bin/hadoop fs -ls /test/input/

查看指定文件内容:

bin/hadoop fs -cat /test/input/1.txt

这里写图片描述

文件上传完成。再次在eclipse中进行配置。

这里写图片描述

2、新建MapReduce工程

New——other… ——MapReduce Project
这里写图片描述

这里写图片描述

3、准备MapReduce作业

在src中新建一个package,命名为org.apache.hadoop.examples。

这里写图片描述

将hadoop-1.0.0\src\examples\org\apache\hadoop\examples目录下wordcount.java程序粘贴到新建的package中。

这里写图片描述

4、 运行作业

数据方面已经准备完毕,输入文件目录为/test/input/,输出文件目录为/test/output/。
需要配置作业的输入/输出路径。右击wordcount.java,在菜单中一次点击Run As——Run Configurations…——Java Application,然后在新建对话框中输入作业的输入/输出路径。保存配置。
下面可以运行作业了,右击wordcount.java,在菜单中一次点击Run As——Run on hadoop。

这里写图片描述

这里写图片描述

问题解决了~!项目用的是主目录下的hadoop-core-1.0.0.jar,自己编译生成的hadoop-core-1.0.0.jar位于bulid目录下,因此需要将主目录下的文件覆盖掉即可~~。
还有在配置mapreduce作业时设置了输出文件目录是/test/output/,因此不需要自己提前建好目录,否则会报错。因此需要删除output目录后再执行。

这里写图片描述

执行完成,查看输出目录

这里写图片描述

这里写图片描述

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
本文旨在提供最基本的,可以用于在生产环境进行Hadoop、HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用。 基础环境 JDK的安装与配置 现在直接到Oracle官网(http://www.oracle.com/)寻找JDK7的安装包不太容易,因为现在官方推荐JDK8。找了半天才找到JDK下载列表页的地址(http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html)。因为选择Li
1.3  节点 按照我们给Laxcus集群的设计定义,Laxcus集群被分为内部和外部两个网络环境。内部网络由集群的所有权人负责实施和管理,为保证集群能够有效可靠运行,需要遵守一系列的集群部署和管理规定。外部网络是用户负责范围,用户可以通过互联网或者VPN的方式,远程登录进入集群,然后通过交互命令传达到集群上,执行数据操作。这样一个布局,可以理解为集群层面的客户机/服务器结构。此外,如果集群组织者没有对外服务的需要,也可以将集群全部部署在内部网络里,成为一个纯粹的Intranet集群。 如前所述,节点是L
作者:【吴业亮】云计算开发工程师 博客: http://blog.csdn.net/wylfengyujiancheng mitaka已经发布四天,目前代码bug还不少,本次本地源为4月12号的代码,由于个人能力有限,一些问题暂时没解决,欢迎共同交流。 本文介绍如何通过脚本自动安装matika环境。操作系统请下载分享的iso,不要到网上随意下载,原因本地源是基于这个iso做的。 二、建议硬件配置: controller vcpu: 2+ 内存:4G+ 硬盘:10G computer vcpu: 2+ 内存

virtio pci设备基础 - 2016-04-13 19:04:34

这段时间又再次revisit了一把virtio,把笔记整理一下贴出来,大部分内容都是网上找的,+上我个人的一些理解在里面 我们首先关注virtio设备的配置空间,virtio设备本身是基于PCI总线的,因此本质上就是一个PCI设备,和所有其他PCI设备一样,virtio也有自己的vendor ID 0x1AF4,device ID从0x1000 - 0x103F,subsystem device ID如下: Subsystem Device ID Virtio Device 1 Network card
今天来给大家介绍下zookeeper的简单使用。之前使用的hbase就依赖zookeeper,选举master。 下面,笔者将分以下几个步骤进行介绍: 一、zookeeper的基本原理 数据模型,如下: ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode, 它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改, 通常不建议在ZNode
第二章 数据组织 在数据的组织结构设计上,Laxcus严格遵循数据和数据描述分离的原则,这个理念与关系数据库完全一致。在此基础上,为了保证大规模数据存取和计算的需要,我们设计了大量新的数据处理技术。同时出于兼顾用户使用习惯和简化数据处理的目的,继续沿用了一些关系数据库的设计和定义,其中不乏对SQL做适量的修订。在这些变化中,核心仍然是以关系代数的理念去处理数据,以及类自然语言风格的数据描述。所以用户在使用体验上,和关系数据库相比,不会感觉到有太多的差异。 本章将介绍Laxcus数据结构的组成,并对其中的一
第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB、或者几十个TB的数据已是正常现象,驱动数百、数千、甚至上万个计算机节点并行运行也已经不足为奇。但是在数据处理的后面,对于这种在网络间传输、数量巨大、且发生频率日益增加的数据处理,需要大数据系统具备极高的稳定性和可靠性才能保证完成计算任务。这是一项极其复杂的工作,需要兼顾好数据处理的每一个环节,而在这些环节中,最底层的一环:数据存取,又基本决定了大数据处理的整体效率。 在这一章里,我们将从数据的一些本质特征谈起,从多个角度去阐述数据存取设计
本文qq空间链接: http://user.qzone.qq.com/29185807/blog/1460448039 本文csdn博客链接: http://blog.csdn.net/screscent/article/details/51134293 源码为k8s v1.1.1稳定版本 2.4、 diskSpaceManager 1、参数 代码在 k8s.io\kubernetes\cmd\kubelet\app 中   结构体变量 type KubeletServer struct { ... Lo
        在 《HDFS源码分析EditLog之获取编辑日志输入流》 一文中,我们详细了解了如何获取编辑日志输入流EditLogInputStream。在我们得到编辑日志输入流后,是不是就该从输入流中获取数据来处理呢?答案是显而易见的!在 《HDFS源码分析之EditLogTailer》 一文中,我们在讲编辑日志追踪同步时,也讲到了如下两个连续的处理流程:         4、从编辑日志editLog中获取编辑日志输入流集合streams,获取的输入流为最新事务ID加1之后的数据         5
1.2  产品特点   Laxcus大数据管理系统运行在计算机集群上,特别强调软件对分布资源可随机增减的适应性。这种运行过程中数据动态波动和需要瞬时感知的特点,完全不同与传统的集中处理模式。这个特性衍生出一系列的新变化,需要重新审视产品的目标,设计新的架构,当我们把这些需求和定位综合起来,然后逐一分解归并后,最终形成与以往完全不同的结果。 1.2.1  以节点为单位的计算集群 在Laxcus设计里,节点是计算机集群的基本单位。相较与物理性质的计算机来说,节点是一个逻辑概念的单位。以一台实体计算机为例,在它