Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-07-02, 13:44

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 4 篇文章 ] 
發表人 內容
 文章主題 : [求救] 執行jar檔時遇到classNotFound的問題
文章發表於 : 2015-05-07, 11:22 
離線

註冊時間: 2015-05-07, 10:39
文章: 4
小妹我在執行jar時遇到Exception
在網路上搜尋了蠻多類似的問題,
但還是沒辦法解決我所遇到的,
因此想請教大大,

環境是單機/偽分布配置
Hadoop2.4.1
Ubuntu14.04

以下是我遇到問題詳細內容
附加檔案:
擷取.PNG
擷取.PNG [ 61.91 KiB | 被瀏覽 6471 次 ]


以下是我要執行的範例
import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class FileSystemOption {

public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
FileSystem fs1 = FileSystem.get(conf);
Path dir1 = new Path("/user/hadoop/hwtwo");
Path file1 = new Path(dir1 + "/a.txt");
fs1.mkdirs(dir1);
fs1.copyFromLocalFile(new Path("/usr/local/hadoop/files/sample.txt"), file1);
FileStatus status1 = fs1.getFileStatus(file1);
System.out.println(status1.getPath());
System.out.println(status1.getPath().toUri().getPath());
System.out.println(status1.getBlockSize());
System.out.println(status1.getGroup());
System.out.println(status1.getOwner());
System.out.println(fs1.isFile(file1));


FSDataInputStream fsin = fs1.open(file1);

byte[] buff = new byte[128];
int length = 0;

while((length = fsin.read(buff,0,128)) != -1){
System.out.println(new String(buff,0,length));
}

}
}


ps.執行wordcount是成功的,
希望大大能夠協助小妹解決這個問題,
這個問題困擾我很久了
感激不盡


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: [求救] 執行jar檔時遇到classNotFound的問題
文章發表於 : 2015-05-10, 23:12 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
通常 classNotFound 問題都與 CLASSPATH 有關。
您可以試試執行以下步驟:

代碼:
cd /usr/local/hadoop/read
bash -x /usr/local/hadoop/bin/hadoop jar FileSystemOption.jar Files


若還是不行,可能跟 jar 檔有關。
請提供 jar vft FileSystemOption.jar 的結果

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: [求救] 執行jar檔時遇到classNotFound的問題
文章發表於 : 2015-05-14, 23:42 
離線

註冊時間: 2015-05-07, 10:39
文章: 4
謝謝Jazz大大,問題已解決!

想再請教大大 (1) (2)的差別,
因為在不同目錄下,所以必須這麼做嗎?
(1) bash -x /usr/local/hadoop/bin/hadoop jar FileSystemOption.jar FileSystemOption
(2)bin/hadoop jar FileSystemOption.jar FileSystemOption


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: [求救] 執行jar檔時遇到classNotFound的問題
文章發表於 : 2015-05-15, 11:11 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
ttwskayy 寫:
謝謝Jazz大大,問題已解決!
想再請教大大 (1) (2)的差別,
因為在不同目錄下,所以必須這麼做嗎?
(1) bash -x /usr/local/hadoop/bin/hadoop jar FileSystemOption.jar FileSystemOption
(2)bin/hadoop jar FileSystemOption.jar FileSystemOption


bash -x 只是用來 DEBUG 用的。
先前會建議切換到 /usr/local/hadoop/read 子目錄
是因為 Java 的子目錄是有 Package 的意涵在。
而且多數程式會拿 目前的工作目錄(.) 當作 CLASSPATH 的一部份
若在上一層目錄,那就會發生 CLASS NOT FOUND 的問題。
因為該 jar 檔無法在目前的目錄找到。

這部份建議要找本 Java 的書看一下,因為這其實是 Java 觀念。

- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 4 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 4 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作