2012年11月29日

          軟件開發(fā)隨筆之一Eclipse安裝SVN

               摘要: Eclipse SVN 插件 安裝  閱讀全文

          posted @ 2012-11-29 11:37 陳夢琪 閱讀(229) | 評論 (0)編輯 收藏

          2012年11月16日

          jmap(Java Memory Map)命令詳解

          1、介紹


          打印出某個(gè)java進(jìn)程(使用pid)內(nèi)存內(nèi)的,所有‘對象’的情況(如:產(chǎn)生那些對象,及其數(shù)量)。

          可以輸出所有內(nèi)存中對象的工具,甚至可以將VM 中的heap,以二進(jìn)制輸出成文本。使用方法 jmap -histo pid。
          如果連用SHELL jmap -histo pid>a.log可以將其保存到文本中去,在一段時(shí)間后,使用文本對比工具,可以對比
          出GC回收了哪些對象。jmap -dump:format=b,file=outfile 3024可以將3024進(jìn)程的內(nèi)存heap輸出出來到outfile文
          件里,再配合MAT(內(nèi)存分析工具(Memory Analysis Tool),使用參見:
              http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)
          或與jhat (Java Heap Analysis Tool)一起使用,能夠以圖像的形式直觀的展示當(dāng)前內(nèi)存是否有問題。

          64位機(jī)上使用需要使用如下方式:

          jmap -J-d64 -heap pid

          2、命令格式


          命令行輸入【jmap】幫助提示如下

          C:\>jmap
          Usage:
              jmap [option] <pid>
                  (to connect to running process)
              jmap [option] <executable <core>
                  (to connect to a core file)
              jmap [option] [server_id@]<remote server IP or hostname>
                  (to connect to remote debug server)

          where <option> is one of:
              <none>               to print same info as Solaris pmap
              -heap                to print java heap summary
              -histo[:live]        to print histogram of java object heap; if the "live"
                                   suboption is specified, only count live objects
              -permstat            to print permanent generation statistics
              -finalizerinfo       to print information on objects awaiting finalization
              -dump:<dump-options> to dump java heap in hprof binary format
                                   dump-options:
                                     live         dump only live objects; if not specified
          ,
                                                  all objects in the heap are dumped.
                                     format=b     binary format
                                     file=<file>  dump heap to <file>
                                   Example: jmap -dump:live,format=b,file=heap.bin <pid>
              -F                   force. Use with -dump:<dump-options> <pid> or -histo
                                   to force a heap dump or histogram when <pid> does not
                                   respond. The "live" suboption is not supported
                                   in this mode.
              -h | -help           to print this help message
              -J<flag>             to pass <flag> directly to the runtime system
          簡單說明
          SYNOPSIS

          jmap [ option ] pid

          jmap [ option ] executable core

          jmap [ option ] [server-id@]remote-hostname-or-IP

          3、參數(shù)說明


          1)options: 

          executable Java executable from which the core dump was produced.

          (可能是產(chǎn)生core dump的java可執(zhí)行程序)

          core 將被打印信息的core dump文件

          remote-hostname-or-IP 遠(yuǎn)程debug服務(wù)的主機(jī)名或ip

          server-id 唯一id,假如一臺主機(jī)上多個(gè)遠(yuǎn)程debug服務(wù) 

          2)基本參數(shù):

          -dump:[live,]format=b,file=<filename> 使用hprof二進(jìn)制形式,輸出jvm的heap內(nèi)容到文件;
              live子選項(xiàng)是可選的,假如指定live選項(xiàng),那么只輸出活的對象到文件. 

          -finalizerinfo 打印正等候回收的對象的信息.

          -heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情況.

          -histo[:live] 打印每個(gè)class的實(shí)例數(shù)目,內(nèi)存占用,類全名信息. VM的內(nèi)部類名字開頭會(huì)加上前綴”*”. 
              如果live子參數(shù)加上后,只統(tǒng)計(jì)活的對象數(shù)量. 

          -permstat 打印classload和jvm heap長久層的信息. 包含每個(gè)classloader的名字,活潑性,地址,父classloader
              和加載的class數(shù)量. 另外,內(nèi)部String的數(shù)量和占用內(nèi)存數(shù)也會(huì)打印出來. 

          -F **.在pid沒有相應(yīng)的時(shí)候使用-dump或者-histo參數(shù). 在這個(gè)模式下,live子參數(shù)無效. 

          -h | -help 打印輔助信息 

          -J 傳遞參數(shù)給jmap啟動(dòng)的jvm. 

          pid 需要被打印配相信息的java進(jìn)程id,可以用jps查問.

          4、使用示例


          1)[fenglb@ccbu-156-5 ~]$ jmap -histo 4939

          2)[fenglb@ccbu-156-5 ~]$ jmap -dump:format=b,file=test.bin 4939

          Dumping heap to /home/fenglb/test.bin ...

          Heap dump file created

          posted @ 2012-11-16 11:37 陳夢琪 閱讀(2128) | 評論 (0)編輯 收藏

          2012年10月22日

          Hadoop作業(yè)提交多種方案

               摘要: 方案: 1、用命令行方式提交2、在eclipse中提交作業(yè)3、采用eclipse的插件實(shí)現(xiàn)項(xiàng)目的提交方案一:用命令行方式提交 其一,前提:成功搭建一個(gè)hadoop集群,或成功部署一個(gè)偽分布式,并啟動(dòng)hadoop。其二,提交過程:1、在eclipse中將我們的項(xiàng)目打成一個(gè)jar包,放到hadoop的安裝目錄下。2、在命令行中提交作業(yè),這里以hadoop自帶的wordcount程序...  閱讀全文

          posted @ 2012-10-22 10:40 陳夢琪 閱讀(3574) | 評論 (0)編輯 收藏

          2012年10月16日

          Hadoop環(huán)境搭建注意事項(xiàng)之二安裝目錄結(jié)構(gòu)

          目錄結(jié)構(gòu)
          由于Hadoop要求所有機(jī)器上hadoop的部署目錄結(jié)構(gòu)要相同,并且都有一個(gè)相同的用戶名的帳戶。
          我的三臺機(jī)器上是這樣的:都有一個(gè)dbrg的帳戶,主目錄是/home/dbrg
          Hadoop部署目錄結(jié)構(gòu)如下:/home/dbrg/HadoopInstall,所有的hadoop版本放在這個(gè)目錄中。
          將hadoop0.12.0壓縮包解壓至HadoopInstall中,為了方便以后升級,建議建立一個(gè)鏈接指向要使用的hadoop版本,不妨設(shè)為hadoop
          [dbrg@dbrg-1:HadoopInstall]$ln  -s  hadoop0.12.0   hadoop
          這樣一來,所有的配置文件都在/hadoop/conf/目錄中,所有執(zhí)行程序都在/hadoop/bin目錄中。
          但是由于上述目錄中hadoop的配置文件和hadoop的安裝目錄是放在一起的,這樣一旦日后升級hadoop版本的時(shí)候所有的配置文件都會(huì)被覆蓋,因此建議將配置文件與安裝目錄分離, 一種比較好的方法就是建立一個(gè)存放配置文件的目錄,/home/dbrg/HadoopInstall/hadoop-config/,然后將 /hadoop/conf/目錄中的hadoop_site.xml,slaves,hadoop_env.sh三個(gè)文件拷貝到hadoop- config/目錄中(這個(gè)問題很奇怪,在官網(wǎng)上的
          Getting Started With Hadoop中 說是只需要拷貝這個(gè)三個(gè)文件到自己創(chuàng)建的目錄就可以了,但我在實(shí)際配置的時(shí)候發(fā)現(xiàn)還必須把masters這個(gè)文件也拷貝到hadoop-conf/目錄中 才行,不然啟動(dòng)Hadoop的時(shí)候就會(huì)報(bào)錯(cuò)說找不到masters這個(gè)文件),并指定環(huán)境變量$HADOOP_CONF_DIR指向該目錄。環(huán)境變量在 /home/dbrg/.bashrc和/etc/profile中設(shè)定。
          綜上所述,為了方便以后升級版本,我們需要做到配置文件與安裝目錄分離,并通過設(shè)定一個(gè)指向我們要使用的版本的hadoop的鏈接,這樣可以減少我們對配置文件的維護(hù)

          posted @ 2012-10-16 22:09 陳夢琪 閱讀(434) | 評論 (0)編輯 收藏

          Hadoop環(huán)境搭建注意事項(xiàng)之一SSH配置及原理

          SSH設(shè)置
          在Hadoop啟動(dòng)以后,Namenode是通過
          SSH(Secure Shell)來啟動(dòng)和停止各個(gè)節(jié)點(diǎn)上的各種守護(hù)進(jìn)程的,這就需要在節(jié)點(diǎn)之間執(zhí)行指令的時(shí)候是不需要輸入密碼的方式,故我們需要配置SSH使用無密碼公鑰認(rèn)證的方式。
          首先要保證每臺機(jī)器上都裝了SSH服務(wù)器,且都正常啟動(dòng)。實(shí)際中我們用的都是
          OpenSSH,這是SSH協(xié)議的一個(gè)免費(fèi)開源實(shí)現(xiàn)。FC5中默認(rèn)安裝的OpenSSH版本是OpenSSH4.3P2。
          以 本文中的三臺機(jī)器為例,現(xiàn)在dbrg-1是主節(jié)點(diǎn),它需要主動(dòng)發(fā)起SSH連接到dbrg-2和dbrg-3,對于SSH服務(wù)來說,dbrg-1就是SSH 客戶端,而dbrg-2、dbrg-3則是SSH服務(wù)端,因此在dbrg-2,dbrg-3上需要確定sshd服務(wù)已經(jīng)啟動(dòng)。簡單的說,在dbrg-1上 需要生成一個(gè)密鑰對,即一個(gè)私鑰,一個(gè)公鑰。將公鑰拷貝到dbrg-2,dbrg-3上,這樣,比如當(dāng)dbrg-1向dbrg-2發(fā)起ssh連接的時(shí) 候,dbrg-2上就會(huì)生成一個(gè)隨機(jī)數(shù)并用dbrg-1的公鑰對這個(gè)隨機(jī)數(shù)進(jìn)行加密,并發(fā)送給dbrg-1;dbrg-1收到這個(gè)加密的數(shù)以后用私鑰進(jìn)行 解密,并將解密后的數(shù)發(fā)送回dbrg-2,dbrg-2確認(rèn)解密的數(shù)無誤后就允許dbrg-1進(jìn)行連接了。這就完成了一次公鑰認(rèn)證過程。

          對于本文中的三臺機(jī)器,首先在dbrg-1上生成密鑰對:
          [dbrg@dbrg-1:~]$ssh-keygen  -t  rsa
          這 個(gè)命令將為dbrg-1上的用戶dbrg生成其密鑰對,詢問其保存路徑時(shí)直接回車采用默認(rèn)路徑,當(dāng)提示要為生成的密鑰輸入passphrase的時(shí)候,直 接回車,也就是將其設(shè)定為空密碼。生成的密鑰對id_rsa,id_rsa.pub,默認(rèn)存儲在/home/dbrg/.ssh目錄下。然后將 id_rsa.pub的內(nèi)容復(fù)制到每個(gè)機(jī)器(也包括本機(jī))的/home/dbrg/.ssh/authorized_keys文件中,如果機(jī)器上已經(jīng)有 authorized_keys這個(gè)文件了,就在文件末尾加上id_rsa.pub中的內(nèi)容,如果沒有authorized_keys這個(gè)文件,直接cp 或者scp就好了,下面的操作假設(shè)各個(gè)機(jī)器上都沒有authorized_keys文件。

          對于dbrg-1
          [dbrg@dbrg-1:.ssh]$cp id_rsa.pub authorized_keys

          對于dbrg-2(dbrg-3同dbrg-2的方法)
          [dbrg@dbrg-2:~]$mkdir .ssh
          [dbrg@dbrg-1:.ssh]$scp authorized_keys dbrg-2:/home/dbrg/.ssh/
          此處的scp就是通過ssh進(jìn)行遠(yuǎn)程copy,此處需要輸入遠(yuǎn)程主機(jī)的密碼,即dbrg-2機(jī)器上dbrg帳戶的密碼,當(dāng)然,你也可以用其他方法將authorized_keys文件拷貝到其他機(jī)器上

          [dbrg@dbrg-2:.ssh]$chmod 644 authorized_keys
          這一步非常關(guān)鍵,必須保證authorized_keys只對其所有者有讀寫權(quán)限,其他人不允許有寫的權(quán)限,否則SSH是不會(huì)工作的。我就曾經(jīng)在配置SSH的時(shí)候郁悶了好久。

          [dbrg@dbrg-2:.ssh]ls -la
          drwx------ 2 dbrg dbrg .
          drwx------ 3 dbrg dbrg ..
           -rw-r--r-- 1 dbrg dbrg authorized_keys
          注意每個(gè)機(jī)器上的.ssh目錄的ls -la都應(yīng)該和上面是一樣的

          接著,在三臺機(jī)器上都需要對sshd服務(wù)進(jìn)行配置(其實(shí)是可以不用配置的,完成了上面的那些操作了以后SSH就已經(jīng)可以工作了),在三臺機(jī)器上修改文件/etc/ssh/sshd_config
          #去除密碼認(rèn)證
          PasswordAuthentication  no
          AuthorizedKeyFile   .ssh/authorized_keys

          至此各個(gè)機(jī)器上的SSH配置已經(jīng)完成,可以測試一下了,比如dbrg-1向dbrg-2發(fā)起ssh連接
          [dbrg@dbrg-1:~]$ssh  dbrg-2
          如果ssh配置好了,就會(huì)出現(xiàn)以下提示信息
          The authenticity of host [dbrg-2] can't be established. 
          Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52. 
          Are you sure you want to continue connecting (yes/no)?
          OpenSSH告訴你它不知道這臺主機(jī),但是你不用擔(dān)心這個(gè)問題,因?yàn)槟闶堑谝淮蔚卿涍@臺主機(jī)。鍵入“yes”。這將把這臺主機(jī)的“識別標(biāo)記”加到“~/.ssh/know_hosts”文件中。第二次訪問這臺主機(jī)的時(shí)候就不會(huì)再顯示這條提示信息了。
          然后你會(huì)發(fā)現(xiàn)不需要輸入密碼就可以建立ssh連接了,恭喜你,配置成功了
          不過,別忘了測試本機(jī)ssh  dbrg-1

          posted @ 2012-10-16 22:05 陳夢琪 閱讀(1742) | 評論 (0)編輯 收藏

          2012年10月14日

          MapReduce 作業(yè)運(yùn)行流程分析

              只有注冊用戶登錄后才能閱讀該文。閱讀全文

          posted @ 2012-10-14 21:52 陳夢琪 閱讀(62) | 評論 (0)編輯 收藏

          Ubuntu配置IP地址

              只有注冊用戶登錄后才能閱讀該文。閱讀全文

          posted @ 2012-10-14 10:17 陳夢琪 閱讀(59) | 評論 (0)編輯 收藏

          僅列出標(biāo)題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 清远市| 乾安县| 健康| 淅川县| 呼玛县| 叶城县| 侯马市| 高邑县| 九台市| 锡林郭勒盟| 栾川县| 清苑县| 东乡县| 太康县| 革吉县| 武胜县| 西藏| 同心县| 赞皇县| 延川县| 上杭县| 阳原县| 闵行区| 依兰县| 呼伦贝尔市| 库伦旗| 巧家县| 四平市| 红原县| 益阳市| 赤壁市| 开原市| 巧家县| 七台河市| 德江县| 车险| 顺昌县| 宜州市| 日土县| 新闻| 石城县|