HTTP 狀態(tài)消息
1193
2025-03-31
MRS HADOOP/SPARK 代碼訪問(wèn)OBS方式介紹
1????? 背景描述:
MRS樣例代碼沒(méi)有介紹如何訪問(wèn)OBS,在默認(rèn)情況下使用的文件系統(tǒng)都是HDFS;如果訪問(wèn)OBS需要添加一些配置,代碼使用過(guò)程中也有一些需要注意的地方
2????? 配置OBS相關(guān)參數(shù):
需要在客戶端配置文件core-site.xml里面添加以下參數(shù):
需要注意的是,此方式設(shè)置的aksk會(huì)明文暴露下文件中,謹(jǐn)慎使用
如果不想要明文顯示可以設(shè)置ECS代理,參考指導(dǎo)文檔
3????? 代碼指導(dǎo):
hadoop的文件系統(tǒng)對(duì)象是一個(gè)抽象類:org.apache.hadoop.fs.FileSystem
常用的獲取FileSystem的方式是:
FileSystem?fileSystem?=?FileSystem.get(conf);
此方法獲取到的文件系統(tǒng)為配置項(xiàng)“fs.defaultFS”指定的文件系統(tǒng)類型
如果我們需要的是訪問(wèn)OBS的文件系統(tǒng)則需要使用另一個(gè)方法來(lái)獲取FileSystem:
FileSystem?fileSystem?=?FileSystem.get(URI.create("obs://Bucket-Name/tmp"),conf);
此時(shí)獲取到的文件系統(tǒng)就是對(duì)應(yīng)OBS的文件系統(tǒng)
obs://Bucket-Name/tmp
如果地址是s3a開(kāi)頭,這文件系統(tǒng)是S3aFileSystem
如果地址是obs開(kāi)頭,這文件系統(tǒng)是OBSFileSystem
此處一般都是傳遞過(guò)來(lái)一個(gè)文件地址參數(shù),然后通過(guò)這個(gè)方法來(lái)自動(dòng)識(shí)別文件系統(tǒng)
以上是對(duì)于hdfs API操作OBS文件的連接方式
如果是MapReduce任務(wù)需要讀取/寫入OBS的文件,可以直接將”obs://Bucket-Name/tmp”這樣的地址傳入,代碼可以自動(dòng)識(shí)別到文件系統(tǒng)并獲取相應(yīng)的文件,代碼參考樣例代碼:
FileInputFormat.addInputPath(job,?new?Path(otherArgs[0])); FileOutputFormat.setOutputPath(job,?new?Path(otherArgs[1]));
如果是spark任務(wù)需要讀取/寫入OBS的文件,使用以下方法可以自動(dòng)識(shí)別到相應(yīng)的文件系統(tǒng):
textFile(args[0])–讀取文件
saveAsTextFile(args[1])–保存文件
saveAsHadoopFile(args[2])—指定格式保存文件
4????? 案例說(shuō)明
例如我們使用MapReduce的wordcount任務(wù):
訪問(wèn)hdfs上的文件進(jìn)行計(jì)算啟動(dòng)命令:
yarn?jar?hadoop-mapreduce-examples-*.jar?wordcount?/tmp/input?/tmp/output
如果需要訪問(wèn)OBS,則可以改成:
yarn?jar?hadoop-mapreduce-examples-*.jar?wordcount?obs://Bucket-Name/tmp/input?obs://Bucket-Name/tmp/output
spark任務(wù)也是類似的操作,以spark自帶樣例為例:
spark-submit?--master?yarn?--deploy-mode?client?--class?org.apache.spark.examples.JavaWordCount?spark-examples_*.jar?/tmp/input
如果需要訪問(wèn)OBS,則可以改成:
spark-submit?--master?yarn?--deploy-mode?client?--class?org.apache.spark.examples.JavaWordCount?spark-examples_*.jar?obs://Bucket-Name/tmp/input
Hadoop mrs EI企業(yè)智能
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。