前言
最近由于工作需要,要部署一套ozone。我自己對hadoop這套體系不是很熟悉,所以過程磕磕碰碰,好不容易勉強搭起來,所以記錄一下部署方式
準備
三臺主機,主機均已安裝jdk、hdfs,相關的安裝配置就不另外寫了,網上很多教程。
本次安裝部署版本為當前最新的ozone-1.3.0版
部署步驟
1、ozone官網下載安裝包,ozone有多種安裝方式(docker、二進制包、源碼編譯等)。這里用二進制包安裝方式。下載地址:Apache Ozone。這里下載了1.3.0版。ozone-1.3.0.tar.gz
2、上傳到服務器:
部分服務器沒有szrz命令的,可以通過scp命令進行復制:
scp?ozone-1.3.0.tar.gz?username@remote_ip:~/
解壓:
tar?zxvf?ozone-1.3.0.tar.gz
3、生成配置文件
進入ozone目錄
cd??ozone
生成配置文件ozone-site.xml到etc/hadoop目錄下
bin/ozone?genconf?etc/hadoop
PS:如果生成配置文件前/etc/hadoop已存在ozone-site.xml,則先行刪除。
4、規劃各機器職責并完成配置文件的配置
規劃ozone的Ozone?Manager(OM)、Storage?Container?Manager(SCM)、Datanodes服務分別部署在哪些機器上。假設在a主機上啟動OM、SCM服務,a、b、c上啟動Datanodes服務。
在a、b、c主機上創建元數據存儲文件夾
mkdir?-p?自定義目錄/ozonedata/meta
在a、b、c主機上分別創建數據存儲文件夾
mkdir?-p?自定義目錄/ozonedata/data
配置etc/hadoop/ozone-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration><property><name>ozone.om.address</name><value>A主機ip</value><tag>OM, REQUIRED</tag></property><property><name>ozone.metadata.dirs</name><value>用戶目錄/ozonedata/meta</value><tag>OZONE, OM, SCM, CONTAINER, STORAGE, REQUIRED</tag></property><property><name>ozone.scm.client.address</name><value>A主機ip:9860</value><tag>OZONE, SCM, REQUIRED</tag></property><property><name>ozone.scm.names</name><value>A主機ip</value><tag>OZONE, REQUIRED</tag></property><property><name>ozone.scm.datanode.id.dir</name><value>用戶目錄/ozonedata/data</value></property><property><name>ozone.enabled</name><value>true</value></property><property><name>ozone.scm.datanode.id</name><value>用戶目錄/ozonedata/data/datanode.id</value></property>
</configuration>
配置etc/hadoop/core-site.xml
<configuration><property><name>fs.AbstractFileSystem.o3fs.impl</name><value>org.apache.hadoop.fs.ozone.OzFs</value></property><property><name>fs.defaultFS</name><value>o3fs://bucket.volume</value></property>
</configuration>
在A主機上啟動OM、SCM和datanode
到ozone-1.3.0/bin目錄下執行
./ozone?--daemon?start?scm
./ozone?--daemon?start?om
./ozone?--daemon?start?datanode
在B、C主機下啟動datanode
到ozone-1.3.0/bin目錄下執行
./ozone?--daemon?start?datanode
可以到ozone-1.3.0/logs目錄下查看是否啟動成功。由于datanode使用ratis協議,所以至少要部署3個節點,否則寫入數據的時候會報:
INTERNAL_ERROR?Allocated?0?blocks.?Requested?1?blocks
驗證
嘗試創建一個卷(volume):
./ozone?sh?volume?create?volume
在卷下面創建一個桶(bucket):
./ozone?sh?bucket?create?volume/bucket
在桶下面往key寫入一個文件:
./ozone?sh?key?put?volume/bucket/mykey1?用戶目錄/ozone-1.3.0/etc/hadoop/ozone-site.xml
之后通過查看桶下面的key,以及myKey1下的文件內容,驗證是否寫入成功
./ozone?sh?key?ls?volume/bucket
./ozone?sh?key?cat?volume/bucket/mykey1
小結
本文主要介紹了ozone的基本部署。ozone還有很多高可用、安全性等等的配置值得深入研究,因為筆者還沒有需要使用,所以暫時沒有去研究,有興趣的讀者也可以參考官網文檔:https://ozone.apache.org/docs/1.3.0/zh/index.html
?