2013年11月21日 星期四

Google Cloud Platform Workshop 小記

(在這邊要感謝 Jazz大大辛苦的主辦,以及神通提供場地)



話說自從寫了- 初探 Google Cloud Platform - 1. Create instance 後,號稱要寫的第二步 Login Instance 的文章都還沒寫,而且也沒時間去把之前的疑惑解開,趁著今天參加 Google Cloud Platform Workshop 想說應該可以解決部份的疑惑。

在這邊把筆記整理一下跟大家分享 (筆記的準確度根據理解程度可能有誤還請見諒~:P)

一開始是在介紹Google 的豐功偉業(其實我相信大家都很瞭解,應該不太需要再介紹~XD)

然後進入Google 知識加時間:

大家知道google 的Search Index 目前有多大嘛? (100PB)

目前TeraSort 的紀錄是幾秒呢? (Google + MapR 的1TB 54秒,破之前Yahoo的紀錄)



接下來就是令人感到興趣的主題,Agenda分別是:

1. Google Cloud Platform (GCP) 介紹

2. 如何在GCP 上架設Hadoop Cluster

3. Big Query

Google Cloud Platform (GCP) 介紹

在介紹如何使用GCP 之前,當然一定得先提一下為什麼要使用GCP,首先一個很大的賣點就是Google 所有的Data Center 都是使用Google Fiber 在串接,所以Zone 與Zone 之間,Service 與Service 之間通通都是享受到光纖的速度,此外Google 為了他們本來主要服務(如Google Search , Gmail, youtube...等)就有跟各國各大ISP合作,所以在網路頻寬和速度上更是有一定的品質與保障。


接下來就是介紹GCP 的整個概念,如同我之前所研究的,GCP 以一個Project 為單位,Project 與Project 之間都是isolate,一方面增加安全性,一方面又可以確保資源的品質,此外在這邊講者特別有提到 GCP 的 I/O CPU Network 其實是分開處理的? 所以不像傳統由同一個Host 去分配資源容易有瓶頸?(這一段不是很確定有沒有聽對~XD)



關於Disk 的部份就如同之前研究的:

Scratch Disk = local Disk (關機資料就消失,但是Performance 比較好)
Persistent Disk = EBS Disk (最大10TB 最多16Disk,建議給Root Disk 使用)

此外也趁機問了之前對於Zone 的疑惑,到底進入maintain mode 的zone 我們的instance 會怎麼樣?

講者的回答是,目前GCP 已經有提供好幾個Zone  是no maintain windows 代表他有Live migration 功能,我們就不用擔心如果這個zone 進入maintains,他們會自動幫我們做Live migration,Cool~~

下圖就是講者就做了一個小Demo,利用Google App Engine 寫程式去控制 GCP,要在一分鐘左右開啟100台Instance,並且使用Heap Map 的方式顯示。


講解完了運作原理,當然也要講一下GCP的Performance 摟,跟某Logo 是黃色的公司比較起來~XD





這張投影片講到整個Hadoop Cluster 是怎麼在GCE上運作的



中間穿插著實際Demo 的案例(Live Demo 難免都會有點小出搥~XD)


在Demo 完後就進入大家倍感好奇的BigQuery,一開始先說幾個常常會需要用到的Query 案例,比如說搜尋App Store 排名前20的App,或是DataCenter有多少機器效能低落應該要更換了...



那到底在什麼情境會需要BigQuery 呢?(接來幾張投影片就是重點了)其實跟Spark 和 Shark 一樣,BigQuery 特別適用於在Interactive analysis的情境。







在講到這張投影片的時候我一度以為Big Query 就是在BigTable 的Query (還是真的是!?)


接下來講者就舉一個Query 的範例,到底如何利用Dremel 的架構實現 BigQuery






最後講者舉了一個很有趣得實際應用案例,就是Data Sensing Lab 跟Google合作,在Google  I/O Conference 佈署了很多的Sensor ,然後利GAE + GCP 所實作出來的應用案例,有興趣的可以看這個連結







以上倉促報告完畢~(照顧小孩去~Orz..)



2013年11月18日 星期一

Hadoop Cluster 如何使用Ambari 安裝與啟用 Kerberos

圖片來源:自行製作

[2014.02.10 Update] 這篇文章是把KDC、Ambari 以及所有Service裝在一起,但是如果套用在真實full distributed cluster mode 這篇文章在安裝上就會出問題,請參考另一篇安裝Fully Distributed Hadoop Cluster by Ambari on Google Cloud Platform


接續Security for Hadoop - Data Encryption 這篇文章裡面提到的Kerberos ,如果你的Hadoop Cluster 沒有啟動Kerberos 的認證機制,其實根本是沒有安全防護可言的,所以今天這篇文章就要來分享如何利用Apache Ambari 啟動Kerberos 的認證機制。


測試環境:

A. HDP 2.x Ambari 1.4.1  (理論上 Ambari-1.2.5 以上版本都可使用)。
B. 把KDC 和 Hadoop Cluster 分開安裝 (全部裝在一個Sandbox 也可以)


1. Install package



1-1. 首先要先安裝一台Kerberos KDC  (Kerberos Key Distribution Center)
 
> yum install -y krb5-server krb5-libs krb5-auth-dialog krb5-workstation
 
   
1.2  On KDC client

 
> yum install -y krb5-libs krb5-workstation
 

2. 設定 KDC Server


2.1 設定 /etc/krb5.conf --- the same in all Kerberos workstation


[logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

[libdefaults]
     default_realm = LOCALDOMAIN (這邊注意一定要大寫)
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true

[realms]
    LOCALDOMAIN = {
       default_domain = localdomain
       kdc = bdp-node1.localdomain
       admin_server = bdp-node1.localdomain
    }
 

[domain_realm]
    .localdomain = LOCALDOMAIN
    localdomain = LOCALDOMAIN



2.2 編輯 /var/kerberos/krb5kdc/kdc.conf

 
[kdcdefaults]
 
     kdc_ports = 88
     kdc_tcp_ports = 88

[realms]
 
     LOCALDOMAIN = {
      #master_key_type = aes256-cts
      acl_file = /var/kerberos/krb5kdc/kadm5.acl
      dict_file = /usr/share/dict/words
      admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
      supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
     }
 


2.3 編輯 /var/kerberos/krb5kdc/kadm5.acl

*/admin@LOCALDOMAIN     *



3. 在bdp-node1 啟動 KDC/kadmin 以及新增 admin principal


不過在第一次執行可能會遇到下面的問題

> service kadmin start
      Bug: kadmind: No such file or directory while initializing, aborting

3-1.解決方法要先Create KDC master key

> kdb5_util create -s
    Enter KDC database master key: [your password]

3-2. 然後建立一個管理權限的帳號

>  kadmin.local -q "addprinc root/admin"
    password: [your password]

Authenticating as principal root/admin@bdp-node1.localdomain with password.
WARNING: no policy specified for root/admin@bdp-node1.localdomain; defaulting to no policy
Enter password for principal "root/admin@bdp-node1.localdomain":
Re-enter password for principal "root/admin@bdp-node1.localdomain":
Principal "root/admin@bdp-node1.localdomain" created.

3-3. 重新啟動kdc Service

 
> service krb5kdc start
 

4. Copy /etc/krb5.conf to all Clients


5. using ambari-web to create keytab CSV file and save as keytabs.csv



5-1. 從Admin 的Menu 選擇Security的選項,可以看到Enable Security的選項


5-2. 按下Enable Security 後接下來就會出現下一步下一步的Wizard


5-3. 輸入你的Realm Name (記住要大寫),其他設定Ambari 都會幫你填好(除非你有特別要改什麼設定),把畫面卷到最下面按Next。



5-4. 接下來畫面就會顯示Hadoop Cluster 所有Service 角色該有的Keytab設定,確認無誤後,請先下載那個csv檔 (建議後面6~10都做完,再按apply )




6. cp /var/lib/ambari-server/resources/scripts/keytabs.sh /root/


keytabs.sh 是ambari 所提供用的script,利用這個script 和剛剛產生的keytabs.csv, 可以用來產生幫忙設定keytab的shell script (keytabs_create.sh)。

7. create the real keytabs creating scrupt


 
>chmod 755 keytabs.sh
>./keytabs.sh keytabs.csv > keytabs_create.sh

  

8. execute keytabs_create.sh to create keytabs


 
>chmod 755 keytabs_create.sh
>./keytabs_create.sh
>cp -raf xxxx/etc/security/keytabs /etc/security/
 

 

9. Checking: list all the created pricipals

 
>kadmin.local -q list_principals
 

10. Create a new user(howie) to access hdfs

 
>kadmin.local -q "addprinc howie"
  

當一切設定完成,你的Hadoop Cluster 才算是有了基本的安全防護



Referecne:
[1] 特別感謝Herb 大大贊助筆記
[2] Setting Up Kerberos for Use with Ambari , Apache Ambari
[3] HDP 2.x Setting Up Kerberos for Use with Ambari , Hortonworks
[4] Configuring Hadoop Security in CDH4
[5] Set up Kerberos Version 5 KDC to use AES encryption , IBM , 2007

 

2013年11月17日 星期日

知識分享回饋社群




圖片來源:wikimedia


今天早上看到這篇文章 - 五件在我靠程式吃飯之前就該知道的事 ,對於下面這段特別有感覺。(話說我的文章是不是也該嘗試來寫寫看xxx應該知道的幾件事...:P )。


我的生涯早期,我犯了一個錯誤,就是不怎麼去向社群尋求幫助,也不為他人提供幫助。我一向樂於幫助我的同事,也在不同的工作崗位上也非常善於交際,但活動範圍從來沒有超出過公司。
我在我的生涯中花了大量的時間,試圖在一個特定的公司進行投資,卻沒能將我的時間投資在我參與的軟體開發社群中。
我花了很多時間,做關於技術或者是最佳實踐的內部 presentation,而這些時間原本可以用來製作可以服務於社群的內容和材料,同時也能給我帶來工作上的認可。
我也犯了另一個錯誤,就是認為自己沒什麼有價值的東西去貢獻
我和很多剛入行的開發者聊過,有時候我覺得,比起我們這些”老油條“,他們有更多的東西去貢獻給社群,因為他們更理解其他初學者蛋疼的問題。
如果我可以重來一遍,我一定會在我的生涯中更早、更多地參與各種會議和使用者群。我會更早地開始寫部落格,並利用我的大部分學習時間去建立專案和資源,去幫助別人而不是只讀書。


看到上面那個 "認為自己沒有什麼有價值的東西去貢獻",真的很想大喊 "真的!! 好多人都這麼想 ,這真的是不對的!! "。

其實對於我們搞技術的人來說,最容易產生並且分享出來的內容就是學習筆記,小到操作Linux的指令集,大到安裝整個Hadoop Cluster,這些內容都是非常值得分享的,不要認為太簡單不重要,因為你什麼時候會幫到人你都不知道。

而且也唯有當你把資訊整理過後再分享出來,才能促成整個知識傳遞的正向循環,就像Open source 一樣,有人願意分享出來,然後其他人經過參考和學習後,可以激盪出更多的火花和更新想法產生更多更好的專案和程式。

話說在加入上一間公司之前,寫Bloger對我來說可能只是偶而用來記錄遊記和發發牢騷的地方,並沒有特定發文的週期,沒有壓力也沒有目標就很容易懶散,但是自從嘗試要開始透過Bloger宣傳自己開發的產品時(MeshCloud) ,我就變成就有了一個目標,就會開始努力寫文章,努力找梗,努力研究各種流量分析和SEO的方法,漸漸的每天固定監看各種流量和數值變成了一種習慣,在看文章和各種資料的時候也會想說 " 嗯~這個題材不錯可以拿來用...這個很有梗~ ",於是想梗和內容就變成了生活的一部分 。
 任何的梗和筆記都可以先收藏到筆記本裡,像我都是用Evernote把我的想法和筆記分類整理好,等到整理完或是哪天有空了就可以拿出來變成一篇可以分享的文章。




所以在這邊真心建議有剛好有看到這篇的朋友,真可以把你們手邊的筆記整理一下Release出來分享給大家看,幫助社群也幫助自己。(雖說大家也不一定真的有興趣看...XD 但是難說哪天就是會幫到人~:P )








2013年11月14日 星期四

頂級阿肥機使用一個月心得

圖片來源:沙塵暴


我真的覺得我家附近的落塵量頗大....(在我打掃時看到灰塵的心情大概就跟上圖一樣...)

話說真的是么壽,離[開箱文] Opure 頂級阿肥機入手也還不到一個月,昨天居然面板亮起了紅燈,提醒我該換前置慮網了(第一層)!!


研究了一下,他應該沒有Sensor可以偵測濾網有多髒,所以應該是以開啟時間來計時的,所以我從10/21開始24hr不停的運準的狀態,一個月就會要我換一次前置濾網!

那到底濾網的狀態如何呢?各位觀眾~~~  有沒有嚇死人~~~



下面是把反面折過來的對照組,有沒有很恐怖...囧rz...



根據產品介紹這一層的功用是:

活性碳濾網(建議每三個月更換一次或視環境狀況更換)並有效延長第二層
功效:可先行濾除大型塵埃、毛髮並去除空氣中的異味及揮發性有機化合物(VOC),並有效延長第二層及第三層濾網的使用壽命。

目前先用吸塵器把它清一清,但是感覺效果不是很好,為了保護後面HEPA的壽命,可能還是等滿一個月就把它換掉吧..(不知道可不可以洗....)


2013年11月12日 星期二

工作機會大比較! OpenStack vs CloudStack



Source: senoal

還記得之前我之前寫過一篇"cloudstack 與 openstack 目前的發展趨勢",裡面有比較這兩個陣營在人數上,與活耀度上的比較,那讓我們先來複習一下最新進展,同樣的根據CloudWatch的追蹤報導 CY12-Q4 Community Analysis — OpenStack vs OpenNebula vs Eucalyptus vs CloudStack,在社群方面OpenStack 還是遙遙領先(不過成長趨緩?),CloudStack 仍然努力緊追在後。

此外根據這篇OpenStack 的統計報告 study conducted by TrendKite,OpenStack 的媒體曝光度遠遠超過AWS (雷聲大雨點小?)



但是媒體的熱度似乎已經在降低,畢竟今年是BigData 年? (再誤)





不過今天我卻在Twitter上看到一個消息,Apple 正在Hire CloudStack Engineer ? 奇怪話說前一陣子我才看到這篇文章 Apple looks to pick off engineers from Amazon, OpenStack to build out iCloud


喔?搜尋了一下果然Apple 在 LinkedIn的Job那邊果然有這個職缺。,看了一下工作內容描述,這不是在招喚我嘛?(誤)

Key Qualifications

  • Expert with Apache CloudStack/Citrix Cloud Platform and the underlying systems, storage and network hardware that support it
  • Minimum 5 years in UNIX systems administration in a large environment (1000 servers)
  • Experience with VMware vCenter and the ESXi hypervisor
  • Expert in RedHat Enterprise Linux (and it's variants) system administration including Yum and RPM packaging
  • Experienced systems engineer with at least Bash shell programming (Ruby and Java programing experience is advantageous)
  • Experienced in systems and platform configuration management using Puppet
  • Proficiency with source control, continuous integration and testing methods (particularly Git, Jenkins and the like)
  • Good understanding of Kickstart, NetBoot, PXE, DHCP, DNS, LDAP, monitoring tools, etc


這不禁讓我想到工作機會的確也應該是一個很重要的考量點,於是我就開始上網蒐集資料,看看到底現在市場上對於 OpenStack 與 CloudStack Engineer 的需求是如何  (唉...不過這些都是國外的需求....Orz...)

首先來看這篇  Guess what? OpenStack fans say OpenStack skills are in demand
,在這篇文章裡面提到OpenStack Engineer 的薪水還是比較高。



再來是比較工作需求的比較,OpenStack 還是遠勝於CloudStack



跟AWS比起來,大家都算是小咖~:P 不過這樣比我覺得有失公平,因為一個是會使用AWS的工作需求,跟會開發OpenStack 和 CloudStack的需求?



最後貼一下在indeed.com 的工作需求比較結果:

  • CloudStack 205 個需求
  • OpenStack 1115 個需求
似乎仍然是openstack 勝出~:P




結論...國外的月亮比較圓 (大誤)


延伸閱讀:

思科"批腿",CloudStack 逆襲 OpenStack


2013年11月8日 星期五

[筆記] 如何把你的open source 專案 納入maven central repo





要如何把你的open source 專案 納入maven central repo呢?常在很多open source 專案的parent pom.xml看到這樣的設定:

 <parent>
    <groupid>org.sonatype.oss</groupid>
    <artifactid>oss-parent</artifactid>
    <version>7</version>
  </parent>

原來這就是把專案加入maven repository 的方式,現在maven central repository 是由sonatype這個組織在管理,關於sonatype的介紹如下:

sonatype OSSRH (OSS Repository Hosting Service) uses Nexus to provide Maven repository hosting service for open source projects: https://oss.sonatype.org/. You can deploy snapshots, stage releases, and promote your releases so they will be synced to The Central Repository. All you need to do is to sign up a Sonatype JIRA account, create a JIRA ticket and make some POM/settings configuration. This document will guide you step by step for the details.



參考這份文件Sonatype OSS Maven Repository Usage Guide,步驟如下:

1. 決定你Release 的 License

2. 申請一個Sonatype JIRA account

3. Create a JIRA ticket

4. 設定要deploy 到哪個repository


2013年11月6日 星期三

我的文章居然被論文引用了!?

圖片來源:flickr


我要哭了 ~~我的文章居然被論文引用耶~特此寫一篇紀念一下~XD

這幾天看Blog的流量來源,意外的發現東海大學教育平台一直有流量連過來,很想知道是怎樣的課程會引用我的文章(因為要帳號登入才看的到內容),就去google 了一下網址,意外發現居然有兩篇論文引用我blogger的文章耶!!

  1. 跨雲端虛擬機遷移之研究—以雲端安全實驗平台為例( Cross-Cloud Virtual Image Migrate Research —Case of Cloud Security Experimental Platform)
  2. 物聯網之前瞻研究 Foresight Study of the Internet of Things

Anyway ...有人覺得有用就好,我會繼續努力的...Orz...

ps. 有沒有人可以跟我說東海大學教育平台哪個課程有引用我的文章啊?:P




謎之音:果然你寫的東西都太硬了...囧?rz..