h2o 一個簡單方便的建模工具,提供多種接入方式.java ,python等客戶端.還有一個h2o-flow的可視化界面.總結(jié)下使用的歷程,希望有更多的人使用起來.
h2o-flow
下載地址: https://www.h2o.ai/download/
- 使用界面如下,類似于zeppelin的使用風(fēng)格.
- java -jar h2o.jar [各種參數(shù)] ,內(nèi)置了jetty服務(wù),直接用java -jar就可以啟動.然后訪問端口為54321.
- flow的方式不能對數(shù)據(jù)做處理,需要將數(shù)據(jù)提前處理好.
- 對中文的支持不是很好.顯示亂碼.主要是中文是雙字節(jié)的,h2o有自己的數(shù)據(jù)結(jié)構(gòu)(hex).hex是對單字節(jié)的處理.修改下源碼即可.
- h2o可以直接讀取hdfs (hdfs://.......),本地等數(shù)據(jù).對于文件格式的支持有text,csv,parquet等.orc的格式需要以hadoop集群的方式啟動,才能使用.
- 對parquet格式的支持有timestamp int96的問題.這個問題主要是parquet項(xiàng)目中timestamp使用的類型是int96造成的.spark,drill等項(xiàng)目也會遇到這個問題.但是都各自解決掉了.參照spark的修改方式.也可以修改.
- h2o集群的部署,有三種部署方式,一種是jvm進(jìn)程組建standalone集群.另外兩種借助hadoop實(shí)現(xiàn)分布式集群.
- standalone集群方式中,沒有HA,其中一臺壞掉了這個集群就壞掉了.
- standalone集群也會有通信問題,在不使用多長時(shí)間后這個集群會因?yàn)楸O(jiān)聽心態(tài)通信不成功而down掉.(這個問題沒有解決),可能是ipv6的問題.
- 使用方式很簡單,按照notebook的方式引用數(shù)據(jù),選擇模型類型.很快就能看到各個模型的指標(biāo)了.
- h2o 中文社區(qū)我是沒有找到.整個社區(qū)也不是很活躍.
h2o-python
python 客戶端的使用方式, 需要安裝 python 的h2o的客戶端.可以在官網(wǎng)找到.
- 如何使用python客戶端連接 h2o server服務(wù)器的話,必須主要版本號必須一致.小版本號也好一致.否則會有問題. h2o.connect("localhost")
- 如果使用的是python自己啟動的實(shí)例就沒有這樣的問題. h2o.init()
-
python 可以有些數(shù)據(jù)處理的動作,然后在模型部署前,將python文件和模型一起打包完成線上模型的部署.
線上部署模型
上面兩種方式最終都可以導(dǎo)出pojo或者mojo文件.將這個文件使用steam(h2o 的一個工具)可以打包成war.然后部署在容器中.完成線上部署.
總結(jié)
h2o快速建模,快速部署模型的方式大大縮減了開發(fā)模型到上線部署的時(shí)間周期.對于有java 和python語言基礎(chǔ)的人員來說上手速度快.
由于社區(qū)不是很活躍,對于一些水土不服的功能,需要各自修改,增添功能.