ラベル Jupyter の投稿を表示しています。 すべての投稿を表示
ラベル Jupyter の投稿を表示しています。 すべての投稿を表示

2023年12月26日火曜日

GPU無しでStreamDiffusionが実行できるJupyterLabをインストールする(Ubuntu 22.04)

StreamDiffusionで高速にAI画像を生成することができます。
JupyterLab上でStreamDiffusionをインストールするには以下の手順を実行します。

1.pipenvのインストール
sudo apt-get -y install python3-pip python3-distutils python3-dev python3-testresources

python3 -m pip install --user pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.profile

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.profile

source ~/.profile

2. Jupyterのインストール
sudo mkdir -p /mnt/data/jupyter
※パスは適宜変更してください

sudo chown ubuntu:ubuntu /mnt/data/jupyter
※ユーザ名・グループ名は適宜変更してください

cd /mnt/data/jupyter

pipenv --python 3


pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

3. Dream Diffusionのインストール
sudo apt-get -y install git

git clone https://github.com/cumulo-autumn/StreamDiffusion.git

cat << EOF >> Pipfile
[[source]]
url = "https://download.pytorch.org/whl/cu121"
verify_ssl = false
name = "pytorch"
EOF

pipenv install torch==2.1.0 torchvision==0.16.0 xformers --index=pytorch

pipenv install git+https://github.com/cumulo-autumn/StreamDiffusion.git@main#egg=streamdiffusion[tensorrt]

pipenv install accelerate

4. モデルのダウンロード
cd /mnt/data/jupyter/StreamDiffusion/models/Model

wget -4 https://huggingface.co/KBlueLeaf/kohaku-v2.1/resolve/main/kohaku-v2.1.safetensors
※必要に応じて他のモデルもダウンロードしてください。

5. Jupyter Labをサービスとして登録
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
Environment=HF_HOME=/mnt/data/jupyter/StreamDiffusion/models/Model
ExecStart=/mnt/data/jupyter/.venv/bin/jupyter lab --port 8080 --ip=0.0.0.0 --allow-root --NotebookApp.token='jupyter'
User=ubuntu
Group=ubuntu
WorkingDirectory=/mnt/data/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
※ディレクトリ、ユーザ、トークンは適宜変更してください

sudo systemctl enable jupyter

sudo systemctl start jupyter

6. ブラウザでJupyterにアクセスしてNotebookに以下のコードを貼り付けます。
http://{Jupyterをインストールしたホスト}:8080/lab?token=jupyter

Notebookに貼り付けるコードは以下です。デバイスにCPUを指定して、GPUなしのマシンでも画像を生成することができます。

import sys
sys.path.append("/mnt/data/jupyter/StreamDiffusion")

import torch
from utils.wrapper import StreamDiffusionWrapper

# モデル
model_id_or_path = "/mnt/data/jupyter/StreamDiffusion/models/Model/kohaku-v2.1.safetensors"
# 画像サイズ
width = 512
height = 512
# seed
seed = 2
# プロンプト
prompt="1girl and 1dog walking riverside under blue sky"
negative_prompt=""

stream = StreamDiffusionWrapper(
    model_id_or_path=model_id_or_path,
    t_index_list=[0, 16, 32, 45],
    frame_buffer_size=1,
    width=width,
    height=height,
    warmup=10,
    acceleration="none",
    mode="txt2img",
    use_denoising_batch=False,
    cfg_type="none",
    seed=seed,
    device="cpu",
    dtype=torch.float32,
)

stream.prepare(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=50,
)

for _ in range(stream.batch_size - 1):
    stream()
output_image = stream()
output_image

実行結果

2023年1月22日日曜日

JupyterLab AppをAlmaLinux 9/Rocky Linux 9にインストールする

JupyterLab AppでJupyterLabをDesktopアプリケーションとして実行できるようになります。

〇JupyterLab Appの画面(AlmaLinux 9)

〇JupyterLab Appの画面(Rocky Linux 9)

インストール方法

以下のコマンドを実行します。
wget https://github.com/jupyterlab/jupyterlab-desktop/releases/download/v3.5.0-1/JupyterLab-Setup-Fedora.rpm

sudo dnf -y install ./JupyterLab-Setup-Fedora.rpm

関連情報

・JupyterLab Appのgithubリポジトリ
https://github.com/jupyterlab/jupyterlab_app

2022年4月10日日曜日

Microk8sでPyMySQLとipython-sqlをインストールしたJupyterLabをデプロイする

Microk8sでPyMySQLとipython-sqlをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install -c anaconda pymysql -y
conda install -c conda-forge ipython-sql -y
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

microk8s kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

microk8s kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_TOKEN
          value: "jupyter"
        - name: DOCKER_STACKS_JUPYTER_CMD
          value: "lab"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

microk8s kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

microk8s kubectl apply -f ./jupyter-service.yml

6. 動作確認
ブラウザからhttp://<ホスト名:8080/?token=jupyter にアクセスします。
ipython-sqlをインストールしているのでSQLマジックセルでSQLを実行できるか確認します。
以下のusername, password, dbhost, dbnameを書き換えて、MariaDBデータベースに接続/実行確認します。
%load_ext sql
dsl = 'mysql+pymysql://username:password@dbhost:3306/dbname'
%sql $dsl
%%sql
select version();

2022年4月4日月曜日

Microk8sで世界銀行のデータを取得できるwbdataをインストールしたJupyterLabをデプロイする

Microk8sで世界銀行のデータを取得できるwbdataをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
pip install -U wbdata
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

microk8s kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

microk8s kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_TOKEN
          value: "jupyter"
        - name: DOCKER_STACKS_JUPYTER_CMD
          value: "lab"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

microk8s kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

microk8s kubectl apply -f ./jupyter-service.yml

6. 動作確認
以下の記事を参考にして、wbdataの動作を確認します。
Jupyterとwbdataで世界銀行の人口データから上位20国を棒グラフ表示する

2022年3月23日水曜日

Jupyter・mplfinace・yahoo_finance_api2を使用して、米国株価・日本株価・通貨レートをローソク足で描画する

Jupyter・mplfinace・yahoo_finance_api2を使用して、米国株価・日本株価・通貨レートをローソク足で描画するには、以下の手順を実行します

実行手順

1. パッケージの導入
Jupyterがインストールされている仮想環境に以下のコマンドで、mplfinanceとyahoo_finance_api2を導入します(pipenvの場合)。
pipenv install mplfinance

pipenv install yahoo_finance_api2
※依存関係でインストールできない場合は、以下のコマンドでインストールしてみてください。
pipenv install --skip-lock mplfinance

pipenv install --skip-lock yahoo_finance_api2

2. ノートブックに以下のサンプルコードを張り付けて実行するとUSDJPY通貨レートが1時間足で取得できます(Shareの引数で通貨ペアに=Xを付加します)。Shareで"AAPL"などのストックコードを入れると米国株価、"7074.T"(任天堂)のように、銘柄コードに「.T」をつけると日本株のデータが取得できます。

from yahoo_finance_api2 import share
from yahoo_finance_api2.exceptions import YahooFinanceError
import datetime as datetime
import pandas as pd
import mplfinance as mpf

my_share = share.Share('USDJPY=X')
result = my_share.get_historical(share.PERIOD_TYPE_DAY,
  3,
  share.FREQUENCY_TYPE_HOUR,
  1)
df = pd.DataFrame(result)
# JSTへ変換
df["jst"] = pd.to_datetime(df.timestamp, unit="ms") + datetime.timedelta(hours=9)

df2 = pd.DataFrame(df, columns=['jst', 'open', 'high', 'low', 'close'])
df2 = df2.set_index("jst")

# 色の指定
mc = mpf.make_marketcolors(up='#049DBF', down='#D93D4A', 
    edge='#F2CED1', wick={'up':'#049DBF', 'down':'#D93D4A'})
cs  = mpf.make_mpf_style(marketcolors=mc, gridcolor="lightgray")
mpf.plot(df2,type='candle', style=cs)

〇実行画面

関連情報

・mplfinanceの他の情報は以下のまとめページを参照してください。
mplfinanceまとめ

・mplfinanceのgithubリポジトリ
https://github.com/matplotlib/mplfinance

2022年3月11日金曜日

Microk8sでローソク足グラフを描画できるmplfinanceをインストールしたJupyterLabをデプロイする

Microk8sでローソク足グラフを描画できるmplfinanceをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install -c conda-forge mplfinance
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

microk8s kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

microk8s kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_TOKEN
          value: "jupyter"
        - name: DOCKER_STACKS_JUPYTER_CMD
          value: "lab"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

microk8s kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

microk8s kubectl apply -f ./jupyter-service.yml

6. 動作確認
以下のページを参考にして、mplfinanceの動作を確認します。
mplfinanceのロウソク足チャートにボリュームも表示する

関連情報

・mplfinanceに関する他の情報は以下のまとめページを参照してください。
mplfinanceまとめ

2022年3月10日木曜日

Microk8sでpsycopg2とipython-sqlをインストールしたJupyterLabをデプロイする

Microk8sでpsycopg2とipython-sqlをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install psycopg2 -y
conda install -c conda-forge ipython-sql -y
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - `hostname`
EOF
※`hostname`は今ログオンしているMicrok8sがインストールされているホスト名になります。適宜変更してください。
microk8s kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

microk8s kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

microk8s kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_TOKEN
          value: "jupyter"
        - name: DOCKER_STACKS_JUPYTER_CMD
          value: "lab"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

microk8s kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  type: LoadBalancer
  externalIPs:
  - xxx.xxx.xxx.xxx # 外部からアクセスできるMicrok8sをインストールしたホストのIPを設定します。
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

microk8s kubectl apply -f ./jupyter-service.yml

6. 動作確認
ブラウザからhttp://<ホスト名またはIP>:8080/?token=jupyter にアクセスします。
ipython-sqlをインストールしているのでSQLマジックセルでSQLを実行できるか確認します。
以下のusername, password, dbhost, dbnameを書き換えて、PostgreSQLデータベースに接続/実行確認します。
%load_ext sql
dsl = 'postgresql://username:password@dbhost:5432/dbname'
%sql $dsl
%%sql
select * from pg_database;

2022年2月19日土曜日

Minikubeでローソク足グラフを描画できるmplfinanceをインストールしたJupyterLabをデプロイする

Minikubeでローソク足グラフを描画できるmplfinanceをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install -c conda-forge mplfinance
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_ENABLE_LAB
          value: "1"
        - name: JUPYTER_TOKEN
          value: "jupyter"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

kubectl apply -f ./jupyter-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/jupyter-service 8080:8080
ブラウザからhttp://<ホスト名:8080/?token=jupyter にアクセスします

7. 動作確認
以下の記事を参考にして、mplfinanceの動作を確認します。
mplfinanceのロウソク足チャートにボリュームも表示する

関連情報

・mplfinanceに関する他の情報は以下のまとめページを参照してください。
mplfinanceまとめ

2022年2月18日金曜日

Minikubeで世界銀行のデータを取得できるwbdataをインストールしたJupyterLabをデプロイする

Minikubeで世界銀行のデータを取得できるwbdataをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
pip install -U wbdata
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_ENABLE_LAB
          value: "1"
        - name: JUPYTER_TOKEN
          value: "jupyter"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

kubectl apply -f ./jupyter-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/jupyter-service 8080:8080
ブラウザからhttp://<ホスト名:8080/?token=jupyter にアクセスします

7. 動作確認
以下の記事を参考にして、wbdataの動作を確認します。
Jupyterとwbdataで世界銀行の人口データから上位20国を棒グラフ表示する

関連情報

・世界銀行のデータを取得・可視化する記事のまとめは以下のページを参照してください
世界銀行のデータを取得できるwbdataパッケージのまとめ

2022年2月17日木曜日

MinikubeでPyMySQLとipython-sqlをインストールしたJupyterLabをデプロイする

MinikubeでPyMySQLとipython-sqlをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install -c anaconda pymysql
conda install -c conda-forge ipython-sql
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_ENABLE_LAB
          value: "1"
        - name: JUPYTER_TOKEN
          value: "jupyter"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

kubectl apply -f ./jupyter-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/jupyter-service 8080:8080
ブラウザからhttp://<ホスト名:8080/?token=jupyter にアクセスします

7. 動作確認
ipython-sqlをインストールしているのでSQLマジックセルでSQLを実行できるか確認します。
以下のusername, password, dbhost, dbnameを書き換えて、MariaDBデータベースに接続/実行確認します。
%load_ext sql
dsl = 'mysql+pymysql://username:password@dbhost:3306/dbname'
%sql $dsl

%%sql
select version();


2022年2月16日水曜日

Minikubeでpsycopg2とipython-sqlをインストールしたJupyterLabをデプロイする

Minikubeでpsycopg2とipython-sqlをインストールしたJupyterLabをデプロイするには、以下の手順を実行します。データはlocal永続ボリュームに保存します。

実行手順

1. local永続ボリュームで使用するディレクトリの作成
以下のコマンドでlocal永続ボリュームで使用するディレクトリを作成します。
minikube ssh

sudo mkdir -p /var/nb_jovyan
sudo mkdir -p /var/start-notebook.d

sudo chown 1000:100 /var/nb_jovyan

cat << EOF | sudo tee /var/start-notebook.d/install_packages.sh
conda install psycopg2
conda install -c conda-forge ipython-sql
EOF
sudo chmod +x /var/start-notebook.d/install_packages.sh

exit

2. local永続ボリュームの作成
以下のコマンドでlocal永続ボリュームを作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-jovyan-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/nb_jovyan
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-jovyan-pv.yml

※スタートアップスクリプト用の永続ボリューム
cat << EOF > local-startnb-pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: local-startnb-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  storageClassName: local-storage
  local:
    path: /var/start-notebook.d
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - minikube
EOF

kubectl apply -f ./local-startnb-pv.yml

3. 永続ボリューム要求の作成
以下のコマンドで永続ボリューム要求を作成します。
※jovyan用の永続ボリューム
cat << EOF > local-jovyan-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-jovyan-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-jovyan-pv
EOF

kubectl apply -f ./local-jovyan-pvc.yml

※スタートアップスクリプト用の永続ボリューム要求
cat << EOF > local-startnb-pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-startnb-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: local-storage
  resources:
    requests:
      storage: 5Gi
  volumeName: local-startnb-pv
EOF

kubectl apply -f ./local-startnb-pvc.yml

4. Deploymentの作成
以下のコマンドでjupyterのイメージと作成したlocal永続ボリュームを使用するDeploymentを作成します。
cat << EOF > jupyter-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: jupyter-deployment
  labels:
    app: jupyter
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jupyter
  template:
    metadata:
      labels:
        app: jupyter
    spec:
      containers:
      - name: jupyter
        image: jupyter/scipy-notebook:latest
        ports:
        - containerPort: 8888
        env:
        - name: JUPYTER_ENABLE_LAB
          value: "1"
        - name: JUPYTER_TOKEN
          value: "jupyter"
        volumeMounts:
        - name: nb-jovyan
          mountPath: /home/jovyan/work
        - name: startnb
          mountPath: /usr/local/bin/start-notebook.d
      volumes:
      - name: nb-jovyan
        persistentVolumeClaim:
          claimName: local-jovyan-pvc
      - name: startnb
        persistentVolumeClaim:
          claimName: local-startnb-pvc
EOF

kubectl apply -f ./jupyter-deployment.yml

5. サービスの作成
以下のコマンドでサービスを作成します。
cat << EOF > jupyter-service.yml
apiVersion: v1
kind: Service
metadata:
  name: jupyter-service
spec:
  selector:
    app: jupyter
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8888
EOF

kubectl apply -f ./jupyter-service.yml

6. Port-Fowardingで外部からアクセスできるようにする
kubectl port-forward --address 0.0.0.0 service/jupyter-service 8080:8080
ブラウザからhttp://<ホスト名:8080/?token=jupyter にアクセスします

7. 動作確認
ipython-sqlをインストールしているのでSQLマジックセルでSQLを実行できるか確認します。
以下のusername, password, dbhost, dbnameを書き換えて、PostgreSQLデータベースに接続/実行確認します。
%load_ext sql
dsl = 'postgresql://username:password@dbhost:5432/dbname'
%sql $dsl

%%sql
select * from pg_database;


2021年10月8日金曜日

JupyterLab AppをCentOS 8-Streamにインストールする

JupyterLab AppでJupyterLabをDesktopアプリケーションとして実行できるようになります。

〇JupyterLab Appの画面

インストール方法

以下のコマンドを実行します。
wget https://github.com/jupyterlab/jupyterlab_app/releases/download/v3.1.12-2/JupyterLab-Setup-Fedora.rpm

sudo dnf -y install ./JupyterLab-Setup-Fedora.rpm

関連情報

・JupyterLab Appのgithubリポジトリ
https://github.com/jupyterlab/jupyterlab_app

2021年10月1日金曜日

JupyterLab AppをRockyLinux 8にインストールする

JupyterLab AppでJupyterLabをDesktopアプリケーションとして実行できるようになります。

〇JupyterLab Appの画面

インストール方法

以下のコマンドを実行します。
wget https://github.com/jupyterlab/jupyterlab_app/releases/download/v3.1.12-2/JupyterLab-Setup-Fedora.rpm

sudo dnf -y install ./JupyterLab-Setup-Fedora.rpm

関連情報

・JupyterLab Appのgithubリポジトリ
https://github.com/jupyterlab/jupyterlab_app

2021年9月24日金曜日

JupyterLab AppをAlmaLinux 8にインストールする

JupyterLab AppでJupyterLabをDesktopアプリケーションとして実行できるようになります。

〇JupyterLab Appの画面

インストール方法

以下のコマンドを実行します。
wget https://github.com/jupyterlab/jupyterlab_app/releases/download/v3.1.12-2/JupyterLab-Setup-Fedora.rpm

sudo dnf -y install ./JupyterLab-Setup-Fedora.rpm

関連情報

・JupyterLab Appのgithubリポジトリ
https://github.com/jupyterlab/jupyterlab_app

2021年9月23日木曜日

JupyterLab AppをUbuntu 20.04、Debian 11(Bullseye)にインストールする

JupyterLab AppでJupyterLabをDesktopアプリケーションとして実行できるようになります。

〇Ubuntu 20.04

〇Debian 11(Bullseye)

インストール方法

以下のコマンドを実行します。
wget https://github.com/jupyterlab/jupyterlab_app/releases/download/v3.1.12-2/JupyterLab-Setup-Debian.deb

sudo apt-get -y install ./JupyterLab-Setup-Debian.deb

関連情報

・JupyterLab Appのgithubリポジトリ
https://github.com/jupyterlab/jupyterlab_app

2021年7月13日火曜日

Rocky Linux 8.4にJupyter Labをインストールする(pipenv版)

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

〇Jupyter Labの画面

インストール手順

1.pipenvのインストール
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. Jupyterのインストール
mkdir -p ~/jupyter

cd ~/jupyter

pipenv --python 3

pipenv install

pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

mkdir -p ~/.jupyter

cat << EOF > ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.token = 'jupyter'
EOF

3. selinux設定
cat << EOF > ./my-jupyterlab.te
module my-jupyterlab 1.0;

require {
        type init_t;
        type unconfined_exec_t;
        type user_home_t;
        type ephemeral_port_t;
        class tcp_socket { name_connect };
        class dir { create write read setattr rename };
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
        class lnk_file { getattr read };

}

#============= init_t ==============
allow init_t unconfined_exec_t:file { create execute open read };
allow init_t ephemeral_port_t:tcp_socket { name_connect };
allow init_t user_home_t:dir { create write read setattr rename };
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
allow init_t user_home_t:lnk_file { getattr read };
EOF

checkmodule -M -m -o my-jupyterlab.mod my-jupyterlab.te

semodule_package -o my-jupyterlab.pp -m my-jupyterlab.mod

sudo semodule -i my-jupyterlab.pp

4. Jupyter Labをサービスとして登録
※ユーザやパスなどは適宜変更してください。
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
ExecStart=/home/rocky/jupyter/.venv/bin/jupyter-notebook
User=rocky
Group=rocky
WorkingDirectory=/home/rocky/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable jupyter

sudo systemctl start jupyter

5. ポート開放
firewallの8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

6. ブラウザで以下のアドレスにアクセスします。
http://<サーバ名またはIPアドレス>:8080/lab?token=jupyter

関連情報

・Jupyterに関する他の情報はこちらを参照してください。

・バージョン確認(2021/07/13時点)
jupyter --version
jupyter core : 4.7.1
jupyter-notebook : 6.4.0
qtconsole : not installed
ipython : 7.16.1
ipykernel : 5.5.5
jupyter client : 6.1.12
jupyter lab : 3.0.16
nbconvert : 6.0.7
ipywidgets : not installed
nbformat : 5.1.3
traitlets : 4.3.3

2021年6月2日水曜日

AlmaLinux8.3にJupyter Labをインストールする(pipenv版)

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

〇Jupyter Labの画面

インストール手順

1.pipenvのインストール
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. Jupyterのインストール
mkdir -p ~/jupyter

cd ~/jupyter

pipenv --python 3

pipenv install

pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

mkdir -p ~/.jupyter

cat << EOF > ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.token = 'jupyter'
EOF

3. selinux設定
cat << EOF > ./my-jupyterlab.te
module my-jupyterlab 1.0;

require {
        type init_t;
        type unconfined_exec_t;
        type user_home_t;
        type ephemeral_port_t;
        class tcp_socket { name_connect };
        class dir { create write read setattr rename };
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
        class lnk_file { getattr read };

}

#============= init_t ==============
allow init_t unconfined_exec_t:file { create execute open read };
allow init_t ephemeral_port_t:tcp_socket { name_connect };
allow init_t user_home_t:dir { create write read setattr rename };
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
allow init_t user_home_t:lnk_file { getattr read };
EOF

checkmodule -M -m -o my-jupyterlab.mod my-jupyterlab.te

semodule_package -o my-jupyterlab.pp -m my-jupyterlab.mod

sudo semodule -i my-jupyterlab.pp

4. Jupyter Labをサービスとして登録
※ユーザやパスなどは適宜変更してください。
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
ExecStart=/home/alma/jupyter/.venv/bin/jupyter-notebook
User=alma
Group=alma
WorkingDirectory=/home/alma/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable jupyter

sudo systemctl start jupyter

5. ポート開放
firewallの8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

6. ブラウザで以下のアドレスにアクセスします。
http://<サーバ名またはIPアドレス>:8080/lab?token=jupyter

関連情報

・Jupyterに関する他の情報はこちらを参照してください。

・バージョン確認(2021/04/30時点)
jupyter --version
jupyter core     : 4.7.1
jupyter-notebook : 6.3.0
qtconsole        : not installed
ipython          : 7.16.1
ipykernel        : 5.5.3
jupyter client   : 6.1.12
jupyter lab      : 3.0.14
nbconvert        : 6.0.7
ipywidgets       : not installed
nbformat         : 5.1.3
traitlets        : 4.3.3

2020年12月29日火曜日

CentOS 8-StreamにJupyter Labをインストールする(pipenv版)

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

〇Jupyter Labの画面

インストール手順

1.pipenvのインストール
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. Jupyterのインストール
mkdir -p ~/jupyter

cd ~/jupyter

pipenv --python 3

pipenv install

pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

mkdir -p ~/.jupyter

cat << EOF > ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.allow_remote_access = True
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.token = 'jupyter'
EOF

3. selinux設定
cat << EOF > ./my-jupyterlab.te
module my-jupyterlab 1.0;

require {
        type init_t;
        type unconfined_exec_t;
        type user_home_t;
        type ephemeral_port_t;
        class tcp_socket { name_connect };
        class dir { create write read setattr rename };
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
        class lnk_file { getattr read };

}

#============= init_t ==============
allow init_t unconfined_exec_t:file { create execute open read };
allow init_t ephemeral_port_t:tcp_socket { name_connect };
allow init_t user_home_t:dir { create write read setattr rename };
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
allow init_t user_home_t:lnk_file { getattr read };
EOF

checkmodule -M -m -o my-jupyterlab.mod my-jupyterlab.te

semodule_package -o my-jupyterlab.pp -m my-jupyterlab.mod

sudo semodule -i my-jupyterlab.pp

4. Jupyter Labをサービスとして登録
※ユーザやパスなどは適宜変更してください。
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
ExecStart=/home/centos/jupyter/.venv/bin/jupyter-notebook
User=centos
Group=centos
WorkingDirectory=/home/centos/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable jupyter

sudo systemctl start jupyter

5. ポート開放
firewallの8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

6. ブラウザで以下のアドレスにアクセスします。
http://<サーバ名またはIPアドレス>:8080/lab?token=jupyter

関連情報

・Jupyterに関する他の情報はこちらを参照してください。

・バージョン確認(2020/12/29時点)
jupyter --version
jupyter core : 4.7.0
jupyter-notebook : 6.1.6
qtconsole : not installed
ipython : 7.16.1
ipykernel : 5.4.2
jupyter client : 6.1.7
jupyter lab : 3.0.0
nbconvert : 6.0.7
ipywidgets : not installed
nbformat : 5.0.8
traitlets : 4.3.3

2020年11月17日火曜日

CentOS8.2にJupyter Labをインストールする(pipenv版)

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

〇Jupyter Labの画面

インストール手順

1.pipenvのインストール
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. Jupyterのインストール
mkdir -p ~/jupyter

cd ~/jupyter

pipenv --python 3

pipenv install

pipenv install jupyterlab

pipenv install matplotlib

pipenv install pandas

mkdir -p ~/.jupyter

cat << EOF > ~/.jupyter/jupyter_notebook_config.py
c.JupyterApp.allow_remote_access = True
c.JupyterApp.ip = '0.0.0.0'
c.JupyterApp.open_browser = False
c.JupyterApp.port = 8080
c.JupyterApp.token = 'jupyter'
EOF

3. selinux設定
cat << EOF > ./my-jupyterlab.te
module my-jupyterlab 1.0;

require {
        type init_t;
        type unconfined_exec_t;
        type user_home_t;
        type ephemeral_port_t;
        class tcp_socket { name_connect };
        class dir { create write read setattr rename };
        class file { append execute execute_no_trans ioctl map open read setattr create write relabelfrom rename };
        class lnk_file { getattr read };

}

#============= init_t ==============
allow init_t unconfined_exec_t:file { create execute open read };
allow init_t ephemeral_port_t:tcp_socket { name_connect };
allow init_t user_home_t:dir { create write read setattr rename };
allow init_t user_home_t:file { append execute execute_no_trans ioctl open read setattr map create write relabelfrom rename };
allow init_t user_home_t:lnk_file { getattr read };
EOF

checkmodule -M -m -o my-jupyterlab.mod my-jupyterlab.te
semodule_package -o my-jupyterlab.pp -m my-jupyterlab.mod
sudo semodule -i my-jupyterlab.pp

4. Jupyter Labをサービスとして登録
※ユーザやパスなどは適宜変更してください。
cat << EOF | sudo tee /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter
[Service]
Type=simple
ExecStart=/home/centos/jupyter/.venv/bin/jupyter-lab
User=centos
Group=centos
WorkingDirectory=/home/centos/jupyter
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable jupyter

sudo systemctl start jupyter

5. ポート開放
firewallの8080番ポートを開けます
sudo firewall-cmd --add-port=8080/tcp --permanent

sudo firewall-cmd --reload

6. ブラウザで以下のアドレスにアクセスします。
http://<サーバ名またはIPアドレス>:8080/?token=jupyter

関連情報

・Jupyterに関する他の情報は<a href="https://serverarekore.blogspot.com/search/label/Jupyter">こちら</a>を参照してください。

2020年10月20日火曜日

mplfinanceまとめ

mplfinanceを使用する事で株式やFXの取引情報を休場を考慮した形でローソク足を簡単に描画する事が出来ます。mplfinanceに関する記事を纏めました。

〇インストール方法
Jupyterにmplfinanceインストールする方法は以下を参照してください。もちろん、jupyterを利用しなくてもmplfinanceを使用する事ができます。
JupyterLabにmplfinance、pandas、matplotlibをインストールして、ロウソク足チャートを表示する

Minikubeでローソク足グラフを描画できるmplfinanceをインストールしたJupyterLabをデプロイする

〇軸の設定
軸に関する設定・制御に関する記事です。
mplfinanceのロウソク足チャートの日付形式を設定する

mplfinanceのチャートのY軸を右側に表示する

mplfinanceのチャートの日付ラベルの回転角度を変更する

mplfinanceのチャートの軸を非表示にする

〇チャートの比率・大きさ
チャート全体の設定は以下を参照してください。
mplfinanceのチャートを拡大縮小表示する

mplfinanceのチャートの縦横比を設定する

mplfinanceのチャートの端の余白を狭くする

〇色の変更
背景色やグラフの色を変更します。
mplfinanceのロウソク足チャートのスタイルを設定して見た目を変える

mplfinanceのチャートの背景色や軸の色・サイズを設定する

mplfinanceのロウソク足チャートの色を設定する

〇グリッド線の設定
グリッド線の設定に関する記事です。
mplfinanceのチャートのグリッドを破線・点線に変更する

mplfinanceのチャートのグリッドを水平線のみ・垂直線のみ・両方に変更する

〇データ表示の制御
データ表示の制御に関する記事です。
mplfinanceのロウソク足チャートにボリュームも表示する

mplfinanceのチャートに休場日などのデータのない日付を表示する

mplfinanceのチャートのY軸表示範囲を設定する

〇折れ線グラフの追加
ローソク足に追加で指標などの棒グラフを表示する方法には、以下の様なものがあります。
mplfinanceのチャートに折れ線グラフを追加する

mplfinanceのチャートに移動平均線を追加する

mplfinanceのチャートに凡例を追加する

mplfinanceのチャートにマーカーを追加する

〇その他
mplfinanceのチャートのタイトル・Priceラベル・Volumeラベルに日本語を設定する

mplfinanceのチャートを画像ファイルとして保存する

Jupyter・mplfinace・yahoo_finance_api2を使用して、米国株価・日本株価・通貨レートをローソク足で描画する