<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    #

    熟悉Oracle9i的人應該都知道,Oracle9i中有2種日志,一種稱為Redo Log(重做日志),另一種叫做Archive Log(歸檔日志),但是這兩種日志在Oracle9i數據庫中所起到的作用相信很難有人說清楚,下面我就結合自己對Oracle9i的認識來進行一下說明

    重做日志redo log file是LGWR進程從Oracle實例中的redo log buffer寫入的,是循環利用的。就是說一個redo log file(group) 寫滿后,才寫下一個。
    歸檔日志archive log是當數據庫運行在歸檔模式下時,一個redo log file(group)寫滿后,由ARCn進程將重做日志的內容備份到歸檔日志文件下,然后這個redo log file(group)才能被下一次使用。

    不管數據庫是否是歸檔模式,重做日志是肯定要寫的。而只有數據庫在歸檔模式下,重做日志才會備份,形成歸檔日志。

    歸檔日志結合全備份,用于數據庫出現問題后的恢復使用。

    posted @ 2010-10-19 15:00 ivaneeo 閱讀(512) | 評論 (0)編輯 收藏

    分布式計算開源框架Hadoop介紹

     作者 岑文初 發布于 2008年8月4日 上午2時15分

    社區

    Java

    主題

    網格計算,

    集群與緩存

    標簽

    Hadoop

    ── 分布式計算開源框架Hadoop入門實踐(一)

    相關廠商內容

      迷你書免費下載:開源選型、Struts 2、Scrum和XP、GRails

      SOY Framework:Java富客戶端快速開發框架

    在SIP項目設計的過程中,對于它龐大的日志在開始時就考慮使用任務分解的多線程處理模式來分析統計,在我從前寫的文章《Tiger Concurrent Practice --日志分析并行分解設計與實現》中有所提到。但是由于統計的內容暫時還是十分簡單,所以就采用Memcache作為計數器,結合MySQL就完成了訪問 控制以及統計的工作。然而未來,對于海量日志分析的工作,還是需要有所準備?,F在最火的技術詞匯莫過于“云計算”,在Open API日益盛行的今天,互聯網應用的數據將會越來越有價值,如何去分析這些數據,挖掘其內在價值,就需要分布式計算來支撐海量數據的分析工作。

    回過頭來看,早先那種多線程,多任務分解的日志分析設計,其實是分布式計算的一個單機版縮略,如何將這種單機的工作進行分拆,變成協同工作的集群, 其實就是分布式計算框架設計所涉及的。在去年參加BEA大會的時候,BEA和VMWare合作采用虛擬機來構建集群,無非就是希望使得計算機硬件能夠類似 于應用程序中資源池的資源,使用者無需關心資源的分配情況,從而最大化了硬件資源的使用價值。分布式計算也是如此,具體的計算任務交由哪一臺機器執行,執 行后由誰來匯總,這都由分布式框架的Master來抉擇,而使用者只需簡單地將待分析內容提供給分布式計算系統作為輸入,就可以得到分布式計算后的結果。

    Hadoop是Apache開源組織的一個分布式計算開源框架,在很多大型網站上都已經得到了應用,如亞馬遜、Facebook和Yahoo等等。 對于我來說,最近的一個使用點就是服務集成平臺的日志分析。服務集成平臺的日志量將會很大,而這也正好符合了分布式計算的適用場景(日志分析和索引建立就 是兩大應用場景)。

    當前沒有正式確定使用,所以也是自己業余摸索,后續所寫的相關內容,都是一個新手的學習過程,難免會有一些錯誤,只是希望記錄下來可以分享給更多志同道合的朋友。

    什么是Hadoop?

    搞什么東西之前,第一步是要知道What(是什么),然后是Why(為什么),最后才是How(怎么做)。但很多開發的朋友在做了多年項目以后,都習慣是先How,然后What,最后才是Why,這樣只會讓自己變得浮躁,同時往往會將技術誤用于不適合的場景。

    Hadoop框架中最核心的設計就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的, 簡單的一句話解釋MapReduce就是“任務的分解與結果的匯總”。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。

    MapReduce從它名字上來看就大致可以看出個緣由,兩個動詞Map和Reduce,“Map(展開)”就是將一個任務分解成為多個任務, “Reduce”就是將分解后多任務處理的結果匯總起來,得出最后的分析結果。這不是什么新思想,其實在前面提到的多線程,多任務的設計就可以找到這種思 想的影子。不論是現實社會,還是在程序設計中,一項工作往往可以被拆分成為多個任務,任務之間的關系可以分為兩種:一種是不相關的任務,可以并行執行;另 一種是任務之間有相互的依賴,先后順序不能夠顛倒,這類任務是無法并行處理的?;氐酱髮W時期,教授上課時讓大家去分析關鍵路徑,無非就是找最省時的任務分 解執行方式。在分布式系統中,機器集群就可以看作硬件資源池,將并行的任務拆分,然后交由每一個空閑機器資源去處理,能夠極大地提高計算效率,同時這種資 源無關性,對于計算集群的擴展無疑提供了最好的設計保證。(其實我一直認為Hadoop的卡通圖標不應該是一個小象,應該是螞蟻,分布式計算就好比螞蟻吃 大象,廉價的機器群可以匹敵任何高性能的計算機,縱向擴展的曲線始終敵不過橫向擴展的斜線)。任務分解處理以后,那就需要將處理以后的結果再匯總起來,這 就是Reduce要做的工作。

    圖1:MapReduce結構示意圖

    上圖就是MapReduce大致的結構圖,在Map前還可能會對輸入的數據有Split(分割)的過程,保證任務并行效率,在Map之后還會有Shuffle(混合)的過程,對于提高Reduce的效率以及減小數據傳輸的壓力有很大的幫助。后面會具體提及這些部分的細節。

    HDFS是分布式計算的存儲基石,Hadoop的分布式文件系統和其他分布式文件系統有很多類似的特質。分布式文件系統基本的幾個特點:

    1. 對于整個集群有單一的命名空間。
    2. 數據一致性。適合一次寫入多次讀取的模型,客戶端在文件沒有被成功創建之前無法看到文件存在。
    3. 文件會被分割成多個文件塊,每個文件塊被分配存儲到數據節點上,而且根據配置會由復制文件塊來保證數據的安全性。

    圖2:HDFS結構示意圖

    上圖中展現了整個HDFS三個重要角色:NameNode、DataNode和Client。NameNode可以看作是分布式文件系統中的管理 者,主要負責管理文件系統的命名空間、集群配置信息和存儲塊的復制等。NameNode會將文件系統的Meta-data存儲在內存中,這些信息主要包括 了文件信息、每一個文件對應的文件塊的信息和每一個文件塊在DataNode的信息等。DataNode是文件存儲的基本單元,它將Block存儲在本地 文件系統中,保存了Block的Meta-data,同時周期性地將所有存在的Block信息發送給NameNode。Client就是需要獲取分布式文 件系統文件的應用程序。這里通過三個操作來說明他們之間的交互關系。

    文件寫入:

    1. Client向NameNode發起文件寫入的請求。
    2. NameNode根據文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
    3. Client將文件劃分為多個Block,根據DataNode的地址信息,按順序寫入到每一個DataNode塊中。

    文件讀?。?/p>

    1. Client向NameNode發起文件讀取的請求。
    2. NameNode返回文件存儲的DataNode的信息。
    3. Client讀取文件信息。

    文件Block復制:

    1. NameNode發現部分文件的Block不符合最小復制數或者部分DataNode失效。
    2. 通知DataNode相互復制Block。
    3. DataNode開始直接相互復制。

    最后再說一下HDFS的幾個設計特點(對于框架設計值得借鑒):

    1. Block的放置:默認不配置。一個Block會有三份備份,一份放在NameNode指定的DataNode,另一份放在 與指定DataNode非同一Rack上的DataNode,最后一份放在與指定DataNode同一Rack上的DataNode上。備份無非就是為了 數據安全,考慮同一Rack的失敗情況以及不同Rack之間數據拷貝性能問題就采用這種配置方式。
    2. 心跳檢測DataNode的健康狀況,如果發現問題就采取數據備份的方式來保證數據的安全性。
    3. 數 據復制(場景為DataNode失敗、需要平衡DataNode的存儲利用率和需要平衡DataNode數據交互壓力等情況):這里先說一下,使用 HDFS的balancer命令,可以配置一個Threshold來平衡每一個DataNode磁盤利用率。例如設置了Threshold為10%,那么 執行balancer命令的時候,首先統計所有DataNode的磁盤利用率的均值,然后判斷如果某一個DataNode的磁盤利用率超過這個均值 Threshold以上,那么將會把這個DataNode的block轉移到磁盤利用率低的DataNode,這對于新節點的加入來說十分有用。
    4. 數據交驗:采用CRC32作數據交驗。在文件Block寫入的時候除了寫入數據還會寫入交驗信息,在讀取的時候需要交驗后再讀入。
    5. NameNode是單點:如果失敗的話,任務處理信息將會紀錄在本地文件系統和遠端的文件系統中。
    6. 數 據管道性的寫入:當客戶端要寫入文件到DataNode上,首先客戶端讀取一個Block然后寫到第一個DataNode上,然后由第一個 DataNode傳遞到備份的DataNode上,一直到所有需要寫入這個Block的NataNode都成功寫入,客戶端才會繼續開始寫下一個 Block。
    7. 安全模式:在分布式文件系統啟動的時候,開始的時候會有安全模式,當分布式文件系統處于安全模式的情況下,文 件系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必 要的復制或者刪除部分數據塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除文件也會有安全模式不允許修改的出錯提示,只 需要等待一會兒即可。

    下面綜合MapReduce和HDFS來看Hadoop的結構:

     

    圖3:Hadoop結構示意圖

    在Hadoop的系統中,會有一臺Master,主要負責NameNode的工作以及JobTracker的工作。JobTracker的主要職責 就是啟動、跟蹤和調度各個Slave的任務執行。還會有多臺Slave,每一臺Slave通常具有DataNode的功能并負責TaskTracker的 工作。TaskTracker根據應用要求來結合本地數據執行Map任務以及Reduce任務。

    說到這里,就要提到分布式計算最重要的一個設計點:Moving Computation is Cheaper than Moving Data。就是在分布式處理中,移動數據的代價總是高于轉移計算的代價。簡單來說就是分而治之的工作,需要將數據也分而存儲,本地任務處理本地數據然后歸 總,這樣才會保證分布式計算的高效性。

    為什么要選擇Hadoop?

    說完了What,簡單地說一下Why。官方網站已經給了很多的說明,這里就大致說一下其優點及使用的場景(沒有不好的工具,只用不適用的工具,因此選擇好場景才能夠真正發揮分布式計算的作用):

    1. 可擴展:不論是存儲的可擴展還是計算的可擴展都是Hadoop的設計根本。
    2. 經濟:框架可以運行在任何普通的PC上。
    3. 可靠:分布式文件系統的備份恢復機制以及MapReduce的任務監控保證了分布式處理的可靠性。
    4. 高效:分布式文件系統的高效數據交互實現以及MapReduce結合Local Data處理的模式,為高效處理海量的信息作了基礎準備。

    使用場景:個人覺得最適合的就是海量數據的分析,其實Google最早提出MapReduce也就是為了海量數 據分析。同時HDFS最早是為了搜索引擎實現而開發的,后來才被用于分布式計算框架中。海量數據被分割于多個節點,然后由每一個節點并行計算,將得出的結 果歸并到輸出。同時第一階段的輸出又可以作為下一階段計算的輸入,因此可以想象到一個樹狀結構的分布式計算圖,在不同階段都有不同產出,同時并行和串行結 合的計算也可以很好地在分布式集群的資源下得以高效的處理。

    posted @ 2010-10-14 19:37 ivaneeo 閱讀(211) | 評論 (0)編輯 收藏

    1.Android團隊提供的示例項目 

    如果不是從學習Android SDK中提供的那些樣例代碼開始,可能沒有更好的方法來掌握在Android這個框架上開發。由Android的核心開發團隊提供了15個優秀的示例項 目,包含了游戲、圖像處理、時間顯示、開始菜單快捷方式等。 

    地址:http://code.google.com/p/apps-for-android/ 

    附件Amazed2_1-300x200.jpg 

    Amazed 2 Android App

     

    2.Remote Droid 

    RemoteDroid是一個Android應用,能夠讓用戶使用自己的無線網絡使用無線鍵盤、觸摸屏操作手機。這個項目為開發者提供了如網絡連接、觸 摸屏手指運動等很好的樣例。 

    地址:http://code.google.com/p/remotedroid/ 

    附件remotedroid.jpg 

    Remote Droid

     

    3.TorProxyShadow 

    TorProxy應用實現了Android手機無線電電傳通訊(TOR),和Shadow應用一起使用,可以使用手機匿名上網。從該項目源代碼中,可以 掌握socket連接、管理cookie等方法。 

    地址:http://www.cl.cam.ac.uk/research/dtg/code/svn/android-tor/ 

    附件img02.png 

    Android TorProxy

     

    4、 Android SMSPopup 

    SMSPopup可以截獲短信內容顯示在一個泡泡形狀的窗口中。從這個項目中可以掌握到如何使用內置的短信SMS接口。 

    地址:http://code.google.com/p/android-smspopup/ 

    附件screenshot1.png 

    Android SMSPopup 

     

    5、 Standup Timer 

    Standup Timer應用用于控制站立會議時間,類似秒表倒計時,可以提醒每個人的講話時間已到,從而保證每個與會者使用時間一樣。從該項目的代碼中,可以學會如何 使用時間函數。另外,這個項目的代碼是采用視圖view、模型model嚴格分離的設計思路。 

    地址:http://github.com/jwood/standup-timer 

    附件stats.png 

    Android App – Standup Timer

     

    6、 Foursquare 

    Foursquare.com的一個客戶端應用,該應用主要分為兩個模塊:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)兩部分。從該項目代碼中,可以學會如何同步、多線程、HTTP連接等技術。 

    地址:http://code.google.com/p/foursquared/ 

    附件screen_1.png 

    Foursquare for Android

     

    7、 Pedometer 

    Pedometer應用用于記錄你每天走路步[]數的。盡管記錄不一定精準,但是從這個項目中,可以學習幾個不同的技術:加速器交互、語音更新、后臺運行服 務等。 

    地址:http://code.google.com/p/pedometer/ 

    附件Pedometer-Android_1.png 

    Android pedometer

     

    8 OpenSudoku-android 

    OpenSudoku是一個簡單的九宮格數獨游戲。從代碼中可以學習到如何在視圖中顯示表格數據,以及如何和一個網站交互等技術。 

    地址:http://code.google.com/p/opensudoku-android 

    附件gameplay_sn.png 

    Android OpenSudoku

     

    9、 ConnectBot 

    ConnectBotAndroid平臺的一個客戶端安全殼應用。從該項目代碼中,可以學習到很多Android安全方面的內容,這些是你在開發應用 時經常需要考慮的安全問題。 

    地址:http://code.google.com/p/connectbot/ 

    附件connectbot-top.png 

    附件connectbot-list.png 

    Android Connectbot

     

    10、 WordPressAndroid應用 

    當然在最后不能不提WordpressAndroid應用了,這是Wordpress官方開發團隊提供的一個項目。從代碼中可以學習到XMLRPC調 用(當然還有更多的優秀內容)。 

    地址:http://android.svn.wordpress.org/trunk/

    附件wordpress-android-apps-develpors.jpg 

    Android Wordpress

     

    源文檔 <http://www.pin5i.com/showtopic-top-10-android-open-source-project.html

    posted @ 2010-10-14 19:32 ivaneeo 閱讀(864) | 評論 (0)編輯 收藏

         摘要: 我從java1.3開始學習java,后來主要用1.4,再后來1.5和1.6中的很多新特性,都停留在“知道”的狀態,比如nio,雖然據說可以提升性能,但并沒有真正深入使用和測試過,工作操作文件的情況不多,所以關注也不多,即便用到,也還是習慣性的用java.io。今天看到的這篇文章,雖然測試手段非常簡單,所得結論也難免有些片面 ,但依然說明,在順序訪問的時候,NIO的性能相對j...  閱讀全文
    posted @ 2010-10-14 19:29 ivaneeo 閱讀(1012) | 評論 (0)編輯 收藏

         摘要: 勤奮的 litaocheng 同學,在每日超負荷的加班工作之余,仍然刻苦學習筆耕不輟,為我們不斷帶來勁爆文章,這一篇《Erlang的Unicode支持》為我們介紹了 R13 的最新特性,也是最被大家期望的特性——內置的 Unicode 支持。廢話少說,直接上正文。 在R13A中, Erlang加入了對Unicode的支持。本文涉及到的數據類型包括:list, binary, ...  閱讀全文
    posted @ 2009-10-28 15:19 ivaneeo 閱讀(1411) | 評論 (1)編輯 收藏

         摘要: 前些天給echo_server寫了個非常簡單的連接壓力測試程序, 下載: stress_test.erl -module(stress_test).    -export([start/0, tests/1]).    start() ->  ...  閱讀全文
    posted @ 2009-10-27 15:49 ivaneeo 閱讀(369) | 評論 (0)編輯 收藏

         摘要: Erlang被稱作是“工業級的語言”,在測試領域,理應是有相當成熟度的。而,Joe老先生本人,也是崇尚“拿測試結果說話”的人(在《Programming Erlang》書中,上來就搞測試,然后再開講的例子比比皆是)。就連 Erlang/OTP 本身的代碼質量也是有嚴密的測試作為保障的。所以,如果在Erlang領域,你見到遠比其他語言為多的測試相關工具...  閱讀全文
    posted @ 2009-10-27 15:48 ivaneeo 閱讀(306) | 評論 (0)編輯 收藏

         摘要: 試了一下傳說中的 JInterface ,使用 OtpErlang.jar 的整個過程其實非常簡單,似乎比 JMS 的程序都簡單。 首先,我們要用 java 實現的原始 erlang 程序如下,沒錯,就是巨簡單的 echo ,我們的目標是要把它用 java 來改寫,不僅寫服務端,也要寫客戶端。 下載: echo_client.erl -module(echo_c...  閱讀全文
    posted @ 2009-10-27 15:46 ivaneeo 閱讀(355) | 評論 (0)編輯 收藏

    require 'java'
    import 'oracle.jdbc.driver.OracleDriver'

    module JavaLang
      include_package "java.lang"
    end

    module JavaSql
      include_package "java.sql"
    end

    #JavaLang::Class.forName("oracle.jdbc.driver.OracleDriver").newInstance
    ##發現如果直接用Class.forName話根本找不到類??磥韏ruby是預先導入的直接用import CLASS即可
    con =
      JavaSql::DriverManager.getConnection( \
        "jdbc:oracle:thin:@132.228.129.104:1521:ods","ods","ods")
      sql = con.createStatement()

      result = sql.executeQuery("select * from dual")

      while result.next
        puts result.getString(1)
      end

    posted @ 2009-04-22 14:50 ivaneeo 閱讀(1673) | 評論 (0)編輯 收藏

    oracle guid類型其實是raw(16)類型
    生成: SELECT SYS_GUID ()
    INTO v_guid
    FROM DUAL;
    posted @ 2008-12-01 15:08 ivaneeo 閱讀(600) | 評論 (0)編輯 收藏

    僅列出標題
    共67頁: First 上一頁 18 19 20 21 22 23 24 25 26 下一頁 Last 
    主站蜘蛛池模板: 免费国产草莓视频在线观看黄| 亚洲人精品亚洲人成在线| 国产亚洲福利精品一区二区| 久久不见久久见免费影院| 亚洲黄色免费网址| 免费h视频在线观看| 亚洲成A人片在线观看WWW| 国产精品免费在线播放| 亚洲情XO亚洲色XO无码| 中文字幕无码免费久久| 久久久亚洲AV波多野结衣 | 一级中文字幕免费乱码专区| 久久亚洲国产精品| 国内精品免费在线观看| 伊人久久综在合线亚洲2019| 亚洲免费二区三区| 亚洲综合国产成人丁香五月激情 | 99re6免费视频| 亚洲综合在线成人一区| 皇色在线视频免费网站| 亚洲av日韩综合一区二区三区| 免费人成在线观看网站品爱网日本 | 成人黄动漫画免费网站视频 | 亚洲AV无码专区电影在线观看 | 成人免费无码大片a毛片软件| 亚洲国产欧洲综合997久久| 免费一级做a爰片久久毛片潮喷| 色费女人18女人毛片免费视频| 亚洲宅男天堂在线观看无病毒| 好紧我太爽了视频免费国产| 亚洲人成在线播放网站岛国| 国产精品亚洲专区一区| 亚洲色一色噜一噜噜噜| 久久一本岛在免费线观看2020| 在线亚洲精品自拍| 无码免费一区二区三区免费播放 | 一级成人a免费视频| 国产亚洲精AA在线观看SEE| 69式互添免费视频| 日韩毛片在线免费观看| 亚洲成av人在线视|