PassMark DiskCheckup 這是一款由 PassMark 所提供的一套簡單的檢測硬碟工具軟體,它可以幫助使用者達到快速檢測的功能,並且允許用戶監控一個特定的硬碟驅動器的 SMART 屬性。
軟體特色
顯示啟動/停止時數的電源和硬碟的溫度
顯示設備信息
支援 E-mail通知檢測到臨界值
支援內置的磁盤自檢程序
2015/12/22
PassMark DiskCheckup 檢測硬碟工具軟體
2015/10/17
洛磯山國家公園遊記 - 走US-34公路看群山環繞, 再去Bear Lake環湖感受寧靜
從Fort Collins出發到 Rocky Mountain national park我覺得有兩條路線最值得去走走, 在廣大的洛磯山國家公園, 一是公路US-34登高看群山, 另一則是往山谷間湖泊間走,
首先到洛磯山國家公園的入園處
這地方要收費的, 我們只有一台車是收費20美元
所以大家可以集中坐車也許能省下一些入園費!
我們決定一天內走兩個路線都去體驗一下, 所以下面的遊記我們山路走一半,則返頭去往南路線的湖邊看看!
這個地圖, 表示我們從旅館到洛磯山國家公園的入園處
(當然若直接從埃斯特斯公園 Estes Park一直走US-34也是有另一入園處)
路線1. 往北走US-34公路看群山環繞
PS: 這條路線中有部分道路會於冬季封閉。(我們在Alpine Visitor Center最高點返頭去Bear Lake)
Trail Ridge Road 是指US 34號高速公路東起Estes Park,西至Grand Lake,橫越落磯山國家公園,並且跨越美國大陸落磯山脈分水嶺的一段道路,是美國境内最高的雙向柏油路,最高點達海拔12183呎。許多遊客喜歡在此附近徘迴,環視群峰。苔原上偶而可碰到成群的Mule deer。
沿此路由東往西重要景點有:
- Deer Ridge Junction:海拔 8,978 feet,是 Trail Ridge Road的東端,也是US.36和US.34的交接點,在此可看到Longs Peak及其週遭之高山。
- Many Parks Cruve:海拔 9,691呎,每年十月中旬到次年六月此公路即由此點起西至Colorado River Trailhead封閉。在此可看到:
Twin Sisters (11,413), Mt Lady Washington (13,281),
Mount Meeker (13,911),Longs Peak (14,255), …. - Rainbow Curve:海拔10,875呎,是 Horseshoe Park、 Alluvial Fan 和 the Beaver Ponds的最佳觀景點,此地設有公共廁所。在此點尚可觀看到下列高山:Mount Chapin (12,454),Mount Chiquita (13,069), Ypsilon Mountain (13,514), Mommy Mountain (13,425)….
- Forest Canyon:海拔 11,758 呎,是 Forest Canyon 和美國大陸落磯山脈分水嶺群山的最佳觀景點。在此可見下列高山Longs Peak,Stones Peak (12,922)
- Rock Cut:海拔 12,178呎,本是一突出岩石,現已打通使此路得以貫穿通過。
- Tundra Communities Trailhead :位於Rock Cut 附近,
- Lava Cliffs:海拔12,135呎,從此處停車處可遠眺 Desolation Peaks (12,949),Ypsilon Mountain (13,514)
- Gore Range:海拔12,048 呎,是早期西方移民來到此,所建立的一個打獵牧場。在此可遠眺Longs Peak,Stones Peak (12,922)
- Alpine Visitor Center: 海拔11,796呎 (3,595.公尺),這裡擁有園區唯一紀念品商店與餐廳,遊客幾乎都會到這邊來逛逛 選購紀念品或用餐。
- Alpine Ridge Trail: 由Alpine Visitor Center停車場的一角往上爬,僅僅 1/4哩的路程,爬升高度也只有300呎,但因為是高海拔,所以走起來也是蠻累人的。但當你爬到最高點時,你可環視四周的高山美景。
- Medicine Bow Curve :海拔11,640 呎。由此往北可遠眺20哩外的Medicine Bow Mountain Range 和35哩外的懷俄明州。
- from Milner Pass海拔10,758 呎, 沿著大陸分水嶺hike 5.5 miles one way to Mount Ida (12880′) , 爬升2112′.
路線2. 往南去Bear Lake環湖感受寧靜
集合點可以為: Meet at Bear Lake trailhead
Walking Map among Lakes & Falls, and we may probably shorten the walking plan if we feel tired.
- Bear Lake 距停車場僅250呎,環湖一周約0.5哩。湖後方乃是Longs Peak
- 從Bear Lake走到Nymph Lake約10分鐘的上坡路。 0.5 Miles, 爬升高度225’。湖面長滿了睡蓮 (Yellow Pond Lily)。
- 從Nymph lake再走到Dream Lake約20分鐘的上坡路。 0.6 Miles, 200’。
- 從Dream Lake再走到Emerald Lake約20分鐘的上坡路。 0.7 Miles, 180′
- 從Emerald Lake走回Dream Lake再走到 Lake Haiyaha。1.8 Miles。
- 從Lake Haiyaha走到Mills Lake 。2.8 Miles。
- 從Mills Lake走到Alberta Falls。2 Miles。
2015/09/24
小時候最想看但沒看完整套的卡通-人體大奇航
因為當時年紀小, 電視遙控器不是自己控制
而且也不記得正確撥出時間, 好在我還知道卡通名稱…好像是人體大啟航?! ….不是啦是人體大奇航~~~~
故事的設定很有趣, 可以吸引小朋友的注意
人體裡面有保護機制與健康運作成分, 這代表的是正義的力量, 保護人類主人的安全!
而邪惡的反方代表, 就是一堆大壞蛋, 想要把人類弄生病
壞蛋們千方百計的想要讓人類生病, 還會開行前會議討論策略
而圖片裡的白血球就是會不斷的吃掉壞東西然後犧牲, 雖然樣子看起來有點蠢, 但是很偉大!
對於當初還是小學生的我覺得收穫很多, 到了日後國中與高中的健康教育課程, 腦海裡有這些卡通畫面幫助我的記憶很多!
總之, 人體就是正反交戰的地方
看完擬人化的卡通就會覺得, 原來有這麼多機制在保護著我們
上面是一些, T細胞會直接對壞細胞滅殺, 與心臟血管等管道前進著, 與巨噬細胞保護…
好看可以找時間再來看看~~
影片於此: 人體大奇航 youtube播放清單
2015/09/21
Android - Wifi 設定為開啟(enable)之過程
1) 透過 WifiEnabler 開始enable wifi過程
android/packages/apps/Settings/src/com/android/settings/wifi/WifiSettings.java
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mP2pSupported = getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI_DIRECT); mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); .... // On/off switch is hidden for Setup Wizard if (!mSetupWizardMode) { Switch actionBarSwitch = new Switch(activity); if (activity instanceof PreferenceActivity) { PreferenceActivity preferenceActivity = (PreferenceActivity) activity; if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) { final int padding = activity.getResources().getDimensionPixelSize( R.dimen.action_bar_switch_padding); actionBarSwitch.setPaddingRelative(0, 0, padding, 0); activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM); activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams( ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.END)); } } mWifiEnabler = new WifiEnabler(activity, actionBarSwitch); } ...
2)
android/packages/apps/Settings/src/com/android/settings/wifi/WifiEnabler.java
2015/09/07
(轉載) Fort Collins 柯林斯堡- 美國幼兒園考察小記
轉載自 http://blog.sina.com.cn/s/blog_750a4a4d0101kn3n.html
宇哥到了美國才開始考察柯林斯堡的幼兒園的一切信息來源於以下五處:
1、來美國之前宇爹查閱的可選幼兒園單子
2、宇爹同事給推薦的附近幾個當地人覺得不錯的幼兒園
3、媽媽網上學習的有關幼兒園的資料
4、帶著宇哥去幼兒園實地考察的感受
5、實地考察過程中在麥當勞碰到的一個媽媽的感受和建議
下面一條條說說:
1、爸爸google了大概11個幼兒園,只簡單說說位置和價格:
- Harmony School:費用是一個月四天,255刀。位置在harmony大街上。離家大概1.1英里。走路大概20分鐘。
- TPAAK Preschool:費用是half day 30刀一天,full day 40刀一天。 half day $140/week(每週);full day $199/week(每週)。這個離家最近,走路大概在10分鐘。比宇哥之前的農大幼兒園還近。離家0.7英里不到
- Primrose School:費用是5天$220/week(每週);3天$165/week(每週);2天$145/week(每週);離家2英里,走路大概40分鐘。
- Bright Horizons:費用是2天$524/month(每月);3天$723/month(每月); 離家2.7英里。
- 後面的幾個幼兒園沒仔細了解,不在這裡列示了。
2、宇爹同事介紹的幾個幼兒園:
· Bright Horizons (East) – Timberline & Custer – really good/ my daughters went there同事女兒送的幼兒園,也在宇爹查閱的幼兒園名單裡。大貴啊。
· Primrose – Timberline – heard good things about it也在名單裡。
· KinderCare – McMurry
· Little People’s Landing – don’t know the exact location這個其實也在名單裡。
3、媽媽網上學習的有關幼兒園的資料
幾個學術帖:
· http://www.xzbu.com/9/view-947273.htm
· http://www.xzbu.com/9/view-946943.htm
大致對美國的幼兒園有個概要的了解,摘出來做個簡單歸納。
美國的幼兒園分為幾個階段:
· 5 歲兒童入讀的幼兒園(Kindergarten)已被納入國民教育體系,成為正規教育的起點。所以public的就是納入國民教育體系的,是free的。每個州對5歲的定義月份不同,科州的定義是十月一日之前出生的。
· 學前教育指5歲前的兒童(包括5歲)在未正式入學之前接受的教育。
· 3 歲以下兒童入託或入讀的場所被稱為嬰幼兒計劃(Infant/Toddler Program);
· 3 歲和 4歲兒童的學習場所為學前班(Preschool/Pre-kindergarten)。
所以宇哥當時上幼兒園的時候屬於Pre-K。就是給4歲-6歲的小孩上的學前班。
但因為每年8月註冊的時候有些小朋友還沒有到5歲,所以多數時候Pre-K的班級裡年齡差度相對比較大。
宇哥幼兒園裡他的個子算是比較高的。而三歲以下娃娃待的幼兒園費用是很貴的。
4、帶著宇哥去幼兒園實地考察的感受
宇哥當時堅持不上幼兒園,估計在家玩野了吧,跟媽媽在一起爽的一塌糊塗。在家玩了一個月後,媽媽發飆了。爸爸趕緊說一周內上幼兒園,必須的!於是,問宇哥,宇哥說12天以後。那好了,考察吧,宇哥又說了,要去遠一點的地方上幼兒園。得,那就等車吧,結果宇爹的駕照申請再次受到阻礙,我們不得不放棄了等車再上幼兒園的決定,打算兩週之內把宇哥幼兒園的事情搞定。
十月,我帶宇哥親子去幼兒園考察。說實話走路去,的確很遠很累。
首先我們去的第一個目標是Primrose School。之前跟pre-k的老師郵件聯繫過,沒想到我們路上經過harmony school。索性就一併了解了。一開始宇哥還不敢進,等真的進去了,就被裡面的玩具所吸引了。自顧自在裡面玩了起來,我正好跟負責人一起聊。等聊完了他還沒玩夠。
· 關於Harmony School:幼兒園作息時間在9:30-3:30.只有一個pre-k的班。已經滿員。登記了等位子。但是這裡還開了一個enrichment program的班,同樣招收3-5歲的小朋友,價格是30刀一天。也可以按照送幼兒園的時間來選擇性收費,比如送12週150刀。 9週115刀,8週105刀。早晨7點送到8:30額外收5刀,還可以在不同時間段收費,7:00-8:30收5刀,8:30-11:30收17刀等等。總之加起來價格差不多,而且非常靈活。
我還參觀了這個項目班,班裡只有5個孩子,在自顧自地玩,老師在辦公。裡面有一個亞裔,一個黑人,其他都是白人。也參觀了樓上的pre-k的班,學生也不多,大概10個,倆個老師,老師正在開心滴帶著學生扮演小兔子。幼兒園很精緻小巧,跟五道口的外婆的廚房很類似,親切自然,跟家裡的遊戲室一樣很舒服。問宇哥,你喜歡麼,答:有點喜歡。
· 關於Primrose School
告別了harmony,我們來到了Primrose School.實話說,我對這個幼兒園還是很喜歡的,無論是他們的網站,還是跟老師事先的mail來往,都讓我在選擇幼兒園的砝碼上加足了分數。
關於Primrose School:迎面而來的是他們諾大的playground(遊樂場)嶄新並且時尚的遊樂設備。宇哥因為拿個大斧頭,所以經過的時候遊玩的小朋友很友好地跟他打著招呼。由於到達的時候已經1點鐘,所以沒有機會去教室餐館,僅僅在大廳跟接待聊了聊,他們的作息時間也是到下午3:30結束。為了安定比較不安穩的宇哥,還給了宇哥一個畫冊和蠟筆讓他畫。幼兒園的門口還有校車,也是很新很新的。總之,對這個幼兒園充滿了好感。
告別了幼兒園,我們來到了附近的麥當勞,第一次到這裡的麥當勞,沒想到還真的是不錯,有著巨大的遊樂場,遊樂場的面積甚至超過了就餐的面積的一半。宇哥在裡面玩了很久很happy。
· 關於TPAAK:這個是離家最近的幼兒園,除了沒車就是因為fc經常下雪,所以最後還是捨棄了primrose,宇哥最終答應去的育兒園,連哄帶騙的就帶他去看幼兒園了。去考察的那天是中午十二點的樣子。見到了Shanda,相當溫和舒服的一個老師,負責pre-k和k,宇哥在空大的教室玩了一會兒,Shanda告訴我們可以在本週五帶宇哥試園一天,free,免費一天。幼兒園的過道和裝飾也很舒服,讓我們從每個角落裡都能體會到孩子們的快樂。
5、實地考察過程中在麥當勞碰到的一個媽媽的感受和建議
在麥當勞,宇哥邊玩,我邊學習幼兒園給的資料,碰到了一個媽媽聊了起來,給我推薦公立幼兒園。我們一起在地圖上尋找,才發現地圖上標記的都是公立的。而在宇爹的list(名單)裡,離家最近的tpaak就是公立幼兒園。她大力推薦了這個幼兒園,說這個幼兒園的老師非常kind,溫和耐心。還說harmony的不好,老師很冷漠。還給我舉了她家女兒上幼兒園的經歷,並且答應,如果我沒車,她可以約我一起開車帶我把fc的公立幼兒園都看一遍。我們互相留了電話號碼,我答應給她電話。
· 最終我們選擇了離家最近的TPAAK。
跟在北京差不多,離家近是最幸福的。何況,美國的幼兒園不提供午餐,所以媽媽還需要花功夫給帶午餐。幼兒園每天提供三個snake(零食),大概是早晨9點一次,午睡起來後一次,下午5點鐘一次。零食包括:蘋果汁飲料一小盒,奶酪,蔬菜沙拉,水果,葡萄乾,餅乾等不一。 TPAAK最吸引我的還是他們從早晨七點上班到傍晚6點。就憑這點這價格就算不錯了。最後我們根據自己的經濟情況選擇了一周送兩天,宇哥自己選了周三和周四。
2012最讓人安心的事情終於結束了,撒花~~~~~
2015/07/17
C# 用SortedDictionary Class 取代 C++的std::map
工作上的需要, 我寫程式碼必須做配對 key, and Value
但是希望不要限制 type, 可以自由度高一點
C++的話 會想到std::map這個方式
但是我們今天程式碼是透過C#撰寫
那就要找另外的方式, 上網找看看吧! 找到如下…
What is C# equivalent of The equivalent would be class SortedDictionaryin the System.Collections.Generic namespace.If you don't care about the order the class Dictionary in the System.Collections.Generic namespace would probably be sufficient.
既然有兩個class可以使用, 就選SortedDictionary吧~
MSDN有完整的說明與介紹, 如何使用SortedDictionary來開發~
初始與放進去:
// Create a new sorted dictionary of strings, with string // keys. SortedDictionaryopenWith = new SortedDictionary (); // Add some elements to the dictionary. There are no // duplicate keys, but some of the values are duplicates. openWith.Add("txt", "notepad.exe"); openWith.Add("bmp", "paint.exe"); openWith.Add("dib", "paint.exe"); openWith.Add("rtf", "wordpad.exe");
修改, 若不存在這個key則會新增進去:
// If a key does not exist, setting the indexer for that key // adds a new key/value pair. openWith["doc"] = "winword.exe";
可以用這段KeyValuePair來檢驗是否正確的key & value被放進去:
// When you use foreach to enumerate dictionary elements, // the elements are retrieved as KeyValuePair objects. Console.WriteLine(); foreach( KeyValuePairkvp in openWith ) { Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value); }
大概就這樣~
2015/06/26
2015/06/18
2014全球NB出貨市占 全球筆電出貨恢復成長達1.75億台
集邦科技昨日公布最新研究報告,2014年全球筆電出貨恢復成長達1.75億台,其中惠普(HP)以逾20%市占率穩居全球第一,而華碩則首度超越宏碁,高居全球第四;蘋果則因降價策略奏效,橫掃中高階筆電市場,成長幅度以46.4%奪冠。
TrendForce也示警,筆記型電腦分析師陳虹燕表示,2015年筆電整體市場的出貨量預期僅能與去年持平,意味品牌追求的成長將來自於其他品牌的衰退。2015年市佔排名競爭上,將呈現兩大四小的關係,惠普與聯想依然是彼此的最大敵手,而第三名到第六名的佔比都在10~12%間擺盪,是一種隨時可超越或被超越的緊張關係。
TrendForce統計,2014年筆記型電腦市場經過了Windows XP 退役帶來的換機潮以及微軟與品牌廠商合作祭出的低價筆電等刺激方案後,從2013年的谷底爬起,2014年整體筆電出貨量達1.75億,年成長3.6%,其中,前七大品牌的成長更高達14.1%。
惠普從第1季就展現出貨回溫的跡象,之後更是每季正成長,第4季的出貨更是達到2010年以來的歷史新高點,出貨量較2013年成長19.5%,並以20.1%的市佔率居龍頭地位。
聯想(不含併購品牌)年出貨成長14%,市佔17.5%位居第二,因中國內需市場出現停滯,使得總量上未能突破惠普;戴爾受惠於Windows XP退役帶來的商務換機潮,使其年成長12.2%,並且穩居第三名,市佔12.3%,繳出戴爾私有化後的第一張亮麗成績單。
緊追在後的華碩憑藉10.1吋2-in-1 PC T100貢獻了一成多的出貨量,市佔擴張至11%,打敗宏碁成為第四名;宏碁則是倚靠Chromebook的優異表現穩住陣腳,出貨量雖未獲大幅成長,但幫助宏碁擺脫了大幅衰退的窘境,名次小幅下滑至第五名。
2014年最豐收的品牌非蘋果莫屬,積極的價格調降策略,使之橫掃中高階筆電市場,年增率高達46.4%,且市佔率增加至9.3%,一口氣超越東芝成為第六名,且出貨量緊逼宏碁。(工商時報)
2015/06/08
解決在visual studio 搜尋結果無法顯示 (search result empty display...)
Please check if the following registry key is ok. Fixing this solved the issue for me.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}]@="PSFactoryBuffer"[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32]@="C:\\Program Files (x86)\\Common Files\\Microsoft Shared\\MSEnv\\TextMgrP.dll""ThreadingModel"="Both"
Ref: http://stackoverflow.com/questions/13386856/find-results-not-displaying-results
2015/04/28
Wireless router中的UPnP是做什麼用的?
UPnP 是一種通訊協定,其主要功能是供家中的設備可以輕易的且自動的連結到網路並完成網路相關設定。
不需要您本人手動去設定就可以使用的意思。
所以你的 router 有支援並打開這項功能後,您家中的視訊設備(大部分都是支援UPnP)接上網路、打開電源。
接著你的 作業系統也支援的話,以winodws 為例,「我的電腦」中就會看到您新增的設備,如無線router、media server等等。
—-
家用router通常預設會開啟firewall(防火牆)及NAT, PC的作業系統也預設開啟firewall, 在此前提下, 若應用程式使用的網路port(連接埠)非極well-known(如http或聊天程式)的, 通常很容易遇到連線不順暢的狀況, 最近聽到的災情就是P2P應用程式(BT及eMule等)下載很慢.
為了因應大部份使用者不具備豐富網路知識的現況, 就誕生了uPnP這種漏洞讓應用程式去鑽(此專指自動建立port forwarding規則的部份), 讓使用者的挫折感可以有某種程度的降低. 仔細想想就會知道uPnP是矛盾的產物, firewall不就是要讓網路環境安全的嗎? 為什麼要開洞讓程式去灒呢?? 且區域網路端的任何PC都能亂鑽(不需權限就能建port forwarding規則, 或是直接刪掉別的PC建的規則).
雖說uPnP這部份的功能是為方便性而存在的, 但實際上市面的SOHO分享器產品的uPnP可能不穩定或效能不佳, PC一多就經不起考驗.
—-
您可以使用Wiki查詢一下UPnP的用途
UPnP可以被應用的用途挺廣泛的
這是一種自動化協定,重點是設備與設備(可能是軟體也可能是硬體)之間的溝通方式
像是MSN與Firewall過去有打網路電話聽不到聲音或是無法傳檔等問題
也可以透過UPnP協定來讓MSN與Firewall經過自動溝通後,做出正確的設定來解決
BT,EMule也可以透過UPnP協定與支援UPnP的分享器進行溝通
簡化使用者(你我他)安裝後的操作與設定程序
另外,在多媒體方面
XBOX 360與NAS設備之間若相互支援UPnP
則XBOX 360級可以透過UPnP找到NAS上的影片與照片
並且進一步的去播放與顯示
但是這樣的東西,有某種程度上的風險
因為使用者可能無法得知Firewall或是分享器究竟被開啟了哪些通訊埠
—-
沒錯,所以為了安全性考量,UPnP還是關閉比較好。
再個別針對軟體來開特定的port,會比較安全。
當然如果沒了資訊基礎的人,UPnP還是打開,避免設定上的麻煩。
2015/04/24
php 寫寄信內容用 <<<EOC
用php的語法, 要寫信件內容
範例如下, 記得變數要使用 {} 包起來
$mail_content = <<<EOC您好! 這是由網站 {$web-base} 所發出的確認信, 如果您未曾於在此註冊過,請忽略此信件。 您必須點選以下連結並通過身份確認後才可以登入 {$web-base}/verify.php 請輸入您的 E-Mail 以及確認碼 $pw-key 來進行驗證。 謝謝!EOC; mail($email, "帳號驗證信件", $mail_content, "From: =xxxxxxx", '-f'.$mail_manager );
參考說明
2015/04/16
在makefile打印訊息 : echo, $(error xx) , 或者使用$(warning xx)
除了echo之外,
也可以試著使用$(error xx) 或者使用$(warning xx)
2015/01/14
Hadoop 研究筆記 隨手記
0.前言
http://azure.microsoft.com/zh-tw/solutions/hadoop/
備份下來:
Hadoop 簡史Hadoop 在 2005 年由 Mike Cafarella 和 Doug Cutting 建立 (以他小孩的玩具象命名),最初是針對 Web 相關的搜尋資料而設計。現在是 Apache 軟體基金會裡的一個開放原始碼、社群建置的專案,由各種組織和產業廣為採用。Microsoft 是投入此社群開發的積極參與者。專為大型資料、日常伺服器而打造Hadoop 受歡迎的一個理由就是其經濟誘因。以前處理大型資料集需要超級電腦和其他昂貴的特殊硬體。Hadoop 可在業界標準伺服器上實現可靠、可擴充的分散式運算,讓您以較低的預算處理數 PB 以上的資料。Hadoop 的設計還可以從單一伺服器擴充到數以千計的機器,並偵測和處理應用程式層的失敗來提高可靠性。洞察所有類型的資料經過估計,組織目前處理的資料,有將近 80% 並不是單純以欄和列來包裝而已。反而是一大堆凌亂不堪的電子郵件、社交媒體動態消息、衛星影像、GPS 訊號、伺服器記錄及其他非結構化、非關聯式的資料。Hadoop 幾乎可以處理任何檔案或格式 (這是另外的重要優點),所以組織可以提出他們以前認為不可能的問題。
1. 先看看基本原理吧!
網路上滿多資料的, 但一下子講太多了, 沒fu
先看看這篇文章, 大致上講了核心價值
http://www.dotblogs.com.tw/rickyteng/archive/2012/12/11/85556.aspx
備份下來:
[bigdata]小象幫幫忙,Hadoop 能幫什麼忙?Hadoop 文獻探討微軟巨量資料策略轉向,全面支援Hadoophttp://www.ithome.com.tw/itadm/article.php?c=77576微軟表示,全面支援 Apache Hadoop,這消息說明了:Hadoop 夠熱門,讓微軟無法抵擋。俗話說:「打不動,就加入」,現在微軟就加入了。 這不是第一個微軟採納的開放軟體。jQuery,在2008年加入微軟的 visual studio。 並且 ASP .NET MVC, ASP .NET AJAX 都將採用 jQuery 的技術。(舊消息)最近熱門關鍵字,從雲端,換成 Big Data,有翻譯成「巨量資料」、有翻譯成「海量資料」, 到底這是什麼東西?為什麼幾乎每個介紹文章都會講到 Hadoop ?為什麼講雲端的時候有的也會提到 Hadoop?說來話長。何謂Big Data?這問題目前沒辦法正面回答,因為個人認為現在這東西還在成長變化中, 也不是一個標準,所以無法用文字嚴格定義。網路上多數的文章會這麼說:「因為雲端時代的來臨,資料量增加的速度非常快,所以需要一些新方法來應付這些資料。 巨量資料的特性有 3V,Volume(資料量大),Volecity(產生速度快),Variety(資料多樣性高) 在合理時間及資源下,巨量資料的技術才能夠應付這些需求。」其實,這還是很模糊的描述。所以,只能知道,巨量資料並不是突然跑出來的東西。但「巨量資料」這個名詞是為了方便討論某些情況下,使用某些技術而產生的新名詞。巨量資料並不是每一個人或每一個企業都會面臨到的,有能力產生上面描述的 3V 的資料,才會有需要使用到巨量資料的技術。因此,接下來,我們反過來,從被微軟納入解決方案核心的 Hadoop 來看。看 Hadoop 能夠解決什麼問題,至少可以了解,巨量資料大概是什麼東西。Hadoop 提供的核心功能有二,名字叫 HDFS 以及 MapReduce。HDFS 是 Hadoop Distributed File System 的縮寫。MapReduce 則是 Hadoop 採用分散式計算的技術。也就是,它基本上要解決的問題有兩個,一個是儲存,一個是計算。在 HDFS 的設計概念是這樣的。在一群電腦裡面,找一台電腦當老大,叫做 Master Node。它必須負責管理所有的電腦(包含自己)的資料的存放狀態、控制讀寫動作。所以裝了一個程式叫 Name Node 來做管理這件事。也裝了一個 Data Node 的程式來放資料。其他的電腦,叫做 Worker Node,裝了一個 Data Node 的程式來放資料。放資料的規則是,先把一個檔案,切成數個小塊(block),每塊為 64 MB,然後, Name Node 會讓檔案塊,分散到各個不同的 Data Node 去,而且,還會讓整個電腦叢集裡,每一個檔案塊,都有三份。若是 Name Node 發現檔案塊遺失或損壞,會開始尋找其他的 Data Node 上的副本來複製,使得整個電腦叢集維持每個檔案塊的數量都有三份。從以上的設計慨念裡,可以知道:(1)它不怕單一資料存放區的硬體壞掉,壞掉照常工作,並自動回復、(2)它不怕單一檔案的大小超過一個磁碟區的大小、(3)資料存放區的大小,可以動態增加。(註1)註1:http://www.classcloud.org/cloud/wiki/Hadoop_Lab8要講 MapReduce 的設計概念,先講解一下,MapReduce 是什麼。在 functional language 裡面可常見到這個字。它其實是兩個英文字連起來的。也就是 Map 及 Reduce。 Map 是一種具有某種行為特色的函數,三言兩語說不清,我舉一個例子來說明。假設我有一個數列A,1~10,我想要得到另一個數列B,它裡面的數字是數列A的每個數字的 2 倍,相當於B = f(A),f(x): y=2x。撇開數學式不看。寫程式會這樣寫(C#):int[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int[] B = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //初值化的數列 static int f(int x) { return 2 * x; }for (int i = 0; i < A.Length; i++) { B[i] = f(A[i]); }這程式裡面看到,數列A、數列B,還有函數 f。剩下來的是那個迴圈,它的動作是把每個數列A的數值,經過函數 f 得到的值,放到數列B 對應的位置。只要是可以完成這一類事情的函數,就叫做 Map 函數。這種函數的特色就是可以平行運算。以上述的例子,把 map 函數寫出來,程式再改寫一下會成為:int[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int[] B = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; //初值化的數列 static int f(int x) { return 2 * x; }static int[] map(Func_func, int[] _a) { int[] _b = new int[_a.Length]; for (int i = 0; i < _a.Length; i++) { _b[i] = _func(_a[i]); } return _b; }B = map( f, A) Reduce 也是一種具備某種行為特色的函數。也是要舉一個例子來說明。假設一個數列A,1~10,要計算從 1 加到 10,程式會寫成:int f2(int x, int y){ return x + y; } int[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int C = 0; for (int i = 0; i < A.Length; i++) { C = f2(C, A[i]); }其中,把迴圈部份依然可以改寫成函數,整個程式變成:int f2(int x, int y){ return x + y; } static int reduce(Func _func, int[] _a) { int _c = 0; for (int i = 0; i < _a.Length; i++) { _c = _func(_c, _a[i]); } return _c; }int[] A = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int C = 0; C = reduce(f2, A);凡是可以完成這一類工作的函數,都叫做 Reduce 函數。所以,MapReduce 的技術,是已經在 Hadoop 中準備好可供分散式計算呼叫的 Map,以及 Reduce 的函數。而使用的人,要把計算的函數,寫成可被 Map 或 Reduce 呼叫。如此就可以利用分散式運算來縮短運算時間。例如,最簡單的分散式運算版的 Map,就不用迴圈,改成分給 10 個 Node 各自運算,等全部得到值,放入數列,再回傳數列,依照 Map 的概念來寫程式,就不怕平行化運算時會出問題了。了解了 MapReduce 的意思之後,就可以看懂介紹 MapReduce 的示意圖了。要用 MapReduce 技術來計算,首先要把程式,寫成可被 Map,Reduce 使用的樣子。在叢集中,Master Node 還是當老大,負責管理所有的 Job,所以安裝一個叫 Job Tracker 的程式,而 Task Tracker 程式,則是裝在所有可以當計算的電腦裡。當運算開始,Master Node 分配 Map 函數要做的 Task 給 Worker Node,分配時會盡量交給資料在附近的 Node,如此會減少資料傳輸時間。Map 函數計算完的結果會存下來。等到的 Map 程式的結果出來,Reduce 程式可緊接著執行,即可將最終結果算出來。總和來看,Hadoop 核心所提供的兩個功能,解決了檔案存放的問題、解決了系統擴張的問題、解決了系統備援的問題、解決了分散式運算的問題。依此來推測, Hadoop 可以被大家接受成為巨量資料的主流技術,巨量資料的主要需求及適用範圍即是這些東西。但是巨量資料的所有難題,用 Hadoop 就可以解決了嗎?其實並沒有。HDFS 與 MapReduce 只解決了基本的問題,我們可以從Apache 基金會 Hadoop 相關的其他專案的功能來了解 Hadoop 本身做不到的事。(1) HBase,是專門用在 Hadoop 檔案系統上的資料庫系統。以此推知,Hadoop 沒有資料庫系統。(2) Hive,是建置在 HDFS 上的分散式資料倉儲系統,可讓使用者以慣用的 SQL 語法,存取檔案中的大型資料集。以此推知,Hadoop 沒有 SQL 語法查詢功能。(3) Pig,是 Script 語言,可用來撰寫 MapReduce 程式,不懂 Java 也可以使用這個語言開發 MapReduce 程式。以此推知,MapReduce 程式在 Hadoop 系統是用 Java 撰寫,要效能好,就要用 Java 來寫。(4) ZooKeeper,是監控和協調 Hadoop 分散式運作的集中式服務,提供各個伺服器的配置和運作狀態資訊,用於提供不同 Hadoop 系統角色之間的工作協調。(5) Mahout,立即可用的 MapReduce 函式庫,常見的數值分析方法,業集分類和篩選方法,都有對應的函數可以呼叫。這些專案的功能,可以來解決巨量資料的其他需求,而這些需求,不是每個人都需要,所以不在核心功能之中。也可以想見巨量資料的需求,還是因人而異,而且差異很大。希望這篇有把 Hadoop 能做什麼說清楚,也希望有把巨量資料的其中一個面向說清楚。
2. 看看這個投影片吧!
超用心整理 Hadoop 的故事, 與架構演進過程
3. 練習各種實作囉..
Crawlzilla 安裝與 Demo 方法 (來源)