導航:首頁 > 編程語言 > java調用hadoop

java調用hadoop

發布時間:2022-12-29 20:52:53

1. java程序怎麼向遠程的hadoop提交maprece任務

你使用的是hdfs,但你在Configuration中只設置了mapred.job.tracker值,這個是jobtracker的地址,你需要設置namenode的地址。而放到集群時在new Configuration時會自動載入集群的配置文件,如core-site.xml,hdfs-site.xml等
解決方法:
1)直接調用Configuration的set方法為fs.default.name設置值,值為namenode地址
2)直接將集群的三個*-site.xml配置文件放入項目的classpath下,簡單方便

2. eclipse(java api)操作hadoop hdfs,我試圖將本地文件拷貝進hdfs,目標卻是本地文件系統,不是hdfs。

恭喜啊,學習hadoop需要先學好命令啊。

想學linux命令就去www.linuxsky.cn,裡面也可以學習腳本和svn的命令,哈哈

3. java怎麼連接hdfs文件系統,需要哪些包

apache的Hadoop項目提供一類api可以通過java工程操作hdfs中的文件,包括:文件打開,讀寫,刪除等、目錄的創建,刪除,讀取目錄中所有文件等。
1、到http://hadoop.apache.org/releases.html下載Hadoop,解壓後把所有jar加入項目的lib里
2、程序處理步驟: 1)得到Configuration對象,2)得到FileSystem對象,3)進行文件操作,簡單示例如下:
/**
*
*/
package org.jrs.wlh;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
* @PutMeger.java
* java操作hdfs 往 hdfs中上傳數據
* @version $Revision$</br>
* update: $Date$
*/
public class PutMeger {

public static void main(String[] args) throws IOException {

String[] str = new String[]{"E:\\hadoop\\UploadFileClient.java","hdfs://master:9000/user/hadoop/inccnt.java"};
Configuration conf = new Configuration();
FileSystem fileS= FileSystem.get(conf);
FileSystem localFile = FileSystem.getLocal(conf); //得到一個本地的FileSystem對象

Path input = new Path(str[0]); //設定文件輸入保存路徑
Path out = new Path(str[1]); //文件到hdfs輸出路徑

try{
FileStatus[] inputFile = localFile.listStatus(input); //listStatus得到輸入文件路徑的文件列表
FSDataOutputStream outStream = fileS.create(out); //創建輸出流
for (int i = 0; i < inputFile.length; i++) {
System.out.println(inputFile[i].getPath().getName());
FSDataInputStream in = localFile.open(inputFile[i].getPath());

byte buffer[] = new byte[1024];
int bytesRead = 0;
while((bytesRead = in.read(buffer))>0){ //按照位元組讀取數據
System.out.println(buffer);
outStream.write(buffer,0,bytesRead);
}

in.close();
}

}catch(Exception e){
e.printStackTrace();
}
}

}

4. java 使用hadoop 連接mysql

金陵書生顧洪家境貧困,以賣字畫為生,與母相依為命。

5. java調用Hadoop的jar

你把腳本換成其他可以直觀查看運行結果的腳本,看看能不能運行;同時不在hadoop/bin目錄下執行hadoop jar /usr/local/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output看看能不能執行

6. java程序怎麼向遠程的hadoop提交maprece任務

將 hadoop執行job命令寫到shell腳本中。類似 hadoop jar x.jar ×××.MainClassName inputPath outputPath這種命令。

hadoop客戶機在本地,使用 Process執行shell腳本,java執行本地shell腳本的代碼

1
2
3
4

Process process =null;
String command1 = " ./test.sh";
process = Runtime.getRuntime().exec(command1);
process.waitFor();

3.hadoop 在遠程伺服器上,java可以使用SSH連接遠程伺服器執行shell腳本。需要藉助第三方jar包實現,常用的是ganymed-ssh2-build210.jar,網上有很多例子。

7. 如何編寫hadoop java程序

1.編譯java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.測試運行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
檢測:
#hadoop fs -ls /

8. 如何在hadoop-2.6.0上編譯運行自己編寫的java代碼

在不使用eclipse情況使java程序在hadoop 2.2中運行的完整過程。整個過程中其實分為java程序的編譯,生成jar包,運行測試。x0dx0a這三個步驟運用的命令都比較簡單,主要的還是如何找到hadoop 2.2提供給java程序用來編譯的jar包。具體可以查看:x0dx0aHADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目錄x0dx0a下面會通過一個在hadoop中創建一個目錄的JAVA例子來進行演示x0dx0a具體代碼如下:x0dx0ax0dx0apackage com.wan.demo;x0dx0ax0dx0aimport java.io.IOException;x0dx0aimport org.apache.hadoop.conf.Configuration;x0dx0aimport org.apache.hadoop.fs.FileSystem;x0dx0aimport org.apache.hadoop.fs.Path;x0dx0ax0dx0apublic class HADemo {x0dx0ax0dx0apublic static void main(String[] args) {x0dx0a// TODO Auto-generated method stubx0dx0amkdir(args[0]);x0dx0a}x0dx0ax0dx0apublic static void mkdir(String dir){x0dx0aConfiguration configuration=new Configuration();x0dx0aFileSystem fs;x0dx0atry {x0dx0afs = FileSystem.get(configuration);x0dx0afs.mkdirs(new Path(dir));x0dx0afs.close();x0dx0a} catch (IOException e) {x0dx0a// TODO Auto-generated catch blockx0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0a}x0dx0ax0dx0a把HADemo.java文件拷貝到linux環境中x0dx0a配置HADOOP_HOME/bin到環境中,啟動集群,進入HADemo.java文件目錄中x0dx0a注:下面的lib目錄裡面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目錄中獲取,下面做的目的是為了縮減命令長度x0dx0a1.編譯javax0dx0a# mkdir classx0dx0a#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.javax0dx0a2.生成jar包x0dx0a#jar -cvf hademo.jar -C class/ .x0dx0aadded manifestx0dx0aadding: com/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)x0dx0a3.測試運行x0dx0a#hadoop jar hademo.jar com.wan.demo.HADemo /testx0dx0a檢測:x0dx0a#hadoop fs -ls /x0dx0a x0dx0a結束!

9. 用 java遍歷hadoop分布式文件系統中某個目錄下的全部文件,我的hadoop是單節點的

原因:
你訪問的是本地文件系統而非hdfs , 因為Configuration默認的是在core-default.xml中的屬性fs.default.name默認值是file:///,表示本地文件系統。在我們new Configuration();時會默認載入core-default.xml文件,所以根據這個文件的fs.default.name值使用了本地文件系統。

解決方法:
一般安裝hadoop時都是修改core-site.xml文件,這個文件設置的屬性值一般使用來覆蓋core-default.xml這個文件的,在core-site.xml文件中會設置fs.default.name值為hadoop的namenode的地址以及埠號,如hdfs://localhost:9000,即表示namenode是本機,也就是為分布式。所以我們在連接hdfs時需要指定連接的地址,也就是hadoop集群中core-site.xml中fs.default.name屬性值。所以解決方法有三種:
1)在代碼Configuration conf=new Configuration();之後手動為Configuration對象設置fs.default.name屬性值,如:conf.set("fs.default.name","hdfs:localhost:9000");
2)在代碼的classpath下創建一個文件,在文件中設置fs.default.name屬性值,再使用conf.addResource("文件路徑")將該文件添加到Configuration中;
3)直接將集群的core-site.xml添加到classpath下即可,無需手動添加到Configuration,在new Configuration時會自動載入該文件

10. 現有 java web程序,如何去連接hadoop

看你用什麼版本的hadoop,推薦使用cdh版的

jar包導入web工程
調用HBase介面
如:
hbaseConfig = new Configuration();
conf = HBaseConfiguration.create(hbaseConfig);
admin = new HBaseAdmin(conf);
this.setTableName(tableName);

閱讀全文

與java調用hadoop相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163