HDFS ant clean tar出现问题记录
来源:互联网 发布:群雄起源的武将数据 编辑:程序博客网 时间:2024/05/17 06:18
problem 1 : “java5.home is not defined. Forrest requiers Java5. Please paa -Djava5.home=.......“
solution:下载JDK5的bin 版本并解压,安装,由于我是下载的.bin版本而非rpm.bin所以直接解压;然后再command中加入提示的参数:-Djava5.home=/Path/jdk-version
problem2: forrest.home is not defined. Please pass -Dforrest.home=.......................
solution: 下载一个forrest,我下载的是0.8版本,一开始是0.9出了些问题就改成0.8了,然后在command中继续加入conf:
-Dforrest.home=/path/apache-forrest-0.8
更改为0.8的原因是报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/fop/messaging/MessageHandler这个事由于0.9版本的lib/core中没有fop-0.20.5.jar这个文件而在0.8版本中存在
problem3:出现很多的sitmap的错误,后来发现是因为java版本不对的原因,forrest需要run的java为1.5而我本身运行的java版本为1.6于是乎大费周章的将java换成了1.5的版本,继续运行又出现了新的错误:
javac: invalid target release: 1.6
Usage: javac <options> <source files>
where possible options include:
-g Generate all debugging info
-g:none Generate no debugging info
这次出现的错误非常的离谱,郁闷死了,就是说需要java的版本的1.6
这下子头都大了,java版本从1.5换到1.6然后又换过来,然后错误就不停的在这两个地方打转
疯了,为啥HDFS没搞好呢,使用的工具的间接依赖出现矛盾
在这个时刻幸好有人解决了这个问题,~~~~(>_<)~~~~ 救世主啊
原文链接:http://trac.nchc.org.tw/cloud/wiki/waue/2009/0818
0. environment
hadoop 安裝於/opthadoop_home = /opt/hadoopforrest 目錄/opt/forrest-0.8 下載java 5 目錄/usr/lib/jvm/java-1.5.0-sun java 6 目錄/usr/lib/jvm/java-6-sun編譯hadoop 需要額外安裝 ant, forrest ,而forrest 需要安裝 java-1.5 來編譯
1. svn checkout
$ cd /opt$ sudo svn co http://svn.apache.org/repos/asf/hadoop/common/trunk$ sudo mv trunk hadoop$ sudo chown `$USER:$USER` hadoop
2. forrest
- 下載並解壓縮 apache forrest 於 /opt/forrest-0.8後
$ sudo update-alternatives --set java /usr/lib/jvm/java-1.5.0-sun/jre/bin/java$ sudo update-alternatives --set javac /usr/lib/jvm/java-1.5.0-sun/bin/javac$ JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun$ cd /opt/forrest-0.8/main$ build.sh
3. ant
- 產生 Hadoop-Core-${version}.tar.gz
$ sudo update-alternatives --set java /usr/lib/jvm/java-6-sun/jre/bin/java$ sudo update-alternatives --set javac /usr/lib/jvm/java-6-sun/bin/javac$ JAVA_HOME=/usr/lib/jvm/java-6-sun$ ant -Djava5.home=/usr/lib/jvm/java-1.5.0-sun -Dforrest.home=/opt/forrest-0.8 tar
- 產生的檔案會放在 /opt/hadoop/build 內
A. build.xml 補充說明
- 程式碼在 /opt/hadoop/src 內
- 改完程式碼之後,執行ant 來產生相對應檔案
- ant 的編譯規則在 build.xml 可以讀此檔以瞭解到動作與其相依的訊息
- 設定屬性值
<property name="Name" value="Hadoop-core"/>
- ant 的動作,如執行 ant docs 會參考此動作敘述
<target name="docs" depends="forrest.check" description="檢查說明" if="forrest.home"> <exec dir="${docs.src}" executable="${forrest.home}/bin/forrest" failonerror="true"> <env key="JAVA_HOME" value="${java5.home}"/> </exec> <copy todir="${build.docs}"> <fileset dir="${docs.src}/build/site/" /> </copy> </target>
- 設定屬性值
B. 常見問題
- 執行 ant tar 時,depends 了七個動作: compile, jar, javadoc, docs, api-report, jar-test 。
- 用java 1.6 跑, docs這個動作一直編譯不過。
- 用java 1.5 跑, compile 不過
- 因此若遇到以下問題,請在 /opt/hadoop/ 目錄下執行 ant clean 後,參照上面的程序 1, 2, 3 進行之,
sitemap-v06.rng:72:31:error: datatype library "http://www.w3.org/2001/XMLSchema-datatypes" not recognized
原因:用java 6 跑forrest 的 build.sh,請將 javac , java 都設成 java 5 再來run
[exec] Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
原因:compiler的javac 用java 5 ,run 卻用java 6 ,就會出現此訊息,
javac: invalid target release: 1.6
原因:因為rcc 需要用java 1.6 才能跑
所以我也不ant clean 了 就直接 ant tar,然后到HdfsProxy中去执行ant 命令,最后终于生成了war包,不过现在还不知道能不能用
- HDFS ant clean tar出现问题记录
- AS clean 出现的问题
- make clean指令出现问题
- make clean指令出现问题
- GoogleMaps出现问题记录
- Tar 记录
- 工作记录--make clean
- 问题记录:编译:eclipse和ant
- Android项目Ant命令与问题记录
- 解决ANT与JUNIT出现的问题
- 解决ANT出现的内存溢出问题
- 发现 FB 系统在非法关机的时候特别容易 出现 磁盘 CLEAN OR NOT CLEAN 问题
- hibernate删除记录出现问题
- javascript出现的问题记录
- 页面出现的问题记录
- 记录软件安装出现问题
- 关于路由器出现问题记录
- linux下tar解压缩文件时出现的问题
- 敏捷开发免费管理工具——火星人预览之二:编辑故事,产品管理,组织结构
- 采用valgrind来分析内存泄漏 和trace 函数调用
- android进程与线程详解一:进程
- 使用内嵌IFrame,处理系统跨域身份认证的方案与实现
- Android提高第九篇之SQLite分页表格
- HDFS ant clean tar出现问题记录
- 丁磊——网络三剑客之一
- 在开发中使用GDAL读取空间数据的使用心得一
- Magento网店自定义模板初探(1)——文件夹结构
- 无法从 CONST CHAR 转换为 LPCWSTR
- 中庸之道——中国式排名
- ffmpeg 编译 命令(windows+MSYS+MinGW)
- 看图理解单链表的反转
- C语言字符串char *和char[]——摘自《C primer plus》