1. 程式人生 > >(4)通過呼叫hadoop的java api實現本地檔案上傳到hadoop檔案系統上

(4)通過呼叫hadoop的java api實現本地檔案上傳到hadoop檔案系統上

(1)首先建立java project

選擇eclipse選單上File->New->Java Project。

並命名為UploadFile。

(2)新增必要的hadoop jar包

右鍵選擇JRE System Library,選擇Build Path下的Configure Build Path。

然後選擇Add External Jars,到你解壓的hadoop原始碼資料夾下新增jar包和lib下的所有jar包。

lib資料夾下的所有jar包。


(3)新增UploadFile類

程式碼如下:

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;


public class UploadFile {

	public static void main(String[] args) {
		
		try {
			String localSrc = "C://Goagent.rar";
			  String dst = "hdfs://hadoop:9000/user/root/Goagent.rar";
			  InputStream in = new BufferedInputStream(new FileInputStream(localSrc));
			  Configuration conf = new Configuration();
			  
			  FileSystem fs = FileSystem.get(URI.create(dst), conf);
			  OutputStream out = fs.create(new Path(dst), new Progressable() {
			   public void progress() {
			    System.out.print(".");
			   }
			  });
			  IOUtils.copyBytes(in, out, 4096, true);
			  System.out.println("success");
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

}

然後執行程式,如果上傳成功會在控制檯下輸出success。

你也可以在網頁上檢視http://hadoop:50070/。


 

備註:我也是剛起步學習hadoop,可能文章有一些不完整或錯誤的地方,還請大家多多指教,也希望能交流學習,互相促進提高。微笑

參考資料:

相關推薦

4通過呼叫hadoop的java api實現本地檔案hadoop檔案系統

(1)首先建立java project 選擇eclipse選單上File->New->Java Project。 並命名為UploadFile。 (2)新增必要的hadoop jar包 右鍵選擇JRE System Library,選擇

python4- 簡單練習:python實現購物車的優化

list x11 int 退出 .html htm src keyword 結算 簡單版本,鏈接如下: http://www.cnblogs.com/c-x-m/p/7819220.html 購物車程序優化題目要求: 1. 用戶退出時打印商品列表時,按以下格式

從零寫分散式RPC框架 系列 1.0 4RPC-Client模組設計實現

RPC-Client模組負責建立 動態代理物件 供 服務消費者 使用,而動態代理物件的方法執行則是通過RPC呼叫RPC-Server的服務實現。即RPC-Client遮蔽了底層的通訊過程,使得服務消費者可以基於介面透明使用服務提供者的服務。 系列文章: 從零寫分散式RPC框架 系

經驗分享4Yarn ResourceManager頁面如何實現主被自動切換

hdfs、yarn、hbase這些元件的master支援多個,實現自動主備切換,其中hdfs、hbase無論訪問主master或者備master都可以正常訪問頁面,但是yarn比較特別,只有主master的頁面可以訪問,備master會返回Refresh,3s後重定向; 一種方式是提供兩個域名,分別對應兩個

leetcode4加一的js實現

一.題目描述: 給定一個由整陣列成的非空陣列所表示的非負整數,在該數的基礎上加一。 最高位數字存放在陣列的首位, 陣列中每個元素只儲存一個數字。 你可以假設除了整數 0 之外,這個整數不會以零開頭。 示例 1: 輸入: [1,2,3] 輸出: [1,2,4] 解釋: 輸入陣列

使用CEfSharp之旅4cefsharp 呼叫F12

Cefsharp 如何呼叫類似 F12的功能? private void button1_Click_1(object sender, EventArgs e) {

myeclipse實現Servlet例項3 通過繼承HttpServlet介面實現

(1) 在軟體公司 90%都是通過該方法開發. //在HttpServlet 中,設計者對post 提交和 get提交分別處理   //回憶 <form action="提交給?" method="post|get"/>,預設是get (2)小結 get 提交

異常4----通過throw、throws關鍵字寫帶有異常的方法

二、throws關鍵字 三、自己寫方法丟擲異常 四、舉例 一、throw關鍵字 關鍵字throw,用於在方法的內部丟擲異常。 throw丟擲的是異常的物件。throw後面,必須寫 new 物件(Exception或Exception

Elasticsearch:使用JAVA API實現簡單查詢、聚合查詢

ES版本:2.3.1 JDK:1.8 所需要的jar包請在ES安裝路徑下的jars包中獲得,不要使用其他的jar否則容易出現版本問題! 注意:程式碼中TransportClient client=ESLink.getTransportClient()

曹工說Redis原始碼4-- 通過redis server原始碼來理解 listen 函式中的 backlog 引數

文章導航 Redis原始碼系列的初衷,是幫助我們更好地理解Redis,更懂Redis,而怎麼才能懂,光看是不夠的,建議跟著下面的這一篇,把環境搭建起來,後續可以自己閱讀原始碼,或者跟著我這邊一起閱讀。由於我用c也是好幾年以前了,些許錯誤在所難免,希望讀者能不吝指出。 曹工說Redis原始碼(1)-- redi

Golang Web入門4:如何設計API

## 摘要 在之前的幾篇文章中,我們從如何實現最簡單的HTTP伺服器,到如何對路由進行改進,到如何增加中介軟體。總的來講,我們已經把Web伺服器相關的內容大概梳理了一遍了。在這一篇文章中,我們將從最簡單的一個main函式開始,慢慢重構,來研究如何把API設計的更加規範和具有擴充套件性。 ## 1 構

通過Java SE 7自帶的監控服務WatchService API實現類似.NET FileWatcher的功能

thread new and mar chan col att 項目 chang 轉自:http://www.cnblogs.com/callwangxiang/archive/2011/08/04/JavaDirectoryWatcherFileWatcher.html

遷移桌面程式到MS Store4——桌面程式呼叫Win10 API

上一篇我們討論瞭如何在轉制的桌面程式中,通過StartupTask來實現轉製版本的開機自啟動。實際操作中,我們通過編輯Packaging工程中的Package.appxmanifest檔案,來新增自啟動的配置項。如果要在程式的UI中實現開啟和關閉自啟動的功能。那就需要通過程式碼來操作StartupTask物件

人臉識別呼叫face++api實現人臉對比

上次部落格簡單講了一下呼叫face++的api來檢測人臉。當然,生產環境中要實現複雜的需求光靠這麼簡單的呼叫一下api肯定是不行的。這次先來講一講face++中實現人臉對比的api並實現一些相對較為複雜的需求。 首先來看一看呼叫的人臉對比的api需要的東西:

ABP開發框架前後端開發系列---4Web API呼叫類的封裝和使用

在前面隨筆介紹ABP應用框架的專案組織情況,以及專案中領域層各個類程式碼組織,以及簡化了ABP框架的各個層的內容,使得我們專案結構更加清晰。上篇隨筆已經介紹了字典模組中應用服務層介面的實現情況,並且通過執行Web API的宿主程式,可以在介面上進行介面測試了,本篇隨筆基於前面介紹的基礎上,介紹Web API呼

api-gateway實踐4網關服務集成驗證

pig server 服務集 blank 網關 ces ron ken localhost 原始服務地址: http://10.110.17.20:7070/spring-oauth-server/m/user_info?access_token=8d671613-da31

自己搭建自動化巡檢系統 通過telnet實現遠程創建loopback

telnet loopback 我們在上一章完成了用代碼操作telnet,實現了遠程控制,分析前面的代碼會發現健壯性太低,需要進行優化,後續會通過開發一個交互式界面來完成人工介入操作網絡的過程。本次實驗目的:實現自動化創建環回口首先更新拓撲,拉出新的路由器和一臺交換機import telnetlibi

第23課 可變參數模板4_Optional和Lazy類的實現

opera -s 緩沖區 data emp 銷毀 由於 方便 lazy load 1. optional類的實現 (1)optional的功能   ①optional<T>的內部存儲空間可能存儲了T類型的值,也可能沒有。只有當optional被T初始化之後,這個

企業實戰4-實現基於Haproxy負載均衡集群的電子商務網站架構

haproxy keepalived 企業實戰:逐步實現企業各種情景下的需求企業情景四:隨著公司業務的發展,公司負載均衡服務已經實現四層負載均衡,但業務的復雜程度提升,公司要求把mobile手機站點作為單獨的服務提供,不在和pc站點一起提供服務,此時需要做7層規則負載均衡,運維總監要求,能否用一種服務

web服務器LAMP通過DNS輪詢功能和nfs共享實現負載均衡

hosts dir 通過 sts lvcreate etc update file fst web服務器(LAMP)通過DNS輪詢功能和nfs共享實現負載均衡,部署discuz論壇 拓撲思路: 服務器1:mariadb+nfs;172.20.120.40 服務器2:apac