如何使用自建Hadoop訪問全托管服務(wù)化HDFS(OSS-HDFS服務(wù))
1. 服務(wù)介紹
OSS-HDFS服務(wù)(JindoFS 服務(wù))是一款云原生數(shù)據(jù)湖3.0存儲(chǔ)產(chǎn)品,根據(jù)一致的元數(shù)據(jù)辦理才能,在徹底兼容 HDFS 文件體系接口的一起,供給充沛的 POSIX 才能支撐,能更好的滿意大數(shù)據(jù)和 AI 范疇豐厚多樣的數(shù)據(jù)湖核算場(chǎng)景。
經(jīng)過OSS-HDFS服務(wù),無需對(duì)現(xiàn)有的 Hadoop/Spark 大數(shù)據(jù)剖析運(yùn)用做任何修正,經(jīng)過簡(jiǎn)略的裝備就能夠像在原生HDFS中那樣辦理和拜訪數(shù)據(jù),一起取得OSS無限容量、彈性擴(kuò)展、更高的安全性、可靠性和可用性支撐。
數(shù)據(jù)湖HDFS演進(jìn)途徑
1.1 主要特性
1.1.1 HDFS 兼容拜訪
OSS-HDFS服務(wù)(JindoFS服務(wù))徹底兼容HDFS接口,一起支撐目錄層級(jí)的操作,用戶只需集成JindoSDK,即可為Apache Hadoop的核算剖析運(yùn)用(例如MapReduce、Hive、Spark、Flink等)供給了拜訪HDFS服務(wù)的才能,像運(yùn)用 Hadoop 分布式文件體系 (HDFS) 相同辦理和拜訪數(shù)據(jù),運(yùn)用概況請(qǐng)參閱OSS-HDFS服務(wù)快速入門;
1.1.2 POSIX 才能支撐
OSS-HDFS服務(wù)能夠經(jīng)過JindoFuse供給POSIX支撐。能夠把OSS-HDFS服務(wù)上的文件掛載到本地文件體系中,能夠像操作本地文件體系相同操作JindoFS服務(wù)中的文件,運(yùn)用概況請(qǐng)參閱運(yùn)用JindoFuse拜訪OSS-HDFS服務(wù)
1.1.3 高性能、高彈性、低本錢
運(yùn)用自建Haddop集群,嚴(yán)峻依賴硬件資源,很難做到資源的彈性彈性,本錢和效益上捉襟見肘,比如規(guī)劃超越數(shù)百臺(tái),文件數(shù)到達(dá)4億左右時(shí)NameNode根本到達(dá)瓶頸。跟著元數(shù)據(jù)規(guī)劃的上漲,其QPS存在下降的趨勢(shì)。而OSS-HDFS服務(wù)是專為多租戶、海量數(shù)據(jù)存儲(chǔ)服務(wù)設(shè)計(jì),元數(shù)據(jù)辦理才能可彈性擴(kuò)容,可支撐更高的并發(fā)度、吞吐量和低時(shí)延,即使超越10億文件數(shù)仍然能夠堅(jiān)持服務(wù)穩(wěn)定,供給高性能、高可用的服務(wù)。一起采用一致元數(shù)據(jù)辦理才能,可輕松應(yīng)對(duì)超大文件規(guī)劃,并支撐多種分層分級(jí)戰(zhàn)略,體系的資源利用率更高,更節(jié)約本錢,能充沛滿意事務(wù)體量快速改變的需求。
1.1.4 數(shù)據(jù)持久性和服務(wù)可用性
OSS-HDFS服務(wù)中數(shù)據(jù)存儲(chǔ)在方針存儲(chǔ)OSS上,而OSS作為阿里巴巴全集團(tuán)數(shù)據(jù)存儲(chǔ)的中心基礎(chǔ)設(shè)施,多年支撐雙11事務(wù)頂峰,歷經(jīng)高可用與高可靠的苛刻檢測(cè)。
-
服務(wù)可用性不低于99.995%。
-
數(shù)據(jù)設(shè)計(jì)持久性不低于99.9999999999%(12個(gè)9)。
-
規(guī)劃自動(dòng)擴(kuò)展,不影響對(duì)外服務(wù)。
-
數(shù)據(jù)自動(dòng)多重冗余備份。
1.2 典型適用場(chǎng)景
OSS-HDFS 服務(wù)供給全面的大數(shù)據(jù)和 AI 生態(tài)支撐,典型場(chǎng)景如下概述,相關(guān)文檔請(qǐng)參閱鏈接:阿里云 OSS-HDFS 服務(wù)(JindoFS 服務(wù)) 用戶文檔。
1.2.1 Hive/Spark 離線數(shù)倉(cāng)
OSS-HDFS服務(wù)原生支撐文件/目錄語(yǔ)義和操作,支撐毫秒級(jí)和原子性目錄 rename,在才能上對(duì)齊 HDFS,擅長(zhǎng)和合適用于開源 Hive/Spark 離線數(shù)倉(cāng)。
1.2.2 OLAP
OSS-HDFS服務(wù)供給 append、truncate、flush、pwrite 等基礎(chǔ)文件操作,經(jīng)過 JindoFuse 充沛支撐 POSIX,能夠?yàn)?nbsp;ClickHouse 這類 OLAP 場(chǎng)景替換本地磁盤做存/算別離計(jì)劃,再借助于緩存體系進(jìn)行加快,到達(dá)最佳性價(jià)比。
1.2.3 AI 練習(xí)/推理
OSS-HDFS服務(wù)供給 append、truncate、flush、pwrite 等基礎(chǔ)文件操作,經(jīng)過 JindoFuse 充沛支撐 POSIX,無縫對(duì)接 AI 生態(tài)和已有的 Python 練習(xí)/推理程序。
1.2.4 HBase 存/算別離
OSS-HDFS服務(wù)原生支撐文件/目錄語(yǔ)義和操作,支撐 flush 操作,在才能上對(duì)齊 HDFS,能夠用于代替 HDFS 做 HBase 存/算別離計(jì)劃。相較于 HBase + OSS(規(guī)范 bucket)計(jì)劃,HBase + OSS-HDFS服務(wù)計(jì)劃不依賴 HDFS 來寄存 WAL 日志,大幅簡(jiǎn)化整體計(jì)劃架構(gòu)。
1.2.5 實(shí)時(shí)核算
OSS-HDFS服務(wù)高效支撐 flush 和 truncate 操作,能夠用來無縫代替 HDFS 在 Flink 實(shí)時(shí)核算運(yùn)用場(chǎng)景下做 sink/checkpoint 存儲(chǔ)。
1.2.6 數(shù)據(jù)遷移
OSS-HDFS 服務(wù)作為新一代云原生數(shù)據(jù)湖存儲(chǔ),支撐 IDC HDFS 平遷上云,確保和優(yōu)化 HDFS 運(yùn)用體會(huì),一起享用彈性彈性、按需付費(fèi)的本錢效益,大幅優(yōu)化存儲(chǔ)本錢。JindoDistCp 東西供給高效方法支撐將 HDFS 文件數(shù)據(jù)(包括文件特點(diǎn)等元數(shù)據(jù))無縫遷入 OSS-HDFS 服務(wù),并根據(jù) HDFS Checksum 支撐供給快速比對(duì)。
OSS-HDFS 服務(wù)作為 JindoFS Block 方式的服務(wù)化晉級(jí)版本,供給晉級(jí)計(jì)劃,支撐將 EMR 集群內(nèi)的 JindoFS Block 方式文件元數(shù)據(jù)(寄存于 header 節(jié)點(diǎn)上的本地 RocksDB)快速遷入 OSS-HDFS 服務(wù) bucket,堅(jiān)持 OSS 上已有的 JindoFS 文件數(shù)據(jù)塊不變(無須轉(zhuǎn)換、遷移)。
OSS-HDFS 服務(wù)也行將支撐 OSS 現(xiàn)有 bucket 數(shù)據(jù)快速導(dǎo)入,便利 OSS 用戶體會(huì)運(yùn)用新服務(wù)的功用和特性。
1.3 服務(wù)特性支撐狀況
場(chǎng)景特性 |
支撐狀況 |
|
Hive/Spark 數(shù)倉(cāng) |
原生支撐文件/目錄語(yǔ)義和操作 |
? |
支撐文件/目錄權(quán)限 |
? |
|
支撐目錄原子性/毫秒級(jí) rename |
? |
|
支撐 setTimes 設(shè)置時(shí)刻 |
? |
|
擴(kuò)展特點(diǎn)(XAttrs)支撐 |
? |
|
ACL支撐 |
? |
|
本地讀緩存加快 |
? |
|
Kerberos + Ranger 認(rèn)證鑒權(quán)計(jì)劃 |
行將支撐 |
|
分層存儲(chǔ)和歸檔 |
行將支撐 |
|
操作審計(jì)(audit log) |
行將支撐 |
|
元數(shù)據(jù)(fsimage)剖析 |
行將支撐 |
|
OSS 數(shù)據(jù)快速導(dǎo)入 |
行將支撐 |
|
HDFS 代替 |
快照(Snapshot)支撐 |
? |
支撐文件 flush/sync |
? |
|
支撐文件截?cái)?nbsp;truncate |
? |
|
支撐文件 append |
? |
|
Checksum 支撐 |
? |
|
HDFS 回收站自動(dòng)清理 |
? |
|
HDFS 數(shù)據(jù)加密 |
行將支撐 |
|
POSIX 才能 |
文件隨機(jī)寫支撐 |
? |
truncate/append 支撐 |
? |
|
flush 支撐 |
? |
|
fallocate |
行將支撐 |
|
flock |
行將支撐 |
2. 運(yùn)用過程
2.1 創(chuàng)立內(nèi)網(wǎng)拜訪OSS-HDFS服務(wù)的VPC 環(huán)境
2.1.1 創(chuàng)立VPC環(huán)境
登陸阿里云官網(wǎng),點(diǎn)擊“產(chǎn)品與服務(wù)”中的“專有網(wǎng)絡(luò)VPC”
切換到與行將運(yùn)用的OSS-HDFS 服務(wù)Bucket相同的地域后,點(diǎn)擊“創(chuàng)立專有網(wǎng)絡(luò)”
填入必要信息后點(diǎn)擊“確認(rèn)”
2.1.2 創(chuàng)立云服務(wù)器(ECS)
進(jìn)入新建的vpc辦理頁(yè)面,切換到“資源辦理” ,增加云服務(wù)器(ECS)
在翻開的頁(yè)面中點(diǎn)擊“創(chuàng)立實(shí)例”
根據(jù)需求填寫裝備等侯提交確認(rèn)
如需求拜訪外網(wǎng),請(qǐng)?zhí)暨x分配工網(wǎng)IP
2.2 創(chuàng)立Hadoop運(yùn)轉(zhuǎn)環(huán)境
2.2.1 裝置Java 環(huán)境
ECS創(chuàng)立完結(jié)后進(jìn)入該實(shí)例控制臺(tái)點(diǎn)擊遠(yuǎn)程銜接,進(jìn)入體系
裝置JDK并裝備環(huán)境變量,JDK版本不低于1.8
#卸載已有jdk rpm -qa | grep java | xargs rpm -e --nodeps #裝置java yum install java-1.8.0-openjdk* -y # 裝備環(huán)境變量 ## 暫時(shí)收效直接export; ## 當(dāng)時(shí)用戶收效更新到 ~/.bashrc; ## 所有用戶收效更新到/etc/profile 使裝備收效; 修改完. /etc/profile使其收效 vim /etc/profile # 增加環(huán)境變量, 假如提示當(dāng)時(shí)jdk path不存在則到/usr/lib/jvm/ 尋覓,java-1.8.0-openjdk export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar export PATH=$PATH:$JAVA_HOME/bin
2.2.2 裝置SSH
# 裝置 yum install -y openssh-clients openssh-server # 啟用服務(wù) systemctl enable sshd && systemctl start sshd
生成 SSH 密鑰,并將生成的密鑰增加到信賴列表:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
2.2.3 裝置Hadoop
# 下載 wget https://mirrors.sonic.net/apache/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz # 解壓 tar xzf hadoop-3.3.1.tar.gz # 移動(dòng)到常用位置 mv hadoop-3.3.1 /usr/local/hadoop
裝備環(huán)境變量
# 暫時(shí)收效直接export; # 當(dāng)時(shí)用戶收效更新到 ~/.bashrc; # 所有用戶收效更新到/etc/profile 使裝備收效; 修改完. /etc/profile使其收效 vim /etc/profile # 設(shè)置hadoop環(huán)境變量 export HADOOP_HOME=/usr/local/hadoop export PATH=$HADOOP_HOME/bin:$PATH # 更新hadoop裝備文件中JAVA_HOME cd $HADOOP_HOME vim etc/hadoop/hadoop-env.sh # 將JAVA_HOME由本來${JAVA_HOME}換成具體途徑,這樣在集群環(huán)境中才不會(huì)出現(xiàn)問題 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
更新裝備文件
更新兩個(gè)文件:core-site.xml 和 hdfs-site.xml
#假如提示目錄不存在,則履行. /etc/profile,使環(huán)境變量收效 cd $HADOOP_HOME/etc/hadoop
更新core-site.xml ,增加特點(diǎn)
<configuration> <property> <name>fs.defaultFSname> <value>hdfs://localhost:9000value> property>
<property> <name>hadoop.tmp.dirname> <value>/opt/module/hadoop-2.6.5/data/tmpvalue> property> configuration>
更新 hdfs-site.xml,增加特點(diǎn):
<configuration> <property> <name>dfs.replicationname> <value>1value> property> configuration>
格局化文件結(jié)構(gòu)
hdfs namenode -format
發(fā)動(dòng)HDFS
然后發(fā)動(dòng) HDFS, 發(fā)動(dòng)分三個(gè)過程,分別發(fā)動(dòng) NameNode、DataNode 和 Secondary NameNode。
cd /usr/local/hadoop/ # 發(fā)動(dòng) sbin/start-dfs.sh # 檢查進(jìn)程 jps
到此為止,HDFS 看護(hù)進(jìn)程現(xiàn)已建立,因?yàn)?nbsp;HDFS 本身具備 HTTP 面板,咱們能夠經(jīng)過瀏覽器拜訪http://172.17.0.4:9870/來檢查 HDFS 面板以及詳細(xì)信息:
2.2.4 Hadoop測(cè)驗(yàn)
履行hadoop version指令,如能正常返回version信息表示裝置成功
運(yùn)轉(zhuǎn)一個(gè)hadoop 官方示例 - 單詞次數(shù)核算
# /hello 為輸入目錄; /hi 為輸出目錄,必須不存在 hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /hello /hi
2.2.5 HDFS 測(cè)驗(yàn)
指令 |
適用范圍 |
hadoop fs |
運(yùn)用范圍最廣,方針:可任何方針 |
hadoop dfs |
只HDFS文件體系相關(guān) |
hdfs fs |
只HDFS文件體系相關(guān)(包括與Local FS間的操作),現(xiàn)已Deprecated |
hdfs dfs |
只HDFS文件體系相關(guān),常用 |
示例
# 顯示根目錄 / 下的文件和子目錄,絕對(duì)途徑 hadoop fs -ls -R / # 新建文件夾,絕對(duì)途徑 hadoop fs -mkdir /hello # 上傳文件 hadoop fs -put hello.txt /hello/ # 下載文件 hadoop fs -get /hello/hello.txt # 輸出文件內(nèi)容 hadoop fs -cat /hello/hello.txt
2.3 切換本地HDFS到云上OSS-HDFS服務(wù)
2.3.1 創(chuàng)立OSS Bucket并注冊(cè)HDFS服務(wù)
-
聯(lián)絡(luò)技術(shù)支撐請(qǐng)求試用,運(yùn)用留意:
-
目前支撐華東1(杭州)、華東2(上海)、華南1(深圳)和華北2(北京)地域支撐敞開HDFS服務(wù)。
-
HDFS服務(wù)敞開后不支撐關(guān)閉,請(qǐng)慎重操作。
-
歸檔以及冷歸檔存儲(chǔ)類型Bucket不支撐敞開HDFS服務(wù)。
-
單擊Bucket列表,然后單擊創(chuàng)立Bucket。
-
在創(chuàng)立Bucket面板中,切換到支撐HDFS服務(wù)地域,挑選注冊(cè)HDFS服務(wù)
-
單擊確認(rèn)。
2.3.2 授權(quán)拜訪
-
授權(quán)服務(wù)端辦理已注冊(cè)HDFS服務(wù)的Bucket。首次運(yùn)用HDFS功用時(shí),需求先在RAM控制臺(tái)完結(jié)以下授權(quán),以便OSS服務(wù)賬號(hào)能夠辦理Bucket中的數(shù)據(jù)。
-
創(chuàng)立名為AliyunOSSDlsDefaultRole的人物。
-
登錄RAM控制臺(tái)。
-
在左邊導(dǎo)航欄,挑選身份辦理 > 人物。
-
單擊創(chuàng)立人物,挑選可信實(shí)體類型為阿里云服務(wù),單擊下一步。
-
人物類型挑選一般服務(wù)人物,人物稱號(hào)填寫為AliyunOSSDlsDefaultRole,挑選受信服務(wù)為方針存儲(chǔ)。
-
單擊完結(jié)。人物創(chuàng)立完結(jié)后,單擊關(guān)閉。
-
-
新建名為AliyunOSSDlsRolePolicy的自定義權(quán)限戰(zhàn)略。
-
在左邊導(dǎo)航欄,挑選權(quán)限辦理 > 權(quán)限戰(zhàn)略。
-
單擊創(chuàng)立權(quán)限戰(zhàn)略。
-
在新建自定義權(quán)限戰(zhàn)略頁(yè)面,填寫戰(zhàn)略稱號(hào)為AliyunOSSDlsRolePolicy,裝備方式挑選腳本裝備,并在戰(zhàn)略內(nèi)容中填寫以下權(quán)限戰(zhàn)略。
-
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "oss:ListObjects",
"Resource": [
"acs:oss:*:*:*" ]
},
{
"Effect": "Allow",
"Action": "oss:*",
"Resource": [
"acs:oss:*:*:*/.dlsdata",
"acs:oss:*:*:*/.dlsdata*" ]
}
]
}
-
單擊確認(rèn)。
-
為人物頒發(fā)自定義權(quán)限戰(zhàn)略。
-
在左邊導(dǎo)航欄,挑選身份辦理 > 人物。
-
單擊RAM人物AliyunOSSDlsDefaultRole右側(cè)的準(zhǔn)確授權(quán)。
-
在增加權(quán)限頁(yè)面,挑選權(quán)限類型為自定義戰(zhàn)略,輸入已創(chuàng)立的自定義權(quán)限戰(zhàn)略稱號(hào)AliyunOSSDlsRolePolicy。
-
單擊確認(rèn)。
-
-
授權(quán)RAM用戶拜訪已注冊(cè)HDFS服務(wù)的Bucket。假如您運(yùn)用服務(wù)人物(例如EMR服務(wù)人物AliyunEMRDefaultRole)拜訪已注冊(cè)HDFS服務(wù)的Bucket,請(qǐng)拜見上述為RAM用戶授權(quán)的過程完結(jié)服務(wù)人物授權(quán)。
-
創(chuàng)立RAM用戶。具體操作,請(qǐng)拜見創(chuàng)立RAM用戶。
-
創(chuàng)立自定義戰(zhàn)略,戰(zhàn)略內(nèi)容如下:
{
"Statement": [
{
"Effect": "Allow",
"Action": "oss:*",
"Resource": [
"acs:oss:*:*:*/.dlsdata",
"acs:oss:*:*:*/.dlsdata*" ]
},
{
"Effect": "Allow",
"Action": [
"oss:GetBucketInfo",
"oss:PostDataLakeStorageFileOperation" ],
"Resource": "*" }
],
"Version": "1" }
創(chuàng)立自定義戰(zhàn)略的具體操作,請(qǐng)拜見創(chuàng)立自定義權(quán)限戰(zhàn)略。
-
為RAM用戶授權(quán)已創(chuàng)立的自定義戰(zhàn)略。具體過程,請(qǐng)拜見為RAM用戶授權(quán)。
2.3.3 下載JindoSDK并裝備
下載最新的 tar.gz 包 jindosdk-x.x.x.tar.gz (下載頁(yè)面)。
# 切換到方針目錄 cd /usr/lib/ # 下載jdk 包 wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/4.1.0/jindosdk-4.1.0.tar.gz # 解壓 tar xzf jindosdk-4.1.0.tar.gz
裝備環(huán)境變量
# 切換到方針目錄 vim /etc/profile # 文件結(jié)尾增加裝備后保存 export JINDOSDK_HOME=/usr/lib/jindosdk-4.1.0 export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/* # 使裝備收效 . /etc/profile
裝備 OSS-HDFS 服務(wù)實(shí)現(xiàn)類及 Access Key,根本裝備方法如下,除此之外JindoSDK還支撐更多的 AccessKey 的裝備方法,概況參閱 JindoSDK Credential Provider 裝備。
cd $HADOOP_HOME/etc/hadoop
將 JindoSDK OSS 實(shí)現(xiàn)類裝備到 Hadoop 的core-site.xml中。
<configuration> <property> <name>fs.AbstractFileSystem.oss.implname> <value>com.aliyun.jindodata.oss.JindoOSSvalue> property> <property> <name>fs.oss.implname> <value>com.aliyun.jindodata.oss.JindoOssFileSystemvalue> property> configuration>
將已敞開 HDFS 服務(wù)的 Bucket 對(duì)應(yīng)的Access Key ID、Access Key Secret等預(yù)先裝備在 Hadoop 的core-site.xml中。
<configuration> <property> <name>fs.oss.accessKeyIdname> <value>xxxxvalue> property> <property> <name>fs.oss.accessKeySecretname> <value>xxxxvalue> property> configuration>
2.3.4 裝備 OSS-HDFS 服務(wù) Endpoint
拜訪 OSS Bucket 上 OSS-HDFS服務(wù)需求裝備 Endpoint(cn-xxx.oss-dls.aliyuncs.com),與 OSS 方針接口的 Endpoint(oss-cn-xxx.aliyuncs.com)不同。JindoSDK 會(huì)根據(jù)裝備的 Endpoint 拜訪 JindoFS 服務(wù) 或 OSS 方針接口。
運(yùn)用 JindoFS 服務(wù)時(shí),推薦拜訪途徑格局為:
oss://./
如: oss://dls-chenshi-test.cn-shanghai.oss-dls.aliyuncs.com/Test。
這種方法在拜訪途徑中包括 OSS-HDFS 服務(wù)的 Endpoint,JindoSDK 會(huì)根據(jù)途徑中的 Endpoint 拜訪對(duì)應(yīng)的 OSS-HDFS 服務(wù)接口。 JindoSDK 還支撐更多的 Endpoint 裝備方法,概況參閱JindoFS 服務(wù) Endpoint 裝備。
2.3.5 開始運(yùn)用
新建目錄
在JindoFS服務(wù)上創(chuàng)立目錄 用例: hdfs dfs -mkdir oss://./Test/subdir
hdfs dfs -mkdir oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/Test
新建文件
利用hdfs dfs -put指令上傳本地文件到JindoFS服務(wù)
用例:hdfs dfs -put oss://./Test
hdfs dfs -put /root/workspace/hello.txt oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/Test
檢查文件或許目錄信息
在文件或許目錄創(chuàng)立完之后,能夠檢查指定途徑下的文件/目錄信息。hdfs dfs沒有進(jìn)入某個(gè)目錄下的概念。在檢查目錄和文件的信息的時(shí)分需求給出文件/目錄的絕對(duì)途徑。 指令:ls 用例:hdfs dfs -ls oss://./Test
hdfs dfs -ls /root/workspace/hello.txt oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/Test
檢查文件的內(nèi)容
有時(shí)分咱們需求檢查一下在JindoFS服務(wù)文件的內(nèi)容。hdfs dfs指令支撐咱們將文件內(nèi)容打印在屏幕上。(請(qǐng)留意,文件內(nèi)容將會(huì)以純文本方式打印出來,假如文件進(jìn)行了特定格局的編碼,請(qǐng)運(yùn)用HDFS的JavaAPI將文件內(nèi)容讀取并進(jìn)行相應(yīng)的解碼獲取文件內(nèi)容) 用例:hdfs dfs -cat oss://./Test/helloworld.txt
hdfs dfs -cat /root/workspace/hello.txt oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/Test/hello.txt
仿制目錄/文件
有時(shí)分咱們需求將JindoFS服務(wù)的一個(gè)文件/目錄拷貝到另一個(gè)位置,并且堅(jiān)持源文件和目錄結(jié)構(gòu)和內(nèi)容不變。 用例:hdfs dfs -cp oss://./Test/subdir oss://./TestTarget/sudir2
移動(dòng)目錄/文件
在許多大數(shù)據(jù)處理的比如中,咱們會(huì)將文件寫入一個(gè)暫時(shí)目錄,然后將該目錄移動(dòng)到另一個(gè)位置作為終究成果。源文件和目錄結(jié)構(gòu)和內(nèi)容不做保存。下面的指令能夠完結(jié)這些操作。 用例:hdfs dfs -mv oss://./Test/subdir oss://./Test/subdir1
下載文件到本地文件體系
某些狀況下,咱們需求將OSS文件體系中的某些文件下載到本地,再進(jìn)行處理或許檢查內(nèi)容。這個(gè)能夠用下面的指令完結(jié)。 用例:hdfs dfs -get oss://./Test/helloworld.txt
刪去目錄/文件
在許多狀況下,咱們?cè)谕杲Y(jié)工作后,需求刪去在JindoFS服務(wù)上的某些暫時(shí)文件或許拋棄文件。這些能夠經(jīng)過下面的指令完結(jié)。 用例:hdfs dfs -rm oss://./Test/helloworld.txt
參閱案例
''' 運(yùn)用方法:拷貝本腳本到VPC內(nèi)ECS中目錄/root/workspace, 然后履行sh test_hdfs.sh,檢查成果是否報(bào)錯(cuò) ''' echo -e "\n\n創(chuàng)立目錄lz-test...." hdfs dfs -mkdir oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/lz-test echo -e "\n\n檢查根目錄...." hdfs dfs -ls oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/ echo -e "\n\n上傳文件test.txt...." echo "hello jack" >> test.txt hdfs dfs -put test.txt oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/lz-test/test.txt echo -e "\n\n刪去本地測(cè)驗(yàn)文件test.txt...." rm test.txt echo -e "\n\n檢查上傳到bucket的文件內(nèi)容...." hdfs dfs -cat oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/lz-test/test.txt echo -e "\n\n下載文件到本地...." hdfs dfs -get oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/lz-test/test.txt echo -e "\n\n檢查下載到本地的文件內(nèi)容...." cat test.txt echo -e "\n\n刪去本地測(cè)驗(yàn)文件...." rm test.txt echo -e "\n\n刪去測(cè)驗(yàn)?zāi)夸沴z-test...." hdfs dfs -rm -R oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/lz-test echo -e "\n\n檢查根目錄與子目錄...." hdfs dfs -ls -R oss://luanzhi-hdfs-test-hz.cn-hangzhou.oss-dls.aliyuncs.com/