2023年5月25日 星期四

快速上手 Scala:Spark 大數據分析入門

 

在Hadoop撐起大數據生態系的半邊天後,後起之秀Spark針對Map/Reduce的效能瓶頸(必須落地的暫存檔)予以重構,採用純記憶體的計算模型將大數據運算提升到新高度。自此Spark變成了大數據工程師不得不鑽研的顯學,更是莘莘學子學習大數據平台的起點。然而Spark平台並不像Haoop一樣以Java語言為主,它主要著重在Scala和Python,不過要真正發揮Spark的運算能力,還是非得使用Scala這個Spark用的基底語言。

和物件導向的Java截然不同,Scala是函數式導向的程式語言。最大的特色就是「函數是一等公民」,更具體而言,函數本身可以當做變數來自由傳遞,進而實現另一種和物件導向語言完全不同的「封裝」方法。依Scala的函數式設計實做出的map、reduce、foreach功能,都被Spark充分運用成為RDD分散式資料集的核心功能,因此想靈活地開發Spark計算程式,必然得對Scala的基礎下一番功夫。更別說Scala在許多方面,都擁有著獨特而不好類比的語言特性,像是不可變性的變數、Unit和Any類型、代碼堆、Case類等等。有太多太多對Java開發人員而言,丈二金剛摸不著頭腦的術語與觀念。而這些Scala的基本功,都濃縮在這本「快速上手 Scala:Spark 大數據分析入門」書中。

最後值得一提就是,既便你辛辛苦苦地學會並撰寫出一個可以運作的大數據Spark(Scala)程式,最後的魔王關卡才會出現。Scala語言的編譯工具是SBT,設計思維等同Java開發人員熟悉的Maven和Gradle。但畢竟是完全不同的工具,想要簡單地編譯出一個能上線佈署的執行JAR檔,中間試誤(trial and error)的挫折感,一不小心就會讓你想躺平放棄(用PySpark算了!)。別灰心,這本書中在最後一個章節,大方地分享如何迎刃而解地編譯出一個JAR執行檔,開啟你走上Spark大數據工程師的道路。在研讀其它Spark專書之前,如果能先看過這本「快速上手 Scala:Spark 大數據分析入門」,真的可以少花虛功,建立長久受用的基礎知識。

2023年5月20日 星期六

做工的人

 

「有時看的不是一本書,而是一群人的半輩子」。最來常看人文社會類的書,借此瞭解百業百工的人情世況。林立青的「做工的人」大紅大紫,甚至被改編成HBO播映的台製影集,劇本原形是書中一篇較戲劇化的文章「走水路」。多數文章半敘半議,主題圍繞著介紹與描述從事營造工程的基層勞工。如同林立青所言,人事物皆取材自他生活周遭,也讓書中的人物和表達出來的情緒,那麼地真實而讓讀者不捨。

房價年年屢破新高,加上媒體標題黨的操作,「營建(泥水、木作)師傅日薪幾千,找不到工!」,讓社會大眾對這群做工的人產生錯誤的刻板印象。營建相關職務,即便看似高薪,卻脫離不了髒汙、高強度、危險的工作環境,加上有做才有錢的日領計酬,絕對不是在辨公室吹著空調打電腦的白領階級想像般薪資優渥「有為者矣若是」。

由於社會階級的僵固性,從事這類底層工作的勞工多半原生家庭狀況中下,導致教育程度不高,傾向和在地宮廟與地下經濟「交陪」,對警察、執法者有著「一朝被蛇咬」的厭惡。除了眾多「做工的人」的人生百樣外,林立青在書中提到像外籍新娘、檳榔西施、茶室姐姐等社會眼皮底下的女性角色,還有介紹工地調酒、外勞、罰單等工地文化。這本書像是一扇為社會白領開啟的窗,用一種不危險的距離觀察、認識這些非同溫層的辛勤勞動者。藍領與白領也許像油與水般性不相溶,但對每個認真生活對社會做出貢獻的人來說,都值得獲得平等的自由和尊重,簡單一句「職業無貴賤」。

2023年5月2日 星期二

出走吧!!玩食男 首發站:澎湖群島

「出走吧!!玩食男」是本志向遠大的出版作品,它想師法日本精典漫書「鐵路便當之旅」的特色,結合漫畫與旅遊資訊,讓台灣風土人文用輕鬆逗趣的故事情節,引領讀者體驗深度的知性之旅。系列作的第一本主題為「澎湖群島」,挑選的是台灣觀光景點中最閃亮的珍珠,擁有獨一無二地形與海島文化。讀了這本「出走吧!!玩食男」後,我這個從沒去過澎湖的雙北市民,真的動心起念地想來趟澎湖行。

從澎湖本島「菊島」開始,就有著各個值得一訪的不同景點,包括因海浪長年侵蝕的風櫃洞、離馬公市只要二十分鐘車程的山水沙灘。書中也不忘「美景配美食」的台式玩法,用心描繪出在地的特色佳餚,這點也雷同「鐵路便當之旅」以火車便當做引子,讓讀者一飽「書中的美味」。雖然畫功尚未有如日本美食漫畫般爐火純青,也真心誠意地抓到神韻讓餐餚躍然紙上。

騎機車跨越澎湖跨海大橋後,可以到「講美OK標誌」打卡,接著到白沙鄉觀賞「通梁古榕樹」。「歧頭」的「抱墩」補漁文化,讓人感受到先人智慧,能以融合自然生態的做法維持家庭生計。再跨海一次到西嶼鄉看一下大自然的鬼斧神工「大菓葉柱狀玄武岩」,路經有如希臘地中海般「外垵魚村」風光,終點是台灣最古老的燈塔「西嶼漁翁燈塔」。從「南海遊客中心」出發的跳島行程,是澎湖行的重頭戲,「七美嶼」上的世界知名地景「雙心石滬」,「望安嶼」上的「綠蠵龜保育中心」、「曾家古厝」都是必須一遊的景點。望安嶼外的「珊瑚礁海上平台」則是國際級的休憩中心,如果預算充足就能在此盡情遊玩各項水上活動與浮潛課程。

四月到六月的澎湖海上花火節,已經成為許多遊客特地到訪澎湖的原因。發達的漁業經濟也造就澎湖海鮮美食的過人之處,隨便一個花枝丸都讓台灣本島看不到車尾燈,「文康商圈」、「中正路商圈」料好實在的美食絕對不會讓你失望。「第三漁港」裡現撈的新鮮海產讓人眼花撩亂,土魠魚、白帶魚、石咾魚、正鰹、紅魽,數不清的海味都可以讓遊客一次購足,急速冷凍宅配回家。全書閱畢深受感動之時,急著想接著看下一集。然而左尋右查,都找不到系列作的第二集,猜想應當是出師不利沒有賺錢,本書因此也成為此系列的封筆作,可惜可嘆。

 

2023年4月21日 星期五

兩輪江湖的真相:你的美食正在路上,我的人生也在前進,為了更快達成夢想,外送員是我必須繞的路

 

不管是幾乎什麼都點的到,還是國民天團的Panda送。外送服務在全世界都已經站穩腳跟,成為日常生活中街頭景觀的點綴。小粉紅和小綠,是外送員對這兩家平台的暱稱。「兩輪江湖的真相」是本由外送經歷長達三年的「小綠」,分享外送行業秘辛的著作。從基本薪酬計算開始,接著是外送行業特有的術語與流程。昱樹(作者)也說,雖然一張單的報酬有時高達60~70元,但要像新聞報導說的月收六萬以上,其實真的要很拼。加上外送平台的二階段資訊露出設計,接單的外送員是無法第一時間得知訂單的實際地址,必須在接單並取餐完成後才「開獎」。因此想要柿子挑軟的吃,只接距離近的單,是不可能的。

台灣的服務業,最不缺的是各種奇人異事的奧客故事。外送員由於工作性質的獨特性與普及性,遇到的「妖魔鬼怪」當然就更魔高一丈。從傷害值低的外送地址不明確/指定奇特的位置,到已經遊走法律邊緣的衣不蔽體/不想再努力的阿姨。恐佈電梯的靈異現象、大便忘記帶衛生紙、無理取鬧/惡言動粗,外送的江湖就是人生百態的修羅場。當然也有揪甘心的故事,替行動不便的老人送外時,總會有外送員願意付出時間與關心,照顧素不相識的長者。做為外送消費者來說,應該體認外送員提供的是將物品送達的服務,不要無限上網地做不合理的要求。

社會上對外送員普遍有著刻版印象,認為那是份低門檻沒技術的低階職務。但就像昱樹所說,外送本質上就是門服務業,而服務業的價值除了服務品質外還有服務態度這門課題。外送行業的興起,讓許多需要業外收入,和不能朝九晚五的人,找到用勞力換取報酬的方式。雖然外送平台與制度尚未能盡善盡美的滿足所有人,但其充分運用勞動力的思維依舊瑕不掩瑜活絡了自由經濟市場。

2023年4月13日 星期四

徐重仁青春筆記

 

在台灣說到7-ELEVEN,應該是無人不知。其品牌力之大,一般人甚至會把去超商說成去「Seven」。現在的年青人或許不知,把7-ELEVEN這個超商經營模式帶到零售業頂端的幕後推手就是被尊稱為「流通業教父」的徐重仁。「徐重仁青春筆記」有點半自傳的味道,初期講述了他成長、求學的故事,後續則著重在描寫徐重仁在統一企業裡「社內創業」開創7-11的點滴。

想要人前顯貴,必得人後受罪,現在看7-ELEVEN幾乎稱霸超商零售半邊天,很難想像當初它剛成立時,是歷經解散公司合併於統一企業旗下的一個部門(超商事業部),在不被任何人看好的情況下,才交給對流通事業充滿熱情的徐重仁死馬當活馬醫。沒想到他亂世下重典,一出手先砍掉虧損連連的四十五家店,只留下有獲利的店面,如此一來隔年就達成損益兩平,避免整個超商事業被收掉。這也是徐重仁分享的一種「營養劑」的經營手法,對陷入經營困境的企業,最要緊的是「活下來」,提供讓企業維持活力的一帖營養劑,救起來之後再來治療。我們可以在徐重仁時期的統一超商次集團裡的子公司,看到許多這樣相互提供資源協助彼此的例子,這也是大型集團擁有的競爭優勢(口袋夠深)。

徐重仁也在書中分享在經營事業時他所採用的方法學:
第一、必須要多看、多學,也就是所謂的終身學習。
第二、要思考該怎麼做。
第三、給一個清楚的成長目標。
第四、為達成公司成長目標,一定選對人、用對人,不行,就換人。
第五、選對人之後,要授權。
第六、我塑造一個可以讓他們很安心的企業文化。
從上六點來觀察,他的領導風格是知人善用、充分授權。但也不會流於鄉愿,滿足於形式主義而不講究績效。

他發展出「舉重原理」的用人方法,對有期待的下屬給予訂出的目標,如果他夠投入做出的實績更好,表示能不斷再承擔更多的重擔,就會再給他「三合一」甚至「四合一」的目標。而對於無法達成目標的主管,就會調到二軍中,讓位給其它做的出成績的主管。或許就是這種充分授權、究講實績的管理作風,讓統一超商次集團在徐重仁領導下成長、茁壯。當然別忘了背後有統一企業的支持,在「天時、地利、人和」三者俱備的清況下,想複製台灣7-ELEVEN崛起的模式,很難。

2023年4月2日 星期日

空中老爺的日常

受新冠疫情海嘯波及的空勤人員,一夕間從人人稱羡的夢幻工作變成看不見盡頭的無薪假,在這個後疫情時期的曙光中,看著新聞報導日本成田機場入關大塞車,相信航空業重回榮景指日可待。「空中老爺的日常」是一位資深空服員(男),記載勤務過程中的所見所聞,以及因而觸發的體悟。

由第一線空服員的觀點,回看班機上行行色色的旅客。我們可以得出一個舉世通用的公理,即便是離地數千公尺,「奧客」依舊無所不在。不論是自覺尊貴的高卡會員、擅長情緒勒索的準媽媽、酒後鬧事的莽漢,都是讓座艙長疲於應付的隨堂考。然而除了這些不開心的職場抱怨文外,「空中老爺的日常」佔半數篇幅的是另一種風格迥異的小品。

愛、思念、家庭與承諾,做為主題貫穿了全書中後半的內容。是身處離地數千尺的封閉鐵盒中,讓人與人更能坦誠佈公地說出心裡話,又或是筆者做為座艙長以同理心為出發點的服務真能打動乘客的真心。空中老爺筆下的打動人心,令人動容鼻酸的故事是一篇又一篇,而那些都是他親身經歷,也是旅客們用生命書寫的真實人生。受限於人類生命的有限性,我們自然無法逐一參與、體驗世上的百工百業,但藉由閱讀和一本對的書,你我可以對一種類型的工作、職涯甚至是產業有粗淺的瞭解,對彼此互敬互重的同理心,常常就是建基在這種互相理解之上。
 

2023年3月25日 星期六

下世代超前佈署:用Zabbix全面監管巨量伺服器

 

在台灣中小企業為主的職場環境下,程式人員提供「一條龍」式的IT技能服務,是普遍常見的工作樣態。從設計構思、開發實作到後續的營運維護,如果不善用工具減輕自身的負擔,想憑著一腔熱血硬撐到底,結果不是爆肝就是離職單吧。IT系統看似五花八門,追根究底來說不外乎由網路設備、伺服器、中介軟體以及應用程式所組成。藉由監控系統適時地在每一層設定監管項目,營運人員將鉅細靡遺觀察IT服務運作的狀態。開碼的監控系統產品很多,而本書介紹的「Zabbix」是相當強大、易用的選擇。

從「設定主機」的步驟開始,使用者就體會到Zabbix包羅萬象的監控能力,主機(Host)指的是任何有連網的可被監控設備,除了一般的電腦/伺服器外,也包含各式網路設備。監控使用的通訊協定,從網路常見的SNMP(Simple Network Management Protocol)、硬體週邊的IPMI(Intelligent Platform Management Interface),到真正發揮出Zabbix驚人威力的Zabbix Agent/Agent2,選項一應俱全。面對最常見的伺服器硬體監控需求,藉由範本(Template)檔的協助,使用者將可快速地將CPU、記憶體、磁碟、網路卡等重點項目設定完成。尤其是自Zabbix 3.4版開始支援的LLD(Low-Level Discovery),自動搜尋伺服器裡的磁碟、網卡名稱帶入監控項目,讓管理者免於一台台手動調整監控項目裡的參數值,讓我這個一直在用Zabbix 2.x版的老用戶,感到這次升級值回票價。

因為範本檔和LLD兩者結合後的強大威力,一般常見的監控標的都可以既有的範本檔中獲得滿足,就連較新穎的HAProxy、Redis等中間層軟體,也都有可以參照的案例可以依循。書中也特別安排一個專章,介紹包含TCP、Nginx、PHP-FPM、MySQL、IPMI、磁碟陣列卡、路由器、VMware、RabbitMQ、Elasticsearch、Kafka、Redis、Oracle、WebLogic、SQL Server、HTTPS。監控項(Item)的實践Zabbix支援18種方法!加上透過Zabbix Agent的自訂使用者參數(UserParameter)功能,應該沒有任何無法監控的項目,唯一的限制就是使用者的想像力。針對非常客製化的應用服務層(自製系統的營運狀態),一樣是拿出傳家寶刀UserParameter就可以迎刃而解。API層的監控則是利用HTTP方法,如此一來同時擁有簡化設定、減少客製化的優點。雖然Zabbix也擁有對伺服器記錄檔的文字資料收集/監控能力,不過功能非常陽春,因此對於這種需求還是用Splunk或ELK這種專門工具比較理想。

和Cacti使用集中式主機輪詢的被動式監控不同,藉由Zabbix Agent的協助下,Zabbix可以採用主動式監控,來達成監控巨量標的的任務。按書中所言,在配置有適當主機規格的前提下,單一台Zabbix Server即可監控上千台伺服器。更別說如果再加上Zabbix Proxy的分散式監控架構,讓異地機房的監控負擔由Proxy先處理後傳回Zabbix Server整合。Zabbix的監控能力,足以滿足九成以上台灣企業的IT規模。簡單一句話:好東西,不學嗎?