這兩天 資本家突然對(duì)Ozone感興趣 讓使用Java實(shí)現(xiàn)上傳下載
成都創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蛟河做網(wǎng)站,已為上家服務(wù),為蛟河各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108我就找各種資料 找.....找 找了一個(gè)月??
Documentation for Apache Hadoop Ozone
上面這個(gè)連接是 Ozone官網(wǎng)的 里面有命令行的指令 和javaAPI的實(shí)現(xiàn)? 但是只要這個(gè)是實(shí)現(xiàn)不了的 因?yàn)楣俜經(jīng)]有給你提供 要引入POM和 類似于YML的配置 我就各種找人問(wèn) 終于有個(gè)大大大神 他也沒用過(guò) 但是架不住人家智商高 現(xiàn)學(xué) 。。。。。記得設(shè)置解除文件大小上傳限制 不然會(huì)出錯(cuò)
可以去我另一篇文章看?
(30條消息) The field file exceeds its maximum permitted size of 1048576 bytes. 上傳文件到達(dá)限制 配置YML后無(wú)效_LogCNXB的博客-博客https://blog.csdn.net/LogCNXB/article/details/127917697
org.apache.hadoop hadoop-ozone-client1.1.0
我是在本地搭建的docker 版本的Ozone 直接拉取的官方鏡像
不廢話 上代碼?
思路 首先你要有 一個(gè) Ozone 當(dāng)然我是拉取的官方docker的 沒有廢啥力氣
然后需要先寫一個(gè) 上傳到WEB服務(wù)器的 文件上傳接口 (這個(gè)你們可以去csdn或者別的論壇搜一下都會(huì)有)
//要存儲(chǔ)的路徑如果你要在本地測(cè)試就用你本地的盤路徑 如果是liunx就用liunx的
private String fileSavePath="E:\\";
public String upload(MultipartFile uploadFile, HttpServletRequest req,String 創(chuàng)建卷,String 創(chuàng)建桶,String 創(chuàng)建快) throws IOException {
String filePath = "";
String format = sdf.format(new Date());
File folder = new File(fileSavePath + format);
if (!folder.isDirectory()) {
folder.mkdirs();
String oldName = uploadFile.getOriginalFilename();
String newName = UUID.randomUUID().toString() +
oldName.substring(oldName.lastIndexOf("."), oldName.length());
try {
uploadFile.transferTo(new File(folder, newName));
filePath = fileSavePath+ format + newName;
} catch (IOException e) {
e.printStackTrace();
return "上傳失敗! ";
}
}
String oldName = uploadFile.getOriginalFilename();
String newName = UUID.randomUUID().toString() +
oldName.substring(oldName.lastIndexOf("."), oldName.length());
try {
uploadFile.transferTo(new File(folder, newName));
filePath = fileSavePath+ format + newName;
} catch (IOException e) {
e.printStackTrace();
return "上傳失敗! ";
}
OzoneConfig ozoneConfig = new OzoneConfig();
ozoneConfig.Ozonedu(filePath,創(chuàng)建卷,創(chuàng)建桶,創(chuàng)建快);
return filePath;
}
接下來(lái)是官方給的javaAPI 其實(shí)這個(gè)上傳的代碼是可以直接拿來(lái)用的 我主要是是卡住在 可移動(dòng)配置
不知道這個(gè)東西是什么? 記住一定要是9862接口哦 這個(gè)是Ozone指定的 具體我也不知道為什么
可移動(dòng)配置?
new一個(gè)?OzoneConfiguration 就可以啦 不要問(wèn)為什么 因?yàn)槲乙仓皇菚?huì)用。。。
// 從文件中讀取數(shù)據(jù),需要用戶提供此函數(shù)
byte [] videoData = readFile("intro.mp4");??
// 創(chuàng)建客戶端對(duì)象
OzoneClient ozClient = OzoneClientFactory.getRpcClient(服務(wù)器ip,9862接口,可移動(dòng)配置);
// 通過(guò)客戶端對(duì)象獲取 ObjectStore 的引用
ObjectStore objectStore = ozClient.getObjectStore();
// 創(chuàng)建用于存儲(chǔ)數(shù)據(jù)的 assets 卷
// 此處創(chuàng)建的卷采用默認(rèn)參數(shù)
objectStore.createVolume("assets");
// 驗(yàn)證卷是否已創(chuàng)建
OzoneVolume assets = objectStore.getVolume("assets");
// 創(chuàng)建名為 videos 的桶
assets.createBucket("videos");
OzoneBucket video = assets.getBucket("videos");
// 從文件中讀取數(shù)據(jù),需要用戶提供此函數(shù) 放你上傳文件的路徑哦 也就是上面上傳到WEB服務(wù)器的filePath
byte [] videoData = readFile(path);
// 創(chuàng)建輸出流并寫數(shù)據(jù)
OzoneOutputStream videoStream = video.createKey("intro.mp4", 1048576);
videoStream.write(videoData);
// 寫操作完成之后關(guān)閉輸出流
videoStream.close();
// 從文件中讀取數(shù)據(jù),需要用戶提供此函數(shù)
byte [] videoData = readFile("intro.mp4");??
這個(gè)地方是需要你們自己去寫一個(gè)文件轉(zhuǎn)為 字節(jié)流的轉(zhuǎn)換方法哦 但是為了方便你們 我就直接貼在下面了
public static byte[] readFile(String path)
{
try {
FileInputStream in =new FileInputStream(new File(path));
byte[] data=new byte[in.available()];
in.read(data);
in.close();
return data;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
到此上傳就可以了
可以利用 官方給的命令行去查看你相應(yīng)的 卷桶快 是否創(chuàng)建 如果創(chuàng)建那就證明是可以的
上傳 = 文件上傳到WEB -----轉(zhuǎn)字節(jié)流------存儲(chǔ)到Ozone
下載的話我就不貼了 和上傳一樣的 一樣的配置Ozone就可以
下載 = 讀取Ozone ------字節(jié)流轉(zhuǎn)文件 -------將文件再通過(guò)下載接口下載到本地 (字節(jié)流轉(zhuǎn)文件后可以指定到虛擬機(jī)某個(gè)路徑下 你可以寫WEB服務(wù)器的下載接口 根據(jù)路徑下載就可以)
上傳和下載的時(shí)候 卷 桶 不可重復(fù)
新人寫文章 多多指教 絕對(duì)原創(chuàng)哦 因?yàn)槲耶?dāng)時(shí)做的時(shí)候搜遍了各大論壇 都沒有java集成Ozone
未經(jīng)本人通知禁止搬運(yùn)哦?
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)站題目:java集成HadoopOzone簡(jiǎn)單使用-創(chuàng)新互聯(lián)
路徑分享:http://vcdvsql.cn/article40/cdspeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)頁(yè)設(shè)計(jì)公司、軟件開發(fā)、域名注冊(cè)、網(wǎng)站收錄、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容