網頁

2013年5月28日 星期二

Hadoop 如何實現多租戶(Multi-tenancy) 架構

source:hadoopsphere

什麼是多租戶 (Muti-tenancy)


根據wiki上的所謂的多租戶( Muti-tenancy )的定義:
在多用戶的環境下共用相同的系統或程式元件,並且仍可確保各用戶間資料的隔離性
但是其實多租戶除了資料的隔離性外,還必須另外考量到運算資源的分配問題,因為就算資料已經做到有效隔離,但是因為資源被某個特定用戶使用完,而造成其他用戶的不便,這樣的狀況也不能稱之為好的多租戶環境。

下圖是常見的幾種多租戶(Multi-tenancy)架構,每種架構都有其優缺點,要選擇和種架構就必須端看應用的情境,以效率來說越左邊的越好,越右邊的越差,但是以彈性來說正好相反,越左邊彈性越低,越右邊彈性越高。


Source: erpcloudnews

同樣的Hadoop也會遇到Muti-tenancy的問題,尤其是當系統開放讓許多人在上面使用Hadoop的運算資源,Hdfs的儲存空間,或是Hbase的資料欄位。

就目前研究來看,目前在Public Cloud的世界,大多使用比較偏向右邊的方式來處理Hadoop 的處理多租戶問題,最常見的就是使用 虛擬化的方式隔開(如:Amazon EMR),因為這種方式實作上比較簡單,但是相對的Efficency就必較低 。

那如果想要像光譜的左側靠攏,那該如何實作,Hadoop 現階段又有提供怎樣的方法?

Hadoop 如何解決多租戶(Muti-tenancy) 問題


Hadoop 針對資料隔離性和資源分配分別提出了以下作法:

1. 資料隔離性(安全性)


  • Establish appropriate users and groups and plan data layout based on required privileges.
  • Enable Kerberos (aka: Yahoo's security patch set) security to ensure people are who they say that are, if that's necessary in your environment
  • Document data retention policies and attach policies to directory trees. e.g. All data under /user/ older than 180 days is pruned. 
  • Enable, study, and understand HDFS quota features.
簡單來說就是讓使用者只看到自己該看到的東西,與執行能執行的工作 (基本上跟Linux差不多)

2. 工作資源分配 (Capacity Scheduler)


Use either the Fair Scheduler or Capacity Scheduler rather than the FIFO scheduler. This allows you to provide SLAs and guaranteed resource availability to tenants appropriately.

Fair Scheduler:

1.  Fair scheduling is a method of assigning resources to jobs such that all jobs get, on average, an equal share of resources over time。簡單來說就是均分法則 (Each job gets roughly the same amount of CPU time),越少人使用大家分到資源越多,越多人使用,大家分到的資源越少 (不過還是可以調整權重)

2. 使用 first-in-first-out (FIFO)的Job Pool,但是可以設定確保足夠的資源 (Allows assigning guaranteed minimum shares to pools),如果這個Pools資源不夠分配了,則Fair Scheduler 就會去其他的Pool搶資源,以確保達到我們的最低需求

3. Can limit the number of concurrent running tasks per pool

Capacity Scheduler

不過對於Multi-tenancy來說,還是建議使用專門為了多租戶設計Capacity Scheduler,因為相對起來 Fair Scheduler是在是太過於陽春,根據官網的說法他提供以下功能:

1. Capacity Guarantees - 每一個Queue 都會偵測和接收自己可以承受的工作量
2. Security - 由嚴格的ACLs機制,每個使用者只能修改和使用自己的Task
3. Elasticity -  系統會盡力的去調配資源,把過載的Queue的工作移到比較有餘力的Queue
4. Multi-tenancy - 確保Queue與資源不會背某個工作或使用者壟斷
5. Operability -  可以隨時動態去更改設定,以達到使用者對於資源分配的需求
6. Resource-based -  允許根據特殊的工作需求去調配資源,例如說記憶體
7. Job Priorities - Queues optionally support job priorities (disabled by default)

雖然說提供這麼多功能,但是每一個參數可能都會影響另一個參數,所以要如何調配這些參數就是另一門大學問了....

延伸閱讀:

[1] HADOOP 的安全性
[2] Hadoop内置作业调度器与调度平台的集成
[3] hadoop 0.20.2 capacity scheduler 配置方法
[4] Hadoop-0.21.0公平调度器算法分析

(謎之音:文章不好好寫,花一堆時間在找有趣圖片....囧rz...)


[2013.07.14] Update:

Hadoop2.0 開始引進的的YARN用意就是在做資源管理,也是某種程度的Multi-tenancy,為了能更有效率的使用Cluster資源,另一個專案就是Apache Mesos,有興趣的可以參考這篇文章:統一管理與資源調度介紹

2013年5月26日 星期日

[筆記] 利用R + Hadoop 來實作分類、群組、推薦

圖片來源:computerweekly

每當談論到(Big) Data Analysis、Recommendation,到網路上搜尋相關的資料,通常會先找到一堆很High Level 的在描述這些技術很重要,這些技術可以帶來什麼商業價值的文章,看了會對Data science 感到很興奮,但是就僅止於此 (結論就是要找專家~)

但對於我們這些技術人員來說,就應該要變成那種專家啊,所以比較重要的是了解這些分析的運作原理,以及有哪些工具(演算法)可以利用。

正統一點的學習方式可以透過買書自修和看看線上教育課程,如我之前整理的關於Data analystis 線上課程,但是偷懶一點的方式就是上網搜尋看看有沒有人家整理好的資訊,不過大多只能找到看起來很艱深的論文內容,及一堆不明了的數學公式,偶而還是可以找到一些很有心的老師整理的線上教材,例:
 或是學生整理出來的資料:
不過在還沒吸收前這些都還只是別人腦袋裡的東西,所以我都透過整理這些資料和在Blogger寫下筆記來強迫自己吸收和學習,雖然有整理一些筆記:從推薦系統到Apache MahoutBig Data Analytic - Weka vs Mahout vs R,但是一直苦無時間好好深入研究,縱使已經準備要專研進去,一遇到數學相關的內容,馬上就會被施予腦袋石化術....所以研究題目就依然還是題目,遲遲沒有更進一步的產出......

剛好這一陣子很榮幸有機會參與台大的雲端學程專題,帶著學生們一起研究關於R、Mahout 、Hadoop...等,相關的技術,我覺得這的確是一個教學相長的好機會,台大的學生的確都很優秀,缺少的只是實務經驗以及找題目的方向,剛好對於業界人士來說我們多的是方向(題目)和經驗,但是缺少的卻是研究的時間,以及學理的基初(畢業後都還老師了...囧rz..),所以通常只需要給他們一個研究的方向,以及實務經驗的指導,他們的確都能做的不錯,我覺得靠著這個專題指導的學程確可以達到互補雙贏的效果。 呼應前陣子實習生的議題,如果要找實習生就該讓他們做這種事!而不是做無腦的勞力壓榨 ,像這篇文章就是其中一個學生的產出的:R and Hadoop 整合初體驗

嗯~其實前面的都是一時感觸的題外話,回到正題~ 寫這篇文章是嘗試要記錄這一陣子跟學生開會所學到的東西,之後跟學生討論後,看可不可以陸續把學生的成果整理出來。
 

圖片來源:dataguru


這次給學生的研究方向是嘗試利用R + Hadoop 的方式,實作出Mahout 內建的幾個推薦演算法,因為Mahout 基本上就是提供一堆實作在Hadoop (MapReduce)上的推薦演算法工具,但換個角度來想,對於學術界來說,用R來做資料分析已經是稀鬆平常的事,而且R本身就內建更多的演算法套件,那我們是否可以利用R內建的Algorithm + Hadoop 組合出類似Mahout 的功能呢?這樣一來對於已經習慣使用R的研究人員來說,也許會更加得心應手?

 圖片來源:revolutionanalytics

此外學生也有找到有Open Source的專案也是正在嘗試使用R來實作推薦系統,只不過並沒有使用Hadoop (MapReduce) 的技術,所以我請學生可以參考這個專案嘗試跟RHadoop結合,應該會是個有趣的結合。
  • recommenderlab - Provides a research infrastructure to test and develop recommender algorithms

這次學生的報告內容主要是針對,Mahout 在資料分析上面常常會用到的幾個演算法介紹,我把我的了解整理如下:

分類(Classification) - Naive Bayes classifier


分類演算法的前題是已知的群體內有幾種分類種類(例:男生、女生),然後透過帶著分類特性的Training Data (例:身高,體重,腳的大小),利用矩陣運算出猜測對象是某種物種的機率,舉例來說我們有一千組的Training Data ,分別記錄男生和女生的身高體重和腳的大小,然後輸入一個未知的性別人物的特性(身高,體重,腳的大小),讓系統去猜測他是男生還是女生的機率比較高。而Naive Bayes是這種分類法的入門演算法,進階版可以使用SVM演算法。

分群(Cluster) -K-Mean


分群演算法剛好跟分類演算法相反,分群演算法是在未知的群體內,猜測可以把這些物種分成幾類,所以通常會先搭配圖像化的方式決定可能有幾個分類數,然後再利用此演算法把群體去分類。


推薦(Recommendation)

而推薦系統除了利用上述兩種方式外,現在主流使用的還是Collaborative Filtering (CF)的方式。



 圖片來源:wiki


細分下去又分成以下幾種方式:
  • User-based Recommendation
  • Content-based Recommendation (A.K.A. 個人化推薦) 
  • Item-Based Recommendation
  • Social Filtering Recommendation

當然每個方法都有其優點和缺點,所以到最後幾乎都是會混搭使用,對於實務應用來說我們也許可以不用去了解其複雜的數學運內容 (謎之音:沒出息~Orz..),畢竟Mahout 或是R都已經提供這些套件,我們只要把資料和參數餵進去就好,但是至少要先了解每一個演算法的特性和是用範圍,以及參數的意義,這樣將來才知道在怎樣的場合該使用怎樣的演算法。

更多詳細的說明可以參考以下延伸閱讀:

[1] 推薦系統的分類(2008 Edition)
[2] 基於內容的推薦(Content-based Recommendations)
[3] Readings: Item-Based Collaborative Filtering Recommendation Algorithms
[4] [Data mining] 協同過濾法 (collaborative Filtering) 及相關概念



2013年5月22日 星期三

MapR 初體驗


MapR 在此之前對我來說就只是另一個Hadoop Distribution,直到前幾天 MapR 的原廠來介紹MapR才讓我對他才有更進一步的了解,MapR 說實在是批著大象皮的另一種生物,因為骨子裡幾乎完全不一樣了,此外MapR還特別介紹了他們的客戶,光是搬出GoogleAmzaon這兩個客戶就夠具代表性了,那到底MapR到底有啥特色讓這兩個雲端大廠都會是他的客戶呢?可以由他號稱的三個特色切入了解,分別為: EASY、DEPENDABLE、FAST


FAST

使用C/C++重寫 Hadoop / HDFS (M5) / Hbase (M7)的Kernel,雖然對外的API 跟一般的Hadoop 一模一樣,但是內部的架構幾乎都不一樣,因此可以達到:
  • Higher MapReduce and HBase throughput (2X – 5X)
  • Optimized shuffle
  • Higher random I/O (5X to 100X)
  • Lockless architecture scales linearly with number of cores and nodes

DEPENDABLE

也因為內部架構都重寫過了,所以可以達到:
 EASY






我也有直接問MapR都改寫那麼多也沒Open Source 出來不就是Close source?他們也承認的確是這樣,不過對於Hadoop的EcoSystem他們還是有貢獻,尤其是Apache Drill就是由他們主導,他們覺得對於客戶來說,與其使用Open Source 的Hadoop 遭遇一堆困難和痛苦,客戶還是會願意花錢買他們的東西(No Open Source)和服務,重點是API 是通用的,所以不會有Vender Locking的問題。

我隱約的覺得,以後市場區隔就是高端客戶使用MapR,至於一般中小企業可能還是會選擇Cloudera和Horntornwork的solution,是不是這樣?就讓我們繼續看下去~

有興趣的可以再進一步看下面文章的介紹,有機會可以灌起來玩玩看是不是真的那麼神~:P

延伸閱讀:

[1] Hadoop in the Cloud with Amazon, Google and MapR
[2] MapR淺析
[3] MapR架構初探

2013年5月19日 星期日

Connection Pool Library - Alibabatech Druid

圖片來源:GMW


真的是太久沒寫RDB的系統和程式,所以最近都在複習舊的東西,順便研究看看有沒有新的工具和新的寫法,一直以來對於Connection Pool Library的印象只有DBCP和C3P0 ,沒想到居然還有那麼多其他替代方案(這也是Java Eco System 讓人又愛又恨的地方~XD ),在Jason的介紹下,才知道現在又出了由阿里巴巴Open source的Connection Pool Library - Druid,最威的他那大殺四方號稱所向匹敵的Benchmark ,這麼威的東西怎麼可以不試試看呢!!而且感覺只要是阿里巴巴提到的大數據和資料庫相關技術就很有說服力...:P

他除了快外,我看到還有許多特點,都是實戰上會需要用到的:

就讓我多用用看一陣子看看是不是真的那麼神~:P

Reference:
[1] Alibabatech Druid wiki
[2] GitHub - Druid
[3] Druid 配置說明

2013年5月12日 星期日

[筆記] Bulk loading data in HBase (1) - by Tools



雖然Hbase 有提供Put的介面去放入資料,但是對於大量資料的載入,官方還是建議使用Bulk load的方式,可以減少Hbase memory使用量,另外也可以增加throughput。

關於 Bulk load Hbase 參考官網 Bulk Loading 裡面的教學,步驟分別是:

1. 首先產生HBase data files (StoreFiles) 並且儲存在HDFS,官網提供兩種方法:

A. 使用ImportTsv Tools 或是透過API Call (參考官方API JaveDoc )

不過仔細想想Raw Data通常不會剛好長成Tsv format,所以建議還是自己寫MR來轉比較好。

B. 自行撰寫MapReduce,並且輸出成HFileOutputFormat

可以參考ImportTsv的source code

2.把產生的StoreFiles轉成Hbase 所使用的 Hfile 格式,這邊官網也提供兩種方法:

A. 使用completebulkload Tools

B. 當然也是可以自行撰寫程式,參考  LoadIncrementalHFiles
 

如果要自己寫程式,可以參考以下幾篇文章:

待續....

2013年5月11日 星期六

[筆記] Spring Data JPA Trobuleshooting -Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute group' component.




最近在嘗試使用Spring-data-jpa (有興趣的可以參考這篇使用 Spring Data JPA 简化 JPA 开发),但是一直出現以下的錯誤:

src-resolve: Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute group' component.

上網查了一下相關的討論 [1][2] ,有網友發現這是因為版本不相容的問題就會產生這個錯誤訊息,但是我的版本應該沒有不相容啊?找了老半天才發現,原來是Spring Data JAP 從 1.3.x版開始 Depend on  spring-data-commons 但是1.2.x 是Depend on spring-data-commons-core ....

為了找這個問題真是搞死人了,沒事可以不要亂改名字嘛...我還以為pring-data-commons 和 spring-data-commons-core 是兩個不同的套件....=_=

<dependency>
    <groupid>org.springframework.data</groupid>
    <artifactid>spring-data-commons</artifactid>
    <version>1.5.1.RELEASE</version>
</dependency>


Reference:
[1] Spring-Data-Jpa出现的问题
[2] Support Custom Naming Strategies



2013年5月10日 星期五

My C1 Speech in ToasterMaster


Today is my first speech (Ice break )in Toastmasters Club. It is unforgettable night !
Although  I keep modify my script and try to improve my speech organization form version 1 to version 6. When I on the stage the speech I prepared are just gone from my brain.....

Any way .... I am passed and I hope my skill will get better and better!!

The following  is my speech script , and I forget this is which version ...
The goal is try to link this game with my interest~



Dear toastmaster members and welcome guests.
It's my honor here to give my c1 speech.
Today's topic is about my interests. But I will try introduce my interests through a mobile game call ingress.
Because this game is not only interesting and  combine three of my interest, which are traveling , making friends ,and sharing.

Before go further into detail about my interests, Let me introduce this game first.
Here is the background story.
Recently Scientist find some mystery energy appeal all over the world, They also find out those energy can control people's mind , and appeal in some specific locations
such as statues , Unique architecture and special outdoor buildings , Historic buildings and landmarks , and we call those location portal
The player we call agent be devised into two group which represent by two colors' 
The green one call enlighten , they want to control those energy , and the blue one call resistant they refuse to use this energy ,and fight against the enlighten.
The basic of this game is two group of agent  fight each other and try to catch the portals as many as they can. because the more portal they get , the more energy they can use to control the world.

 
 
So How to play this game?
When we login this apps , This apps will get our location by GPS , and scan portals near by us show on the map.The mission is like a treasure hunter try to reach those portal, and  catch them.
----------------------------------------------------------------------------------------------------
And this link to my first interests is travel or call explore the world.
I love travel , because I love to explore the world , and try to find new interesting thing.
But we are not always can go to new place we want to go.
I Ask my self if I travel to same place will make me bore?

So what's the relation between this game and my interest?
first is about travel .
I love travel , when I travel I usually enjoy doing two kind of things and try leave some unforgettable memory.
One is collect some souvenir such as post card, special gift , and stamp.
The other is try to clam I have been here or show off, such as check in and upload photo on Facebook. 

But this game give traveling a hole new meaning. I can pretend to be a secrete agent like 007 .My secret mission is to catcher those portal. And when I success my name will be put on the portal.Beside, I can collect the portal key became a gift to my friends. 

As I mention sent gift to my friends,  this is my second interest - making friends.
The game is design for team work,  It is very difficult to play this game alone.
It provide communication channel , to let's players can talk to each other. 
They can discuss Strategy, organize a attach, exchange resource or just making friends.  
So I will have many chance to meet new people , they may live and work near by me , but I never know. 
More over , Ingress is like toaster master , when I visit other place , I will be welcome by local player, especially when you are a high level and resourceful player. I remember last time I have a business trip in china. The local player give me a free city tours, and show me many places. As return of favor I give them many resources and help them to destroy their enemy.
 
So if you like travel and making friend as me , It 's welcome to join me to play this game.
 
     



2013年5月7日 星期二

[筆記] Hbase ZooKeeper Client Connection Errors



Hbase + Zookeeper 常常會遇到一狗票連線問題,當遇到這些問題是否要處理呢?又該怎麼處理?

首先先來看最常見的問題之一: zookeeper.ClientCnxn: Session 0x0 for server null

[INFO ][2013-05-07 18:19:25,205] zookeeper.ZooKeeper: Initiating client connection, connectString=hadoop-m1:2181 sessionTimeout=180000 watcher=hconnection  
[INFO ][2013-05-07 18:19:25,206] zookeeper.ClientCnxn: Opening socket connection to server /hadoop-m1:2181  
[INFO ][2013-05-07 18:19:25,207] client.ZooKeeperSaslClient: Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not be found. If you are not using SASL, you may ignore this. On the other hand, if you expected SASL to work, please fix your JAAS configuration.  
[INFO ][2013-05-07 18:19:25,208] zookeeper.RecoverableZooKeeper: The identifier of this process is  
[WARN ][2013-05-07 18:19:25,209] zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect  
 java.net.ConnectException: Connection refuce 
     at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)  
     at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)  
     at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:286)  
     at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1035)  
[WARN ][2013-05-07 18:19:25,210] zookeeper.RecoverableZooKeeper: Possibly transient ZooKeeper exception: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master  

發生這個問題可能有好幾種原因,首先根據Hbase 的Trobuleshooting建議:
Error like this are either due to ZooKeeper being down, or unreachable due to network issues.

 所以錯誤排除步驟建議如下:

1. 確認ZooKeeper 是否還活著,可否正確連線,建議使用以下工具:
The utility Section 12.4.1.3, “zkcli” may help investigate ZooKeeper issues.

hbase zkcli -server host:port <cmd> <args>

(最奇怪的是我使用zkcli這個工具來測試...也會遇到這個問題!? 那我就真的無解了.....)

2.確認Client連線Hbase 設定檔是否正確

   
      
        hbase.rootdir  
        hdfs://hadoop-m1:9010/hbase  
      
      
        hbase.cluster.distributed  
        true  
      
      
      
        hbase.zookeeper.quorum  
        hadoop-m1:2181,hadoop-m2:2181,hadoop-m3:2181  
      
      
      
        hbase.zookeeper.property.dataDir  
        /tmp/zookeeper  
      
      
 

再來也有可能遇到:EndOfStreamException: Unable to read additional data from client ....

2012-11-13 17:28:05,302 [myid:] - WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@349] - caught end of stream exception
EndOfStreamException: Unable to read additional data from client sessionid 0x13af9131eee0000, likely client has closed socket
at org.apache.zookeeper.server.NIOServerCnxn.doIO(NIOServerCnxn.java:220)
at org.apache.zookeeper.server.NIOServerCnxnFactory.run(NIOServerCnxnFactory.java:208)
at java.lang.Thread.run(Thread.java:722)
2012-11-13 17:28:05,308 [myid:] - INFO [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@1001] - Closed socket connection for client /127.0.0.1:54810 which had sessionid 0x13af9131eee0000

這個問題很有可能是JDK版本問題,因為剛好在JIRA 看到這個Issue - ZOOKEEPER-1582
所以建議還是乖乖使用Oracle JDK6 不要冒然使用OpenJDK 67 和Oracle JDK7


另一個很常遇到的Warning 訊息是:SecurityException: java.lang.SecurityException: 無法定位登入配置 occurred when trying to find JAAS configuration


[INFO ][2013-05-07 18:19:27,342][main-SendThread()][org.apache.zookeeper.ClientCnxn$SendThread-startConnect] Opening socket connection to server /192.168.56.101:2181
[WARN ][2013-05-07 18:19:27,342][main-SendThread(sandbox:2181)][org.apache.zookeeper.client.ZooKeeperSaslClient-] SecurityException: java.lang.SecurityException: 無法定位登入配置 occurred when trying to find JAAS configuration.
[INFO ][2013-05-07 18:19:27,343][main-SendThread(sandbox:2181)][org.apache.zookeeper.client.ZooKeeperSaslClient-] Client will not SASL-authenticate because the default JAAS configuration section 'Client' could not be found. If you are not using SASL, you may ignore this. On the other hand, if you expected SASL to work, please fix your JAAS configuration.

不過目前尚無解決方法....還在嘗試中...Orz..後來發驗似乎的確還Bug - ZOOKEEPER-1554


2013年5月6日 星期一

[筆記]好的Utility Library 帶你上天堂 - 善用Google Guava I/O



有用過Java I/O 的人應該都會覺得很難用又很不直觀,每次都要把InuptStream和OutputStream導來導去,更不用說還要處理一堆Error Handling,真的很麻煩....

下面是用Java原生API去處理File I/O的範例

public static void writeAllText( File file, String contents )
 throws FileNotFoundException, IOException {
 
 if( file == null ) {
  throw new IllegalArgumentException( "File should not be null" );
 }
 if( !file.exists() ) {
  throw new FileNotFoundException( "File does not exist: " + file );
 }
 if( !file.isFile() ) {
  throw new IllegalArgumentException( "Should not be a directory: " + file );
 }
 if (!file.canWrite()) {
  throw new IllegalArgumentException( "File cannot be written: " + file );
 }

 // FileWriter always assumes default encoding is OK
 Writer output = new BufferedWriter( new FileWriter( file ) );
 try {
  output.write( contents );
 }
 finally {
  output.close();
 }
}

但是如果改成用Apache Jakarta Commons 來寫呢?程式碼就可以精簡成下面這樣

String testData = "test data";
try {
 FileUtils.writeStringToFile( new File( "/tmp/test.txt" ), testData, "UTF-8" );
} catch( IOException e ) {
 e.printStackTrace();
}

當然Guava 也有提供類似的功能

String testData = "test data";
try {
 Files.write( testData , new File( "/tmp/temp.txt"), Charsets.UTF_8 );
} catch( IOException e ) {
 e.printStackTrace();
}

所以好的Utility Library 帶你上天堂,請愛用Google Guava I/O....

Reference:
[1] Java I/O Tutorial

2013年5月5日 星期日

現在終於開始炒Hybrid Cloud的梗了



最近Gmail 常常收到DIGITIMES寄來的一堆研討會資料,發現一個有趣的現象,業界終於開始炒Hybrid Cloud (混和雲) 的梗了,前一陣子DIGITIMES中文網舉辦了 DAF 2013 邁向混合雲之路論壇,然後這幾天陸續把文章上架,下面是DIGITIMES 的文章:
但是老實說我覺得講的議題離我心目中(或是國外真的在討論)的Hybrid Cloud還是差很遠,首先所謂的Hybrid Cloud也許應該正名為Hybrid IaaS? 再者在台灣我覺得發展混和雲的選擇不多局限性很大,因為Public Cloud除了AWS 外就沒有其他選擇了(Hicloud? 請先Open API再說吧),至於私有雲目前也都還僅止於虛擬化的解決方案,也都還沒聽說有太多企業真的開始導入CloudStack 或是 OpenStack,大都處於觀望的態度....更遑論要混搭使用~


不過最近實在太忙碌了,不然應該靜下來好好想想 Hybrid Cloud 還有什麼梗是適合玩的?



2013年5月1日 星期三

[Ingress] 紀念一下海峽兩岸第一次跨國連線


這遊戲這個可以認識很多朋友,而且很多創舉都必須借助團隊的力量~

今天終於連出了第一個跨越台灣海峽的Control Field ~~下次的目標就是聯大三角!!



這條細細長長的CF 也是有197940 CF呢~~

不過經由這次的事件也是給我一個警惕,就是沒規劃好不要太衝動,原本可以連更多線的,結果都被自己擋住....Orz...



有興趣的朋友可以參考這個網站 Ingress Taiwan