国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hadoop HDFS的API操作

這篇具有很好參考價(jià)值的文章主要介紹了Hadoop HDFS的API操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

客戶端環(huán)境準(zhǔn)備

hadoop的 Windows依賴文件夾,拷貝hadoop-3.1.0到非中文路徑(比如d:\)。

  • 配置HADOOP_HOME環(huán)境變量
    Hadoop HDFS的API操作
  • 配置Path環(huán)境變量。
    Hadoop HDFS的API操作
    不能放在包含有空格的目錄下,cmd 輸入hadoop顯示此時(shí)不應(yīng)有 \hadoop-3.0.0\bin\。我放在E:\Program Files (x86) \hadoop-3.0.0\bin\中,就出現(xiàn)錯(cuò)誤
    驗(yàn)證Hadoop環(huán)境變量是否正常。雙擊winutils.exe,如果報(bào)如下錯(cuò)誤。說(shuō)明缺少微軟運(yùn)行庫(kù)(正版系統(tǒng)往往有這個(gè)問(wèn)題)。里面有對(duì)應(yīng)的微軟運(yùn)行庫(kù)安裝包雙擊安裝即可。
    Hadoop HDFS的API操作
  • 配置Path環(huán)境變量。然后重啟電腦
  • 如果上述操作后在后面代碼執(zhí)行的過(guò)程中,還有問(wèn)題可以將bin目錄下hadoop.dll和winutils.exe放到C:/windows/system32目錄下
  1. 在IDEA中創(chuàng)建一個(gè)Maven工程HdfsClientDemo,并導(dǎo)入相應(yīng)的依賴坐標(biāo)+日志添加
<dependencies>
    <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>
</dependencies>

  1. 在項(xiàng)目的src/main/resources目錄下,新建一個(gè)文件,命名為“l(fā)og4j.properties”,在文件中填入
log4j.rootLogger=INFO, stdout  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.logfile=org.apache.log4j.FileAppender  
log4j.appender.logfile.File=target/spring.log  
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

  1. 創(chuàng)建HdfsClient類
方式一
public class HdfsClient{	
@Test
public void testMkdirs() throws IOException, InterruptedException, URISyntaxException{
		
		// 1 獲取文件系統(tǒng)
		Configuration configuration = new Configuration();
		// 配置在集群上運(yùn)行
	FileSystem fs = FileSystem.get(
new URI("hdfs://hadoop102:8020"),
configuration, 
"xiaoming"
);

	}
}

vim core-site.xml
Hadoop HDFS的API操作

Hadoop HDFS的API操作

方式二 給main方法傳參數(shù)
1.代碼部分
public class HdfsClient{	
@Test
public void testMkdirs() throws IOException, InterruptedException, URISyntaxException{
		// 1 獲取文件系統(tǒng)
		Configuration configuration = new Configuration();
		// 配置在集群上運(yùn)行
		configuration.set("fs.defaultFS", "hdfs://hadoop102:8020");
		FileSystem fs = FileSystem.get(configuration);
	}
}


  1. 配置部分
    運(yùn)行時(shí)需要配置用戶名稱(默認(rèn)是使用windows用戶名操作HDFS)
    Hadoop HDFS的API操作

Hadoop HDFS的API操作

給main方法傳參 :
1.在IDEA中傳參 – 在運(yùn)行按鈕上右鍵—>點(diǎn)擊Edit 類名.main() —>
Program Arguments后面寫傳的參數(shù) —>默認(rèn)就是字符串 多個(gè)參數(shù)之間用空格隔開,注意:如果右鍵沒(méi)有就先運(yùn)行一遍。
2. java 字節(jié)碼文件名 參數(shù)1 參數(shù)2 …
客戶端去操作HDFS時(shí),是有一個(gè)用戶身份的。默認(rèn)情況下,HDFS客戶端API會(huì)從JVM中獲取一個(gè)參數(shù)來(lái)作為自己的用戶身份:-DHADOOP_USER_NAME=*****,
為用戶名稱。
錯(cuò)誤:Permission denied: user=XXXXXX, access=WRITE, inode=“/demo”:
:supergroup:drwxr-xr-x
解決方案 :①修改權(quán)限–不建議 ②修改操作HDFS的用戶名(默認(rèn)是windows系統(tǒng)登錄的用戶名)

修改用戶名:在IDEA中傳參 --  在運(yùn)行按鈕上右鍵--->點(diǎn)擊Edit 類名.main() --->
                VM OPtions : -DHADOOP_USER_NAME=******

Hadoop HDFS的API操作
Hadoop HDFS的API操作

    public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
        URI uri = new URI("hdfs://hadoop102:8020");
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://hadoop102:8020");
        conf.set("dfs.replication","2");
        FileSystem fs = FileSystem.get( conf);
//        fs.copyToLocalFile(false, new Path("/input/word.txt"), new Path("E:\\io"), false);
        fs.copyFromLocalFile(false,true,new Path("E:\\io\\upload.txt"),new Path("/input"));
        fs.close();
    }
}

Hadoop HDFS的API操作
Hadoop HDFS的API操作

VM options可以調(diào)節(jié)JVM的堆棧等大小。

HDFS文件上傳

@Test
public void testCopyFromLocalFile() throws IOException, InterruptedException, URISyntaxException {

		// 1 獲取文件系統(tǒng)
		Configuration configuration = new Configuration();
		FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "xiaoming");

		// 2 上傳文件
		fs.copyFromLocalFile(new Path("e:/banzhang.txt"), new Path("/banzhang.txt"));

		// 3 關(guān)閉資源
		fs.close();

IDEA創(chuàng)建Maven工程,由于版本不一樣,這里我使用2022.3版本,有一個(gè)將junit加入classpath的設(shè)置,還有將各種目錄設(shè)置:Mark Directory as :src/main/java 關(guān)聯(lián)為 Sources Root;(右擊java》選擇mark Dirctory as》選擇Sources Root);src/main/resources 關(guān)聯(lián)為Resources Root;(右擊resources》選擇mark Dirctory as》選擇Resources Root);src/test/java 關(guān)聯(lián)為Test Sources Root;(右擊test文件夾下test》選擇mark Dirctory as》選擇Test Sources Root;src/test/resources 關(guān)聯(lián)為 Test Resources Root;(右擊test文件夾下resources》選擇mark Dirctory as》選擇Test Resources Root)
Hadoop HDFS的API操作
還有最后一步就是:選中pom.xml文件,右鍵add as Maven project。Jar包沒(méi)有生效就重新加載pom.xml文件。

HDFS文件下載

@Test
public void testCopyToLocalFile() throws IOException, InterruptedException, URISyntaxException{

		// 1 獲取文件系統(tǒng)
		Configuration configuration = new Configuration();
		FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "xiaoming");
		
		// 2 執(zhí)行下載操作
		// boolean delSrc 指是否將原文件刪除
		// Path src 指要下載的文件路徑
		// Path dst 指將文件下載到的路徑
		// boolean useRawLocalFileSystem 是否開啟文件校驗(yàn)
		fs.copyToLocalFile(false, new Path("/banzhang.txt"), new Path("e:/banhua.txt"), true);
		
		// 3 關(guān)閉資源
		fs.close();

Hadoop HDFS的API操作
Hadoop HDFS的API操作
例如:本地上傳a.txt到HDFS上面,首先會(huì)在本地對(duì)a.txt進(jìn)行一個(gè)校驗(yàn)得到一個(gè)校驗(yàn)值(123),然后將a.txt和校驗(yàn)值123一起上傳到HDFS。在HDFS上面進(jìn)行性文件a.txt的再一次校驗(yàn)值***,將123 與 ***進(jìn)行對(duì)比。下載也是一樣的流程。比如上傳文件到百度網(wǎng)盤,會(huì)發(fā)現(xiàn)有時(shí)候特別快,上傳的文件會(huì)有一個(gè)校驗(yàn)值,其他人上傳相同文件的時(shí)候,會(huì)將另外待上傳相同文件計(jì)算一個(gè)校驗(yàn)值去服務(wù)端查找,有此校驗(yàn)值,就保存一個(gè)在百度網(wǎng)網(wǎng)盤。上傳違法文件時(shí),也會(huì)在黑名單保留此文件的校驗(yàn)值。

測(cè)試參數(shù)優(yōu)先級(jí)

  1. 編寫源代碼
@Test
public void testCopyFromLocalFile() throws IOException, InterruptedException, URISyntaxException {

		// 1 獲取文件系統(tǒng)
		Configuration configuration = new Configuration();
		configuration.set("dfs.replication", "2");
		FileSystem fs = FileSystem.get(new URI("hdfs://hadoop102:8020"), configuration, "xiaoming");

		// 2 上傳文件
		fs.copyFromLocalFile(new Path("e:/banzhang.txt"), new Path("/banzhang.txt"));

		// 3 關(guān)閉資源
		fs.close();

		System.out.println("over");
  1. 將hdfs-site.xml拷貝到項(xiàng)目的根目錄(resource)下
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<property>
		<name>dfs.replication</name>
         <value>1</value>
	</property>
</configuration>

  1. 參數(shù)優(yōu)先級(jí)
    參數(shù)優(yōu)先級(jí)排序:(1)客戶端代碼中設(shè)置的值 >(2)ClassPath下的用戶自定義配置文件 >(3)然后是服務(wù)器的默認(rèn)配置
    參數(shù)的配置 : 客戶端代碼,客戶端的配置文件,服務(wù)器端xxx-default.xml,服務(wù)器端的xxx-site.xml
    在客戶端的執(zhí)行的命令 : 客戶端代碼 > 客戶端的配置文件 > 服務(wù)器端的xxx-default.xml(默認(rèn)備份數(shù)3)
    如果注釋掉客戶端代碼和配置文件,這個(gè)時(shí)候如果服務(wù)端也配置了hdfs-site.xml (例如配置8),是不生效的,上傳文件默認(rèn)備份數(shù)3。
    在服務(wù)器端執(zhí)行命令 : hadoop fs -put a.txt /demo
    服務(wù)器端xxx-site.xml > 服務(wù)器端xxx-default.xml
    Hadoop HDFS的API操作

驗(yàn)證1:客戶端和配置文件都設(shè)置了備份數(shù),看誰(shuí)優(yōu)先級(jí)高!

客戶端設(shè)置為文件備份數(shù)2,配置文件設(shè)置為文件備份數(shù)5
Hadoop HDFS的API操作

Hadoop HDFS的API操作

驗(yàn)證2: 只在配置文件里設(shè)置文件備份數(shù)

Hadoop HDFS的API操作
Hadoop HDFS的API操作

驗(yàn)證3: 服務(wù)端 /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml。設(shè)置之后必須分發(fā)xsync hdfs-site.xml并重啟HDFS。注意:此操作僅涉及服務(wù)端,與客戶端沒(méi)有任何關(guān)系?。。。?!

Hadoop HDFS的API操作
分發(fā)重啟不能立馬操作!
以下結(jié)果證明了服務(wù)器端xxx-site.xml > 服務(wù)器端xxx-default.xml
Hadoop HDFS的API操作
注意:剛啟動(dòng)集群不能立馬操作,否則會(huì)報(bào)下面的錯(cuò)。
Hadoop HDFS的API操作
分享到此,感謝下伙伴們支持!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-449408.html

到了這里,關(guān)于Hadoop HDFS的API操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 大數(shù)據(jù):HDFS操作的客戶端big data tools和NFS

    大數(shù)據(jù):HDFS操作的客戶端big data tools和NFS

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開發(fā),測(cè)開 測(cè)開的話,你就得學(xué)數(shù)據(jù)庫(kù),sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫(kù) 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月09日
    瀏覽(16)
  • 使用Kafka客戶端(kafka-clients)的Java API操作Kafka的Topic

    記錄 :460 場(chǎng)景 :在Spring Boot微服務(wù)集成Kafka客戶端kafka-clients-3.0.0操作Kafka的Topic的創(chuàng)建和刪除。 版本 :JDK 1.8,Spring?Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安裝 :https://blog.csdn.net/zhangbeizhen18/article/details/129071395 1.微服務(wù)中 配置Kafka信息 1.1在pom.xml添加依賴 pom.xml文件: 解析

    2024年02月09日
    瀏覽(95)
  • 使用Kafka客戶端(spring-kafka)的Java API操作Kafka的Topic

    記錄 :458 場(chǎng)景 :在Spring Boot微服務(wù)集成Kafka客戶端spring-kafka-2.8.2操作Kafka的Topic的創(chuàng)建和刪除。 版本 :JDK 1.8,Spring?Boot 2.6.3,kafka_2.12-2.8.0,spring-kafka-2.8.2。 Kafka安裝 :https://blog.csdn.net/zhangbeizhen18/article/details/129071395 1.微服務(wù)中 配置Kafka信息 1.1在pom.xml添加依賴 pom.xml文件: 解析

    2024年02月09日
    瀏覽(21)
  • HDFS寫流程源碼分析(一)-客戶端

    HDFS寫流程源碼分析(一)-客戶端

    環(huán)境為hadoop 3.1.3 以下代碼創(chuàng)建并寫入文件。 Configuration 加載了hadoop的配置信息,下為其靜態(tài)代碼塊,可以看到眼熟的配置文件名稱。 FileSystem 是Hadoop文件系統(tǒng)的抽象類,有許多實(shí)現(xiàn)(如下圖),hdfs便是其分布式文件系統(tǒng)的具體實(shí)現(xiàn)。 這里我們關(guān)注的為 DistributedFileSystem 。 上

    2024年02月11日
    瀏覽(35)
  • hbase優(yōu)化:客戶端、服務(wù)端、hdfs

    hbase優(yōu)化 一.讀優(yōu)化 1.客戶端: 2.服務(wù)器: 3.列簇:是否過(guò)多、 是否使用布隆過(guò)濾器:任何業(yè)務(wù)都應(yīng)該設(shè)置Bloomfilter,通常設(shè)置為row就可以,除非確認(rèn)業(yè)務(wù)隨機(jī)查詢類型為row+cf,可以設(shè)置為rowcol 是否設(shè)置ttl 4.hdfs優(yōu)化: 二、寫優(yōu)化 是否需要寫WAL?WAL是否需要同步寫入 用批量

    2024年02月14日
    瀏覽(37)
  • 【大數(shù)據(jù)】HDFS客戶端命令行(hdfs dfs)詳細(xì)使用說(shuō)明

    【大數(shù)據(jù)】HDFS客戶端命令行(hdfs dfs)詳細(xì)使用說(shuō)明

    hadoop分布式文件系統(tǒng)客戶端命令行操作 全局變量說(shuō)明 Path 路徑支持正則表達(dá)式 通配符 名稱 匹配 * 星號(hào) 匹配0或多個(gè)字符 ? 問(wèn)號(hào) 匹配單一字符 [ab] 字符類別 匹配{a,b}中的一個(gè)字符 [^ab] 非字符類別 匹配不是{a,b}中的一個(gè)字符 [a-b] 字符范圍 匹配一個(gè)在{a,b}范圍內(nèi)的 字符(包括

    2024年02月09日
    瀏覽(34)
  • 【HDFS】ResponseProcessor線程詳解以及客戶端backoff反壓

    ResponseProcessor如何處理datanode側(cè)發(fā)過(guò)來(lái)的packet ack的 客戶端側(cè)backoff邏輯。 ResponseProcessor:主要功能是處理來(lái)自datanode的響應(yīng)。當(dāng)一個(gè)packet的響應(yīng)到達(dá)時(shí),會(huì)把這個(gè)packet從ackQueue里移除。

    2024年02月11日
    瀏覽(35)
  • 【HDFS】每天一個(gè)RPC系列----complete(二):客戶端側(cè)

    【HDFS】每天一個(gè)RPC系列----complete(二):客戶端側(cè)

    上圖給出了最終會(huì)調(diào)用到complete RPC的客戶端側(cè)方法鏈路(除去Router那條線了)。 org.apache.hadoop.hdfs.DFSOutputStream#completeFile(org.apache.hadoop.hdfs.protocol.ExtendedBlock): 下面這個(gè)方法在complete rpc返回true之前,會(huì)進(jìn)行重試,直到超過(guò)最大重試次數(shù)拋異常。 另外需要注意的是,這個(gè)方法在

    2024年02月13日
    瀏覽(25)
  • unity學(xué)習(xí)(19)——客戶端與服務(wù)器合力完成注冊(cè)功能(1)入門準(zhǔn)備

    unity學(xué)習(xí)(19)——客戶端與服務(wù)器合力完成注冊(cè)功能(1)入門準(zhǔn)備

    逆向服務(wù)器用了三天的時(shí)間,但此時(shí)覺(jué)得一切都值,又可以繼續(xù)學(xué)習(xí)了。 服務(wù)器中登錄請(qǐng)求和注冊(cè)請(qǐng)求由command變量進(jìn)行區(qū)分,上一層的type變量都是login。 從注冊(cè)入手!視頻對(duì)應(yīng)的應(yīng)該是第七講。 點(diǎn)擊注冊(cè)按鈕,輸入賬號(hào)密碼,實(shí)測(cè)可以在服務(wù)器收到編碼后的字符串,但此時(shí)

    2024年02月21日
    瀏覽(25)
  • 【Elasticsearch學(xué)習(xí)筆記五】es常用的JAVA API、es整合SpringBoot項(xiàng)目中使用、利用JAVA代碼操作es、RestHighLevelClient客戶端對(duì)象

    目錄 一、Maven項(xiàng)目集成Easticsearch 1)客戶端對(duì)象 2)索引操作 3)文檔操作 4)高級(jí)查詢 二、springboot項(xiàng)目集成Spring Data操作Elasticsearch 1)pom文件 2)yaml 3)數(shù)據(jù)實(shí)體類 4)配置類 5)Dao數(shù)據(jù)訪問(wèn)對(duì)象 6)索引操作 7)文檔操作 8)文檔搜索 三、springboot項(xiàng)目集成bboss操作elasticsearch

    2023年04月09日
    瀏覽(37)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包