Category: IT Technology

[GCP] Spark Hadoop Access with Requester Pays

在生醫領域有很多開放資料都是存在 Google Cloud Platform (GCP),有時候要避免大量複製檔案,我們會想要直接使用 gs:// 開頭的開放資料當作 Spark Table 的後端路徑,與 AWS 與 Azure 不同的是 GCP Dataproc 提供了一個使用者付費的方式,顧名思義就是資料的傳輸費用是由使用者去支付的,本篇紀錄如何設定 Spark Cluster 的設定檔透過 Spark SQL 的方式直接使用公開的資料,減少複製檔案與儲存帶來的成本。

詳細內容

在 K8S 上簡單實現 Nvidia GPU Time-Slicing

Nvidia 的 GPU 目前是市場上使用的主流,在雲的世界裡面,由於大部分的使用場景是按需 (On Demand),因此 K8S 慢慢地也是雲端管理資源的一個利器,如何在 Kubernetes 上調用 GPU 的資源相對地也越來越普遍,本篇整理了目前網路上可以看到 Nvidia GPU 於操作方法,並且介紹一種簡單實現 GPU Time-Slicing 的設定。

詳細內容

[Python] Python on which CPU Arch x86 or arm ?

檸檬爸人生中開始使用 Apple Macbook 是在 2014 年的時候,距今也已經 10 年以上了,那時候 Macbook 的晶片架構主要是 Intel x86,一直以來都是利用 Apple 的備份工具轉換了好幾台電腦,直到去年開始使用 Apple M1 的晶片,切換到了 arm 的架構,慢慢地遇到了一些 Python 程式不能跑在 arm 架構上的問題,由於以前預設是 x86 的環境,所以自然而然 homebrew 安裝的相關程式都是 x86 的版本,例如眾多的 Python 版本,本篇紀錄如何調整 Macbook 使其能夠共存。

詳細內容

[BigData] PySpark on Jupyter Lab

Jupyter Notebook/Lab 是一個常用的互動式介面協助各種程式碼的開發我們在上一篇『建立自己的 Jupyter Notebook 伺服器』有稍微介紹過,一般常見的使用場景是在開發 python 的程式,但是 Jupyter Server 的 Kernel 功能可以擴充更多的互動式開發環境,例如 R, PySpark, SparkR, SparklyR 等等,檸檬爸最早接觸的是將 PySpark 註冊到 Jupyter Lab 裡面,實作的程式碼是透過 AZTK 的 Repository 學習到的,後來進一步將其擴充到 R 等等的使用場景,本篇將會呈現如何部署一個有 PySpark 核心的 Jupyter Lab。

詳細內容

[BigData] 整合 BeeGFS 到 K8S 生態系

雖然公有雲的服務例如 AWS, Azure, GCP 已經逐漸普及了,但是私有雲 HPC 的市場還是一直有相對的份額,不同於公有雲的儲存服務,在佈建私有雲的時候,儲存  (Storage) 的解決方案仍然是一個需要花費大量心力的議題,本篇紀錄如何將 HPC 儲存方案之一的 BeeGFS 掛載到 K8S 的生態系裡面。

詳細內容

[AWS] curl 上傳檔案至 AWS S3

在導入 AWS 作為後端雲平台的時候,遇到了需要透過 curl 指令將檔案直接上傳到 S3 的需求,一開始以為一定要透過 presigned URL 的方式才能夠進行,但是後來參考了幾篇網路的文章並且經過實作驗證之後,發現也可以直接用 bash shell 配合 AWS credentials 進行,由於 AWS 的 credentials 有分成有時效性與無時效性兩種,本篇針對兩種不同的憑證放上不同的程式碼。

詳細內容

Azure Ubuntu 20.04 VM 安裝 Nvidia T4 GPU Driver 紀錄

本篇想要記錄一下在 Azure Ubuntu 20.04 x64 VM 上面使用 GPU 的安裝過程,首先需要安裝相關 Nvidia GPU 的 Driver,不過究竟要安裝多少套件各方說法不一,由於之前已經有一組可以使用 GPU 的安裝指令,所以本篇以嘗試使用這組指令為基礎紀錄解決問題的方法,鳥哥的教學告訴我們可以利用 dpkg -l ‘nvidia*’ 的指令得知目前安裝所有 Nvidia GPU 相關的套件總覽,配合這個指令我們可以了解究竟安裝了什麼?

詳細內容

[GPU] Native Rapids UDF – Create Custom UDF

在上一篇我們成功實作了 HiveUDF,為了要進一步利用 GPU 加速,我們需要去實作 evaluateColumnar 這一個函數,參考 Spark Rapids 的 Github 與 ColumnView 裡面的範例,針對我們想做到的 UDF 我們沒有發現適合的函數去實作針對一個 Array[String] 的過濾程式,所以我們需要自己去實作 Tutorial 裡面所謂的 Native Code Examples,Tutorial 裡面針對 HiveUDF 只有提供一個範例是 StringWordCount,本篇我們紀錄藉由這個範例去實作一個支援 GPU 的 HiveUDF。

詳細內容