返回信息流最近在学Hadoop,各种问题:版本不稳定,自己用的和教程里的版本不符合,Hadoop在深层上的Linux依赖性……搞死我了。本身计算机基础以及编程能力就弱,所以写的东西可能会有很多错误,希望大家指出。
Hadoop的搭建网上有不少有效的文章,我就不转了。
我用的教材是《Manning Hadoop in Action》,PDF版下载地址:http://ishare.iask.sina.com.cn/f/14345548.html
Hadoop版本0.21。
==========================================================================
Chapter1
第一章中,作者指导大家将Hadoop中的WordCount.java挪个位置,自己编译并运行试试看。
第一个问题就来了,Hadoop0.21根本就没Hadoop-*-core.jar,而是拆成了common、HDFS、mapred三份。即使用:把三个Jar包都加在classpath后面也没法编译。这是个普遍发生在用windows-Cygwin平台下的问题,“第一章的WordCount编译问题”也是Manning的论坛上一个回复较多的帖子(http://www.manning-sandbox.com/message.jspa?messageID=109056)。一般情况下会提示有43个错误。
我对编译几乎一无所知……提示我出错我也没能找到原因。我的解决办法是:安装Eclipse IDE for Java Developers(http://www.eclipse.org/downloads/)用这个的好处是缺了哪个包它会有个红叉叉提示你。
新建项目:File->new->Java Project->Browse到你的playground文件夹。
就像这样:
导入后你会看到很多很多红叉叉,因为缺少包
右键WordCount->Build Path->Configure Build Path
导入Jar包。三个jar分别是:hadoop-common-0.21.0.jar hadoop-mapred-0.21.0.jar lib文件夹下的commons-cli-1.2.jar
这时候任然有个小红叉,提示包声明错误。我选择把它注释掉。
做完这一切,Build一下,会提示有5个警告,没关系,我们继续往下。右键WordCount,导出成jar文件。扔到hadoop的目录下,用书上的语句运行一下。(要记得:1.在运行前手动删除output文件夹;2.语句别输错了)
好了~运行成功了~
整个问题就是Cygwin编译出错,用Eclipse打好包绕过Cygwin就好了。
这是一条镜像帖。来源:北邮人论坛 / java / #17781同步于 2011/4/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
尝试Hadoop的学习笔记
kikicoco
2011/4/1镜像同步37 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
之前讲到在Cygwin下编译java各种错误,最后采取了利用Eclipse绕过Cygwin的方法。
这次讲讲怎样在Cygwin下编译WordCount.java,直面问题。
问题的关键在于编译路径设置。简单说就是以下两点:
1.jar包之间用分号分隔,而非冒号;
2.整个classpath用引号括起来。
上图,编译成功。
Cygwin打包
运行
好了,全过程Cygwin。
暂
【 在 kikicoco (kikicoco) 的大作中提到: 】
: 最近在学Hadoop,各种问题:版本不稳定,自己用的和教程里的版本不符合,Hadoop在深层上的Linux依赖性……搞死我了。本身计算机基础以及编程能力就弱,所以写的东西可能会有很多错误,希望大家指出。
: Hadoop的搭建网上有不少有效的文章,我就不转了。
: 我用的教材是《Manning Hadoop in Action》,PDF版下载地址:http://ishare.iask.sina.com.cn/f/14345548.html
: ...................
今天没有什么进展,弄了很久的虚拟机,过程中同样也遇到了不少问题,权且记下来或许有人用得着。
因为只有一台本,所以我计划用虚拟机装两台Ubuntu来弄,用的VMware和Ubuntu的镜像文件BT上都有。装虚拟机的过程比较简单,唯一需要注意的是其默认的联网方式是NAT,手动调成Bridged,这么做是因为之后我们要利用SSH实现两个虚拟机的互访。(用桥接模式互访是我从别处看来的,不知道NAT以及Host-only模式下行不行,望指教)
装好了虚拟机后。我们要开始装:
A.JDK;
B.Hadoop.
这里有一个花了我很长时间的问题。为了方便我希望通过新立得来装SUN JDK,可是不是所有的教育网的更新源都有SUN JDK,北交的源速度极快而且恰好有。
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick main restricted
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick-updates main restricted
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick universe
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick-updates universe
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick multiverse
deb http://mirror6.bjtu.edu.cn/ubuntu/ maverick-updates multiverse
deb http://archive.canonical.com/ubuntu maverick partner
只是这个源需要IPV6。按说Ubuntu默认设置就是V6,可是奇怪的是,我装的虚拟的Ubuntu系统一开始的确是V6,可是不知道为什么一会儿又自动变成了V4。这里给一个查看ip的网址:http://ipv6.net/ 右上角能显示你的ip,以及是否是V6。自动从V6变成V4的情况不知发生了一次。因为一些原因我把装好的Ubuntu删了又重装了一遍,同样从装好后第一次开机的V6在半个小时内变成了V4。不知道有没有同学了解这个状况?
相对最优选的北交源,次之的是北邮的,软件较少,但是速度快。
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ maverick main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ maverick-backports main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ maverick-backports main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ maverick-backports main multiverse restricted universe
deb ftp://openware.byr.edu.cn/pub/mirror/ubuntu/ maverick-updates main multiverse restricted universe
配合电子科技大的,以防北邮的源偶尔出错:
deb http://Ubuntu.uestc.edu.cn/ubuntu/ maverick main restricted universe multiverse
deb http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-backports main restricted universe multiverse
deb http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-proposed main restricted universe multiverse
deb http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-security main restricted universe multiverse
deb http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-updates main restricted universe multiverse
deb-src http://Ubuntu.uestc.edu.cn/ubuntu/ maverick main restricted universe multiverse
deb-src http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-backports main restricted universe multiverse
deb-src http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-proposed main restricted universe multiverse
deb-src http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-security main restricted universe multiverse
deb-src http://Ubuntu.uestc.edu.cn/ubuntu/ maverick-updates main restricted universe multiverse
没办法,只好手动来。虚拟机内的下载速度不及有迅雷的Windows,所以我们可以用迅雷下下来之后通过文件共享传给Ubuntu,百度“VMware 文件共享”之类的关键词就能找到相应办法。
在Ubuntu10.10下安装SUN JDK,在网上有一个广为流传的无效的帖子,所做的只是解压缩以及修改环境变量,问题是Ubuntu10.10本身就有自带的JDK和JRE,所以我们还得修改java和javac以及jar命令的默认指向。这里有个写的非常详细的帖子:http://hi.baidu.com/jiangsd2008/blog/item/fcf46835ab32c90291ef39fd.html
之后就是解压缩Hadoop,修改hadoop-env.sh,按照Hadoop in Action运行一下示例程序。我今天做的也就这么多了。
最后说一点感想。网上有不少Hadoop入门教程,告诉大家,在开始之前我们需要Cygwin,SSH。可是现在回过头去看,用Cygwin不如装一个虚拟机。在使用Cygwin的过程中,我遇上了一些不必要的麻烦,除了上次提到的编译路径的问题,我使用的Cygwin还会在打印较长文本时出现显示异常。如果有人看到这些,我推荐您选择虚拟机而不是Cygwin。
大赞~
【 在 kikicoco (kikicoco) 的大作中提到: 】
: 最近在学Hadoop,各种问题:版本不稳定,自己用的和教程里的版本不符合,Hadoop在深层上的Linux依赖性……搞死我了。本身计算机基础以及编程能力就弱,所以写的东西可能会有很多错误,希望大家指出。
: Hadoop的搭建网上有不少有效的文章,我就不转了。
: 我用的教材是《Manning Hadoop in Action》,PDF版下载地址:http://ishare.iask.sina.com.cn/f/14345548.html
: ...................
http://product.china-pub.com/196200
【 在 daisy07xx (拒绝懒散= =~~) 的大作中提到: 】
: 是啊。。。其中之一。。。这东西没中文的。。怨念