對大數(shù)據(jù)HDFS文件的管理一般有如下幾種方式:
- 通過服務(wù)器端linux命令行
- 通過HDFS Web端
- 通過本地客戶端
使用linux命令行抑或Web端來管理HDFS文件系統(tǒng),固而簡單方便,但通過在客戶端使用腳本語言能夠?qū)崿F(xiàn)對Hadoop更加靈活多樣的操作,比如實(shí)時(shí)參數(shù)配置(腳本語言里的參數(shù)配置優(yōu)先級(jí)最高),循環(huán)處理文件等。
前置準(zhǔn)備在準(zhǔn)備Hadoop客戶端API之前,需要有已搭建好的 完全分布式集群 ,集群的搭建可以參考
Hadoop完全分布式服務(wù)器集群搭建
zookeeper、hadoop集群已經(jīng)啟動(dòng)并正常運(yùn)行
電腦(以mac為例)已安裝配置jdk環(huán)境,要求1.8版本或以上
已安裝 IntelliJ IDEA 軟件
IDEA官方下載
下載專業(yè)版,可以臨時(shí)使用下面提供的激活碼進(jìn)行學(xué)習(xí),IDEA使用體驗(yàn)超好,推薦大家購買支持正版軟件
IDEA臨時(shí)激活碼
安裝配置好的maven環(huán)境,參考
maven的安裝配置以及在IDEA中的使用
主機(jī)名配置
#在終端里修改hosts
vi /etc/hosts
#添加主機(jī)名,比如我的集群有三個(gè)節(jié)點(diǎn):node1、node2、node3
172.19.0.3 node1
172.19.0.4 node2
172.19.0.5 node3
Mac的Hadoop客戶端無需下載Hadoop及配置環(huán)境變量,在IDEA中maven會(huì)下載連接需要的依賴包。
填寫 GroupId 和 ArtifactId ,完成Maven項(xiàng)目的創(chuàng)建
項(xiàng)目創(chuàng)建后,一般會(huì)自動(dòng)打開 pom.xml 文件
注意按上面maven配置文章里在idea的 偏好設(shè)置 里完成對maven環(huán)境的配置
依賴包的配置:在 pom.xml 文件中的 properties 標(biāo)簽下面添加以下依賴包代碼。代碼添加后會(huì)自動(dòng)聯(lián)網(wǎng)下載所需的依賴包,可以在上面maven 本地倉庫 配置的路徑下查看,成功下載所有依賴包后,pom.xml 文件代碼中將沒有紅色字體
org.apache.hadoop hadoop-client 3.3.0 junit junit 4.12 org.slf4j slf4j-log4j12 1.7.30
在IDEA的 src-main-resources 路徑下創(chuàng)建一個(gè)文件 log4j.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
在IDEA的 src-main-java 路徑下創(chuàng)建包 com.axl.hdfs,然后在這個(gè)包里創(chuàng)建類 HdfsClient ,在類文件里面填入以下代碼
package com.axl.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
public class HdfsClient {@Test
public void testMkdirs() throws IOException, URISyntaxException, InterruptedException {//連接集群的namenode地址,node1要修改成自己集群的節(jié)點(diǎn)名稱
URI uri = new URI("hdfs://node1:8020");
//創(chuàng)建配置文件
Configuration configuration = new Configuration();
//指定用戶
String user = "root";
//獲取客戶端對象
FileSystem fs = FileSystem.get(uri,configuration,user);
//創(chuàng)建測試文件夾
fs.mkdirs(new Path("/test"));
//關(guān)閉
fs.close();
}
}
執(zhí)行以上代碼,在 http://node1:9870 Web文件系統(tǒng)里查看,可以看到文件夾通過客戶端成功創(chuàng)建
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧