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 --- 入門之HDFS的JAVA 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 動手實踐 3】Hadoop2.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