Category: Big Data & Machine Learning

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

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

詳細內容

[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 的生態系裡面。

詳細內容

[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。

詳細內容

[Spark] Define and Register Hive UDF with Spark Rapids

在上一篇我們介紹如何透過 Spark Rapids 去利用 GPU 加速執行 SQL,我們遇到了幾個問題並一一解決,最後我們成功在 Spark Thrift Server 上面啟動了 Spark Rapids 的功能,並且使用 pyHive 將 SQL 的 Request 送進 Spark Cluster 裡面,為了要更進一步完全使用 GPU 的資源,在執行 SQL command 的時候如果遇到沒有支援 Spark Rapids 的 UDF (User-Defined Function) 的時候,會拖慢整體的速度,讓使用 GPU 的效果沒有發揮出來,因此本篇想要紀錄如何實作並定義一個 Hive UDF。

詳細內容

[Rapids] Support Spark SQL with Spark Rapids

Spark SQL 是很多公司提供給商業智慧 BI (Business Intelligence) 的大數據介面,🍋爸在介紹完 Spark Thrift Server 之後,使用者可以透過 Spark SQL 對自己的資料做操作,Spark SQL 的好處是可以很容易去滿足使用者的需求,但是往往容易遇到因為使用者執行複雜 Query 導致的效能低落,本篇想要透過導入 Spark Rapids 配合 Spark Thrift Server 引入 GPU 的資源看看是否能夠加速 Spark SQL 的運算效率?

詳細內容

[Hive] Index part #0 for `ROLES` already set

檸檬爸在前面幾篇介紹了有關 Hive Metastore, Hive on Spark 和 Spark Thrift Server 等等的觀念,本篇想要紀錄一個花了不少時間的除錯過程,錯誤發生的環境是在 Spark Standalone 的叢集上啟動的 Spark Thrift Server 嘗試去連接在 MySQL 上的 Hive Metastore,成功使用一段時間之後會時不時地遇到這個 Bug,後來的解決方法是重新創建 MySQL 的使用者。

詳細內容

[BigData] Apache Superset 安裝簡介

本篇想要記錄在實作安裝 Apache Superset 並且配合後端 HIVE 的資料庫進行資料呈現,一開始以為是要在 superset_config.py 內部設定SQLALCHEMY_DATABASE_URI 到指定的 Hive Server,後來了解到那是 Superset 內部 Database, Dataset 與 Charts 設定的儲存位置,本篇參考 Apache Superset 的網站實作安裝 Superset,希望對讀者有所幫助。

詳細內容