美文网首页Byzer 干货教学
搭建基于云的 Byzer (白泽) 开发环境

搭建基于云的 Byzer (白泽) 开发环境

作者: 你的样子999 | 来源:发表于2022-03-27 17:12 被阅读0次

    我有两台电脑,Ubuntu 20.04 主力开发环境,MacBookPro 是备用机。Ubuntu 开发的白泽 Notebook 和数据如何自动同步到 macbook 呢?思考了下,Notebook 保存在 MySQL,数据保存在本机目录。MySQL 可以使用云服务,本机目录的数据使用 JuiceFS 实现自动同步。说干就干,开搞。

    MySQL 云服务

    我选择了青云MySQL 云服务,开通公网IP,设置防火墙规则。这事花点钱就行,没有难度。

    JuiceFS

    JuiceFS 搭建有点繁琐,需要在 ubuntu 和 Mac 分别配置,这里介绍下。JuiceFS 需要 1) 元数据存储,使用刚申请的 MySQL 云服务。2) 云存储,七牛云提供了 10 GB 免费空间,开发够用了。

    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. 创建 MySQL 元数据库

    登录青云 MySQL ,建库,作为 JuiceFS 元数据库。

    create database juicefs charset utf8mb4;

    1. 创建 JuiceFS 文件系统

    在 ubuntu 命令行执行。这里 zjcfs 是juicefs 的文件系统名称,可以换成你喜欢的。七牛云存储的 URL AK SK 等请参考这篇文档

    juicefs format \
        --storage qiniu \
        --bucket https://<七牛云存储URL> \
        --access-key <七牛云存储 AK> \
        --secret-key <七牛云存储 SK> \
        "mysql://<MySQL JDBC连接串>/juicefs" \
        zjcjfs
    

    执行后,juicefs 会提示 MySQL 连接延迟比较高,作为开发环境,实际体验下来,可以接受。生产环境下,建议优化。

    1. 挂载

    sudo juicefs mount -d "mysql://<MySQL JDBC连接串>/juicefs" /work/juicefs
    我希望启动Linux 自动挂载,所以修改 /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
    

    执行 juicefs info /work/juicefs, 可以看到juicefs 自动同步 /work/juicefs

    这样,申请的七牛云存储挂载到本机 /work/juicefs目录了。

    1. 配置 byzer-lang 和 byzer-notebook

    对于byzer-lang,我们修改 deltalake 主目录 streaming.datalake.path /work/juicefs/byzer-lang-1/delta

    对于 byzer-notebook, 修改 notebook.propertiesnotebook.database 开头的所有配置,使用 青云 MySQL 云服务。 byzer-notebook 的参数notebook.user.home指定了用户上传的数据保存的目录,设置为/work/juicefs/byzer-lang-1/users`.

    启动 byzer-lang 和 byzer-notebook, 分别上传一份数据,创建一个 notebook。

    MacOS

    重复一遍 Ubuntu 20 的操作步骤。有 3 点不同,需要注意。

    1. 配置 JuiceFS 时,先安装 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. 开机自动挂载JuiceFS 也不同。命令如下:

    # zjcjfs 可以改为你的名字
    touch ~/Library/LaunchAgents/io.juicefs.zjcjfs.plist
    # io.juicefs.zjc.plist 添加如下内容
    <?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 参数,启动。可以发现,Ubuntu 的 Notebook 和数据自动同步到了 Mac ! 大功告成。整个过程花了约 2 - 3 个小时,但是多台电脑之间不需要手工拷贝数据了; 假如 1 台电脑的崩溃了,数据和 notebook 还在,这点时间还是很值的!

    相关文章

      网友评论

        本文标题:搭建基于云的 Byzer (白泽) 开发环境

        本文链接:https://www.haomeiwen.com/subject/vbdyjrtx.html