java操作hdfs的方法示例代碼
更新時(shí)間:2024年10月10日 10:24:37 作者:java操作hdfs
這篇文章主要介紹了java操作hdfs的相關(guān)資料,在本地配置Hadoop和Maven的環(huán)境變量,首先需從官網(wǎng)下載與服務(wù)器相同版本的Hadoop安裝包,配置環(huán)境變量后,引入Maven的配置文件,以便管理項(xiàng)目依賴(lài),最后,編寫(xiě)代碼實(shí)現(xiàn)對(duì)HDFS的連接和操作,完成數(shù)據(jù)的讀寫(xiě),需要的朋友可以參考下
在本地配置環(huán)境變量
- 在官網(wǎng)下載一個(gè)與服務(wù)器上的hadoop同樣的版本包(或許可以不是同一個(gè)版本)
- 配置環(huán)境變量
導(dǎo)入maven配置文件
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.1.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.30</version> </dependency>
連接hdfs
public class JavaToHDFS { //定義類(lèi)變量:文件系統(tǒng),用來(lái)連接hdfs FileSystem fs=null; //預(yù)處理,連接hdfs public void init() throws Exception{ Configuration conf = new Configuration(); fs = FileSystem.get(new URI("本機(jī)ip地址"),conf,"root"); } }
hdfs代碼
HDFSDemo.java package cn.itcast.hadoop.hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; import org.junit.Before; import org.junit.Test; public class HDFSDemo { FileSystem fs = null; @Before public void init() throws Exception{ fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration(), "root"); } @Test public void testUpload() throws Exception{ InputStream in = new FileInputStream("/root/install.log"); OutputStream out = fs.create(new Path("/log123.log")); IOUtils.copyBytes(in, out, 1024, true); } @Test public void testMkdir() throws IllegalArgumentException, IOException{ boolean flag = fs.mkdirs(new Path("/a/aa")); System.out.println(flag); } @Test public void testDel() throws IllegalArgumentException, IOException{ boolean flag = fs.delete(new Path("/a"), true); System.out.println(flag); } public static void main(String[] args) throws Exception { FileSystem fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration()); InputStream in = fs.open(new Path("/jdk")); OutputStream out = new FileOutputStream("/home/jdk1.7.tar.gz"); IOUtils.copyBytes(in, out, 4096, true); } }
總結(jié)
到此這篇關(guān)于java操作hdfs的文章就介紹到這了,更多相關(guān)java操作hdfs內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java使用renderer將pdf按頁(yè)轉(zhuǎn)換為圖片
這篇文章主要為大家詳細(xì)介紹了java使用renderer將pdf按頁(yè)轉(zhuǎn)換為圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12深入理解SpringMVC的參數(shù)綁定與數(shù)據(jù)響應(yīng)機(jī)制
本文將深入探討SpringMVC的參數(shù)綁定方式,包括基本類(lèi)型、對(duì)象、集合等類(lèi)型的綁定方式,以及如何處理參數(shù)校驗(yàn)和異常。同時(shí),本文還將介紹SpringMVC的數(shù)據(jù)響應(yīng)機(jī)制,包括如何返回JSON、XML等格式的數(shù)據(jù),以及如何處理文件上傳和下載。2023-06-06關(guān)于Java的Condition接口最佳理解方式
這篇文章主要介紹了關(guān)于Java的Condition接口最佳理解方式,Condition就是實(shí)現(xiàn)了管程里面的條件變量,Java?語(yǔ)言?xún)?nèi)置的管程里只有一個(gè)條件變量,而Lock&Condition實(shí)現(xiàn)的管程支持多個(gè)條件變量,需要的朋友可以參考下2023-05-05RocketMQ實(shí)現(xiàn)消息分發(fā)的步驟
RocketMQ 實(shí)現(xiàn)消息分發(fā)的核心機(jī)制是通過(guò) Topic、Queue 和 Consumer Group 的配合實(shí)現(xiàn)的,下面給大家介紹RocketMQ實(shí)現(xiàn)消息分發(fā)的步驟,感興趣的朋友一起看看吧2024-03-03JRebel在線(xiàn)激活破解實(shí)現(xiàn)教程
這篇文章主要介紹了JRebel在線(xiàn)激活破解實(shí)現(xiàn)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12