java集成HadoopOzone簡(jiǎn)單使用-創(chuàng)新互聯(lián)

這兩天 資本家突然對(duì)Ozone感興趣 讓使用Java實(shí)現(xiàn)上傳下載

成都創(chuàng)新互聯(lián)于2013年開(kāi)始,是專(zhuān)業(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)系電話(huà):18982081108

我就找各種資料 找.....找 找了一個(gè)月??

Documentation for Apache Hadoop Ozone

上面這個(gè)連接是 Ozone官網(wǎng)的 里面有命令行的指令 和javaAPI的實(shí)現(xiàn)? 但是只要這個(gè)是實(shí)現(xiàn)不了的 因?yàn)楣俜經(jīng)]有給你提供 要引入POM和 類(lèi)似于YML的配置 我就各種找人問(wèn) 終于有個(gè)大大大神 他也沒(méi)用過(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.hadoophadoop-ozone-client1.1.0

我是在本地搭建的docker 版本的Ozone 直接拉取的官方鏡像

不廢話(huà) 上代碼?

思路 首先你要有 一個(gè) Ozone 當(dāng)然我是拉取的官方docker的 沒(méi)有廢啥力氣

然后需要先寫(xiě)一個(gè) 上傳到WEB服務(wù)器的 文件上傳接口 (這個(gè)你們可以去csdn或者別的論壇搜一下都會(huì)有)

//要存儲(chǔ)的路徑如果你要在本地測(cè)試就用你本地的盤(pán)路徑 如果是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ù),需要用戶(hù)提供此函數(shù)
byte [] videoData = readFile("intro.mp4");??

// 創(chuàng)建客戶(hù)端對(duì)象
OzoneClient ozClient = OzoneClientFactory.getRpcClient(服務(wù)器ip,9862接口,可移動(dòng)配置);

// 通過(guò)客戶(hù)端對(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ù),需要用戶(hù)提供此函數(shù) 放你上傳文件的路徑哦 也就是上面上傳到WEB服務(wù)器的filePath
byte [] videoData = readFile(path);

// 創(chuàng)建輸出流并寫(xiě)數(shù)據(jù)
OzoneOutputStream videoStream = video.createKey("intro.mp4", 1048576);
videoStream.write(videoData);

// 寫(xiě)操作完成之后關(guān)閉輸出流
videoStream.close();

// 從文件中讀取數(shù)據(jù),需要用戶(hù)提供此函數(shù)
byte [] videoData = readFile("intro.mp4");??

這個(gè)地方是需要你們自己去寫(xiě)一個(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

下載的話(huà)我就不貼了 和上傳一樣的 一樣的配置Ozone就可以

下載 = 讀取Ozone ------字節(jié)流轉(zhuǎn)文件 -------將文件再通過(guò)下載接口下載到本地 (字節(jié)流轉(zhuǎn)文件后可以指定到虛擬機(jī)某個(gè)路徑下 你可以寫(xiě)WEB服務(wù)器的下載接口 根據(jù)路徑下載就可以)

上傳和下載的時(shí)候 卷 桶 不可重復(fù)

新人寫(xiě)文章 多多指教 絕對(duì)原創(chuàng)哦 因?yàn)槲耶?dāng)時(shí)做的時(shí)候搜遍了各大論壇 都沒(méi)有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://muchs.cn/article40/cdspeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)頁(yè)設(shè)計(jì)公司軟件開(kāi)發(fā)、域名注冊(cè)、網(wǎng)站收錄、用戶(hù)體驗(yàn)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)