- 歡迎來到GeminiXiang的筆記小天地 (有心力就更新)
- 近期在串接大數據資料流,有許多技術文可以來分享
- kafka->AWS EMR->BigQuery

AWS EMR 模式差異
Mode Client mode Cluster mode 差異點 driver 放置的位置 driver放置於 Client Master Cluster Slave(Worker)其中一台 影響層面 Memory 設定 啟動Job時,是否要指定memory的使用量 Memory設定 Client 都可 Cluster 指定比較優,因為driver預設2GB 機器壞掉時影響層面 EC2壞掉影響層面 worker記憶體量 Client 千萬不能壞Master,需要額外的重啟流程 優 Cluster 壞帶有driver的worker時,master會協助重啟 少 小結論 Client 適合中小型 適合情境 Client Master/Slave 在同一網路內 Cluster Master/Slave 在不同網路內

Docker timezone 時區問題
Docker Timezone 時區問題 方法一: 將本機的時間帶到 image 當中 when docker run some-image 1 -v /etc/localtime:/etc/localtime:ro docker-compsoe.yml 1 2 3 4 5 services: some-container: volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro 方法二(推薦): 設定環境變數 when docker run some-image 1 -e "TZ=Asia/Taipei" docker-compose.yml 1 2 3 4 sevices: some-container: environment: TZ: Asia/Taipei 例外 如果使用到 alpine 版本 則需要自行重新 build image Dockerfile 先添加以下兩行,再進行上述操作 1 2 RUN apk update && \ apk add -U tzdata

Python 腦筋急轉彎
題目: 讓以下function回傳 True 原文: https://www.reddit.com/r/Python/comments/cje5yh/short_python_challenge_make_this_return_true/ 1 2 3 4 5 6 def check(x): if x+1 is 1+x: return False if x+2 is not 2+x: return False return True 解答一: -7 在 Python 中,整数 -5 到 256 會預先分配到記憶體, 此時 -7 + 1 得到的 -6,恰好在這範圍之外, 才會出現 -6 is not -6 的情況 解答二: 自定義class 透過實現 add,讓他可以與integer互動, 但其實就是拿來判斷 integer 後,回傳適當的 boolean (有點作弊XDD) 1 2 3 4 5 6 class Test(int): def __add__(self, v): if v == 1: return 0 else: return v

Docker private registry搭建
Docker-compose.yml 無密碼,無SSL 1 2 3 4 5 6 7 8 9 10 11 12 version: '3' services: registry: image: registry:2.8.1 ports: - "21010:5000" environment: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /data volumes: - ./auth:/auth - ./data:/data Chagne your images name 1 docker tag alpine localhost:21010/my-alpine Push it 1 docker push localhost:21010/my-alpine after all, 4. Pull your image from private registry 1 docker pull localhost:21010/my-alpine Ref. https://gabrieltanner.org/blog/docker-registry/

Hugo 最新版搭建
前言: 2020 年碩士期間搭建了 Hexo 來記錄所學,當時對於 npm 家族比較習慣,近期開始接觸 golang,順勢也把荒廢的 blog 搬移過來,希望接下來能夠整理一些近期 kafka、AWS EMR、BigQuery 所學的知識… Hugo 安裝最新版本 如果你也像我一樣,apt install hugo 都卡在 0.68.0 左右的版本的話,可以參考 這邊是使用 ubuntu 20.04,要記得挑符合自己 cpu 版本的 1. 移除 apt 所安裝的 hugo 1 2 3 sudo apt update sudo apt install curl wget sudo apt remove hugo 2. 下載最新 hugo.deb 1 2 3 4 5 6 curl -s https://api.github.com/repos/gohugoio/hugo/releases/latest \ | grep browser_download_url \ | grep Linux-64bit.deb \ | grep -v extended \ | cut -d '"' -f 4 \ | wget -i - 3....