1. 程式人生 > >hadoop2.7.3 hdfs Java API操作

hadoop2.7.3 hdfs Java API操作

/**
 * @author root
 *測試hadoop hdfs 的客戶端操作
 *專案建立只需要匯入hadoop的hadoop-2.7.3-bin\share\hadoop下面所有jar包就可以了
 *也可以使用maven依賴 
 *hadoop-core
 */
public class TestHDFS {
    /**
     * hadoop URL
     */
    public static final String BASE_URL = "hdfs://s0:9000";
    /**
     *本地檔案系統的目錄 
     */
    public static final String LOCAL_URL = "F:/soft/temp"
; /** * hadoop目錄的地址 */ public static final String h = "/user/root/input"; /** * 配置物件 */ public static Configuration conf; /** * hadoop分散式檔案系統的抽象 * */ public static FileSystem fs; // 靜態程式碼塊初始化檔案系統 static { conf = new Configuration(); try
{ fs = FileSystem.get(URI.create(BASE_URL),conf); } catch (IOException e) { System.out.println("there is error!"); e.printStackTrace(); } } /** * 測試建立檔案 * @throws IllegalArgumentException * @throws IOException */ public
void create() throws IllegalArgumentException, IOException { FSDataOutputStream dos = fs.create(new Path(h+"/4.txt"),true); dos.write("hello hdfs\n".getBytes()); System.out.println("create over"); } public void exists() throws IOException { // 測試檔案是否存在 Path path = new Path(h+"/5.txt"); System.out.println(fs.exists(path)); // false path = new Path(h+"/4.txt"); System.out.println(fs.exists(path)); // true } public void mkdir() throws IOException{ Path path = new Path("user/root/test"); boolean isSucc = fs.mkdirs(path); if(isSucc)System.out.println("建立目錄成功!"); } public void downloadAndUpload() throws IllegalArgumentException, IOException{ /* * 從hdfs上覆制到本地檔案系統 * 一開始使用copyToLocalFile(src,dst) 方法發生錯誤 * 後來發現要使用copyToLocalFile(boolean delSrc, Path src, Path dst, * boolean useRawLocalFileSystem) 方法,多的兩個引數表示第一個表示是否刪除原始檔,最後一個表示當本地檔案系統不存在時使用RawLocalFileSystem */ fs.copyToLocalFile(false,new Path("/user/root/output1/part-00000"), new Path("F:/soft/temp"),true); // 從本地檔案系統複製到hdfs上 fs.copyFromLocalFile(new Path("F:/soft/temp/1.gz"), new Path("/user/root/ncdc_data")); } @Test public void input() throws IOException { String src = "G:/javaUtils/readme.txt"; InputStream in = new BufferedInputStream(new FileInputStream(src)); Path path = new Path(h+"/3.txt"); // 使用hadoop的FSDataOutputStream上傳檔案 // 對於大型檔案還可以使用進度條顯示進度 FSDataOutputStream out = fs.create(path, new Progressable() { @Override public void progress() { System.out.print(". "); } }); // hadoop的工具類 IOUtils.copyBytes(in, out, 4096,true); // . . 562 System.out.println(fs.getFileStatus(path).getLen()); } @Test public void deleteAndCreateNewFile() throws IllegalArgumentException, IOException{ // true表示需要遞迴刪除 fs.delete(new Path("/user/root/output1"),true); Path path = new Path(h+"/5.txt"); // 這個方法與create相比僅僅多了一個,檔案是否存在的判斷如果存在就不會建立了 fs.createNewFile(path); // 檔案追加 FSDataOutputStream out = fs.append(new Path("/user/root/input/5.txt")); out.write("\nappend some data to a exists file\n".getBytes()); out.flush(); out.close(); }

相關推薦

hadoop2.7.3 hdfs Java API操作

/** * @author root *測試hadoop hdfs 的客戶端操作 *專案建立只需要匯入hadoop的hadoop-2.7.3-bin\share\hadoop下面所有jar包就可以了 *也可以使用maven依賴 *hadoop-cor

springboot上傳下載檔案(3)--java api 操作HDFS叢集+叢集配置

 只有光頭才能變強! 前一篇文章講了nginx+ftp搭建獨立的檔案伺服器 但這個伺服器宕機了怎麼辦? 我們用hdfs分散式檔案系統來解決這個問題(同時也為hadoop系列開個頭) 目錄 1、Ubuntu14.04下配置Hadoop(2.8.5)叢集環境詳解(完全分

HDFS Java API操作

1. 2. 以下是處於完全分散式 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException

【轉載 Hadoop&Spark 動手實踐 2】Hadoop2.7.3 HDFS理論與動手實踐

NameNode可以看作是分散式檔案系統中的管理者,主要負責管理檔案系統的名稱空間、叢集配置資訊和儲存塊的複製等。NameNode會將檔案系統的Meta-data儲存在記憶體中,這些資訊主要包括了檔案資訊、每一個檔案對應的檔案塊的資訊和每一個檔案塊在DataNode的資訊等。 (

Hadoop權威指南---HDFS簡介和java API操作

目錄 Hadoop分散式檔案系統  1、HDFS的設計 HDFS的特點 超大檔案,目前已經有PB級資料的Hadoop叢集; 流式資料訪問,一次寫入、多次讀取;

HDFS客戶端搭建與Java API操作HDFS

HDFS客戶端搭建 為什麼不建議使用叢集內操作? 如果每一次上傳檔案都是選擇某一臺DN作為客戶端,就會導致這個節點上的磁碟以及網路I0負載超過其他的節點,久而久之這個節點的磁碟以及網絡卡效能遠遠低於其他節點,從而會導致資料的傾斜問題。 配置叢集客戶端的步驟: 1

Java API 操作 HDFS

實現功能 在HDFS檔案系統中實現 建立目錄 上傳檔案 下載檔案 列出某個目錄下所有檔案 讀取某個檔案的資料 詳細步驟 1.Windows安裝jdk和eclipse 完成Java環境部署 詳情可以參考:java初學者Win 10下eclipse的安裝教程(超

hadoop2-HBase的Java API操作

Hbase提供了豐富的Java API,以及執行緒池操作,下面我用執行緒池來展示一下使用Java API操作Hbase。 專案結構如下: 我使用的Hbase的版本是 大家下載後,可以拿到裡面的lib目錄下面的jar檔案,即上所示的hbase-lib資源。 介面類: /hbase-util

hadoop2.7.3原始碼解析之hdfs刪除檔案全流程分析

客戶端刪除檔案 先來一段簡單的程式碼,用java的api刪除hdfs的 檔案 Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(co

使用java api操作hdfs

參考: https://blog.csdn.net/jiecxy/article/details/780116301. 首先建立一個maven專案,新增如下的hadoop-client依賴<?xml version="1.0" encoding="UTF-8"?>

Hadoop學習筆記一(通過Java API 操作HDFS,檔案上傳、下載)

package demo.hdfs; import java.util.Arrays; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.BlockLocation; impor

java API 操作HDFS檔案系統

1.Maven 構建java工程 2.新增HDFS相關依賴 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

Solr 7.3.0 java 操作

一、專案結構二、pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http

Hadoop --- 入門之HDFSJAVA API操作

JAR準備: 將hadoop-2.8.0中share目錄下的jar包新增到工程中: common下的hadoop-common-2.8.0.jar common/lib下的所有jar hdfs下的hadoop-hdfs-2.8.0.jar hdfs/lib下的所有j

使用Hadoop的Java API操作HDFS

本文介紹Java API訪問HDFS,實現檔案的讀寫,檔案系統的操作等。開發環境為eclipse,開發時所依賴的jar包,可在Hadoop安裝目錄下找到。 Demo package com.test.hdfs; import org.apache.hado

使用Java API操作HDFS文件系統

onf test 刪除文件 獲取信息 對象 write put out 文件內容 使用Junit封裝HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import

【原創 Spark動手實踐 1】Hadoop2.7.3安裝部署實際動手

dmi 遠程 nag proc host 一個 error img 連接 目錄: 第一部分:操作系統準備工作:   1. 安裝部署CentOS7.3 1611   2. CentOS7軟件安裝(net-tools, wget, vim等)   3. 更新CentOS

【原創 Hadoop&Spark 動手實踐 3Hadoop2.7.3 MapReduce理論與動手實踐

pack license 讀取 rgs 理論 程序員開發 -s 接口 pri 開始聊MapReduce,MapReduce是Hadoop的計算框架,我學Hadoop是從Hive開始入手,再到hdfs,當我學習hdfs時候,就感覺到hdfs和mapreduce關系的緊密。這個

Centos7完全分布式搭建Hadoop2.7.3

.com 密碼 hist gif apach sys cat 設置 blank (一)軟件準備 1,hadoop-2.7.3.tar.gz(包) 2,三臺機器裝有cetos7的機子 (二)安裝步驟   1,給每臺機子配相同的用戶     進入root : su root  

HDFS Java API的使用舉例

lap tmp author company 守護 mapred err ips cond   HDFS是Hadoop應用程序使用的主要分布式存儲。HDFS集群主要由管理文件系統元數據的NameNode和存儲實際數據的DataNodes組成,HDFS架構圖描述了NameNo