搭建基于云的 Byzer (白澤) 開(kāi)發(fā)環(huán)境

我有兩臺(tái)電腦,Ubuntu 20.04 主力開(kāi)發(fā)環(huán)境,MacBookPro 是備用機(jī)。Ubuntu 開(kāi)發(fā)的白澤 Notebook 和數(shù)據(jù)如何自動(dòng)同步到 macbook 呢?思考了下,Notebook 保存在 MySQL,數(shù)據(jù)保存在本機(jī)目錄。MySQL 可以使用云服務(wù),本機(jī)目錄的數(shù)據(jù)使用 JuiceFS 實(shí)現(xiàn)自動(dòng)同步。說(shuō)干就干,開(kāi)搞。

MySQL 云服務(wù)

我選擇了青云MySQL 云服務(wù),開(kāi)通公網(wǎng)IP,設(shè)置防火墻規(guī)則。這事花點(diǎn)錢(qián)就行,沒(méi)有難度。

JuiceFS

JuiceFS 搭建有點(diǎn)繁瑣,需要在 ubuntu 和 Mac 分別配置,這里介紹下。JuiceFS 需要 1) 元數(shù)據(jù)存儲(chǔ),使用剛申請(qǐng)的 MySQL 云服務(wù)。2) 云存儲(chǔ),七牛云提供了 10 GB 免費(fèi)空間,開(kāi)發(fā)夠用了。

Ubuntu 20

  1. 下載安裝 JuiceFS
 wget https://github.com/juicedata/juicefs/releases/download/v0.17.5/juicefs-0.17.5-linux-amd64.tar.gz
 tar -xf juicefs-0.17.5-linux-amd64.tar.gz 
 sudo install juicefs /usr/local/bin
  1. 創(chuàng)建 MySQL 元數(shù)據(jù)庫(kù)

登錄青云 MySQL ,建庫(kù),作為 JuiceFS 元數(shù)據(jù)庫(kù)。

create database juicefs charset utf8mb4;

  1. 創(chuàng)建 JuiceFS 文件系統(tǒng)

在 ubuntu 命令行執(zhí)行。這里 zjcfs 是juicefs 的文件系統(tǒng)名稱,可以換成你喜歡的。七牛云存儲(chǔ)的 URL AK SK 等請(qǐng)參考這篇文檔

juicefs format \
    --storage qiniu \
    --bucket https://<七牛云存儲(chǔ)URL> \
    --access-key <七牛云存儲(chǔ) AK> \
    --secret-key <七牛云存儲(chǔ) SK> \
    "mysql://<MySQL JDBC連接串>/juicefs" \
    zjcjfs

執(zhí)行后,juicefs 會(huì)提示 MySQL 連接延遲比較高,作為開(kāi)發(fā)環(huán)境,實(shí)際體驗(yàn)下來(lái),可以接受。生產(chǎn)環(huán)境下,建議優(yōu)化。

  1. 掛載

sudo juicefs mount -d "mysql://<MySQL JDBC連接串>/juicefs" /work/juicefs
我希望啟動(dòng)Linux 自動(dòng)掛載,所以修改 /etc/fstab

sudo cp /usr/local/bin/juicefs /sbin/mount.juicefs
sudo vi /etc/fstab
mysql://<MySQL JDBC 連接串>/juicefs    /work/juicefs    juicefs    _netdev,max-uploads=50,writeback,cache-size=512000     0  0

執(zhí)行 juicefs info /work/juicefs, 可以看到j(luò)uicefs 自動(dòng)同步 /work/juicefs 。

這樣,申請(qǐng)的七牛云存儲(chǔ)掛載到本機(jī) /work/juicefs目錄了。

  1. 配置 byzer-lang 和 byzer-notebook

對(duì)于byzer-lang,我們修改 deltalake 主目錄 streaming.datalake.path /work/juicefs/byzer-lang-1/delta

對(duì)于 byzer-notebook, 修改 notebook.propertiesnotebook.database 開(kāi)頭的所有配置,使用 青云 MySQL 云服務(wù)。 byzer-notebook 的參數(shù)notebook.user.home指定了用戶上傳的數(shù)據(jù)保存的目錄,設(shè)置為/work/juicefs/byzer-lang-1/users`.

啟動(dòng) byzer-lang 和 byzer-notebook, 分別上傳一份數(shù)據(jù),創(chuàng)建一個(gè) notebook。

MacOS

重復(fù)一遍 Ubuntu 20 的操作步驟。有 3 點(diǎn)不同,需要注意。

  1. 配置 JuiceFS 時(shí),先安裝 MacFuse.

下載地址為
https://github.com/osxfuse/osxfuse/releases/download/macfuse-4.1.2/macfuse-4.1.2.dmg

  1. MacOS 的 根目錄 / 是只讀的,所以 juicefs 掛載到 /Users/jiachuan.zhu/juicefs

  2. 開(kāi)機(jī)自動(dòng)掛載JuiceFS 也不同。命令如下:

# zjcjfs 可以改為你的名字
touch ~/Library/LaunchAgents/io.juicefs.zjcjfs.plist
# io.juicefs.zjc.plist 添加如下內(nèi)容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
        <string>io.juicefs.zjcjfs</string>
        <key>ProgramArguments</key>
  <array>
    <string>/usr/local/bin/juicefs</string>
    <string>mount</string>
    <string>mysql://<MySQL JDBC 連接串>/juicefs</string>
    <string>/Users/jiachuan.zhu/juicefs</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  </dict>
</plist>

JucieFS 搞定后,修改 Byzer-lang 和 byzer-notebook 參數(shù),啟動(dòng)??梢园l(fā)現(xiàn),Ubuntu 的 Notebook 和數(shù)據(jù)自動(dòng)同步到了 Mac ! 大功告成。整個(gè)過(guò)程花了約 2 - 3 個(gè)小時(shí),但是多臺(tái)電腦之間不需要手工拷貝數(shù)據(jù)了; 假如 1 臺(tái)電腦的崩潰了,數(shù)據(jù)和 notebook 還在,這點(diǎn)時(shí)間還是很值的!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容