﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Hadoop</title><link>http://www.blogjava.net/dragonHadoop/</link><description>专注Web Service和大数据处理云计算Hadoop</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:04:32 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:04:32 GMT</pubDate><ttl>60</ttl><item><title>软件开发随笔之一Eclipse安装SVN</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/11/29/392181.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Thu, 29 Nov 2012 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/11/29/392181.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/392181.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/11/29/392181.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/392181.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/392181.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Eclipse SVN 插件 安装&nbsp;&nbsp;<a href='http://www.blogjava.net/dragonHadoop/archive/2012/11/29/392181.html'>阅读全文</a><img src ="http://www.blogjava.net/dragonHadoop/aggbug/392181.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-11-29 11:37 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/11/29/392181.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jmap(Java Memory Map)命令详解</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/11/16/391432.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Fri, 16 Nov 2012 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/11/16/391432.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/391432.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/11/16/391432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/391432.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/391432.html</trackback:ping><description><![CDATA[<p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;"><strong style="word-wrap: break-word; margin: 0px; padding: 0px;">1、介绍</strong></p><hr style="word-wrap: break-word; clear: both; margin: 0px 10px; font-family: 宋体; line-height: 25px; background-color: #ffffff;" /><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">打印出某个java进程（使用pid）内存内的，所有&#8216;对象&#8217;的情况（如：产生那些对象，及其数量）。</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">可以输出所有内存中对象的工具，甚至可以将VM&nbsp;中的heap，以二进制输出成文本。使用方法&nbsp;jmap&nbsp;-histo&nbsp;pid。<br />如果连用SHELL&nbsp;jmap&nbsp;-histo&nbsp;pid&gt;a.log可以将其保存到文本中去，在一段时间后，使用文本对比工具，可以对比<br />出GC回收了哪些对象。jmap&nbsp;-dump:format=b,file=outfile&nbsp;3024可以将3024进程的内存heap输出出来到outfile文<br />件里，再配合MAT（内存分析工具(Memory&nbsp;Analysis&nbsp;Tool），使用参见：<br />&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx" style="word-wrap: break-word; color: #555555; text-decoration: initial; margin: 0px; padding: 0px;">http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.asp</a>x）<br />或与jhat&nbsp;(Java&nbsp;Heap&nbsp;Analysis&nbsp;Tool)一起使用，能够以图像的形式直观的展示当前内存是否有问题。</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">64位机上使用需要使用如下方式：</p><pre style="word-wrap: break-word; margin-top: 0px; margin-bottom: 0px; padding: 0px; font-family: 'Courier New', Courier, monospace; border-style: dotted; line-height: 25px; background-color: #ffffff;">jmap -J-d64 -heap pid</pre><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;"><strong style="word-wrap: break-word; margin: 0px; padding: 0px;">2、命令格式</strong></p><hr style="word-wrap: break-word; clear: both; margin: 0px 10px; font-family: 宋体; line-height: 25px; background-color: #ffffff;" /><p style="word-wrap: break-word; margin: 0px; padding: 0px; background-color: #ffffff;"><strong style="font-family: 宋体; line-height: 25px;">命令行输入【jmap】帮助提示如下</strong><font face="宋体"><span style="line-height: 25px;">：</span></font><br /><div><span style="line-height: 25px;">C:\&gt;jmap</span></div><div><span style="line-height: 25px;">Usage:</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; jmap [option] &lt;pid&gt;</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; (to connect to running process)</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; jmap [option] &lt;executable &lt;core&gt;</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; (to connect to a core file)</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; jmap [option] [server_id@]&lt;remote server IP or hostname&gt;</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; (to connect to remote debug server)</span></div><div><span style="line-height: 25px;"><br /></span></div><div><span style="line-height: 25px;">where &lt;option&gt; is one of:</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &lt;none&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to print same info as Solaris pmap</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -heap &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to print java heap summary</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -histo[:live] &nbsp; &nbsp; &nbsp; &nbsp;to print histogram of java object heap; if the "live"</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;suboption is specified, only count live objects</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -permstat &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to print permanent generation statistics</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -finalizerinfo &nbsp; &nbsp; &nbsp; to print information on objects awaiting finalization</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -dump:&lt;dump-options&gt; to dump java heap in hprof binary format</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dump-options:</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;live &nbsp; &nbsp; &nbsp; &nbsp; dump only live objects; if not specified</span></div><div><span style="line-height: 25px;">,</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; all objects in the heap are dumped.</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;format=b &nbsp; &nbsp; binary format</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;file=&lt;file&gt; &nbsp;dump heap to &lt;file&gt;</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Example: jmap -dump:live,format=b,file=heap.bin &lt;pid&gt;</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -F &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; force. Use with -dump:&lt;dump-options&gt; &lt;pid&gt; or -histo</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;to force a heap dump or histogram when &lt;pid&gt; does not</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;respond. The "live" suboption is not supported</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;in this mode.</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -h | -help &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to print this help message</span></div><div><span style="line-height: 25px;">&nbsp; &nbsp; -J&lt;flag&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; to pass &lt;flag&gt; directly to the runtime system</span></div><strong style="font-family: 宋体; line-height: 25px;">简单说明</strong><font face="宋体"><span style="line-height: 25px;">：</span></font><br /><font face="宋体"><span style="line-height: 25px;">SYNOPSIS</span></font></p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">jmap&nbsp;[&nbsp;option&nbsp;]&nbsp;pid</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">jmap&nbsp;[&nbsp;option&nbsp;]&nbsp;executable&nbsp;core</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">jmap&nbsp;[&nbsp;option&nbsp;]&nbsp;[server-id@]remote-hostname-or-IP</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;"><strong style="word-wrap: break-word; margin: 0px; padding: 0px;">3、参数说明</strong></p><hr style="word-wrap: break-word; clear: both; margin: 0px 10px; font-family: 宋体; line-height: 25px; background-color: #ffffff;" /><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">1）options：&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">executable&nbsp;Java&nbsp;executable&nbsp;from&nbsp;which&nbsp;the&nbsp;core&nbsp;dump&nbsp;was&nbsp;produced.</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">(可能是产生core&nbsp;dump的java可执行程序)</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">core&nbsp;将被打印信息的core&nbsp;dump文件</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">remote-hostname-or-IP&nbsp;远程debug服务的主机名或ip</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">server-id&nbsp;唯一id,假如一台主机上多个远程debug服务&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">2）基本参数：</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-dump:[live,]format=b,file=&lt;filename&gt;&nbsp;使用hprof二进制形式,输出jvm的heap内容到文件；<br /> &nbsp;&nbsp;&nbsp;&nbsp;live子选项是可选的，假如指定live选项,那么只输出活的对象到文件.&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-finalizerinfo&nbsp;打印正等候回收的对象的信息.</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-heap&nbsp;打印heap的概要信息，GC使用的算法，heap的配置及wise&nbsp;heap的使用情况.</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-histo[:live]&nbsp;打印每个class的实例数目,内存占用,类全名信息.&nbsp;VM的内部类名字开头会加上前缀&#8221;*&#8221;.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;如果live子参数加上后,只统计活的对象数量.&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-permstat&nbsp;打印classload和jvm&nbsp;heap长久层的信息.&nbsp;包含每个classloader的名字,活泼性,地址,父classloader<br />&nbsp;&nbsp;&nbsp;&nbsp;和加载的class数量.&nbsp;另外,内部String的数量和占用内存数也会打印出来.&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-F&nbsp;**.在pid没有相应的时候使用-dump或者-histo参数.&nbsp;在这个模式下,live子参数无效.&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-h&nbsp;|&nbsp;-help&nbsp;打印辅助信息&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">-J&nbsp;传递参数给jmap启动的jvm.&nbsp;</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">pid&nbsp;需要被打印配相信息的java进程id,可以用jps查问.</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;"><strong style="word-wrap: break-word; margin: 0px; padding: 0px;">4、使用示例</strong></p><hr style="word-wrap: break-word; clear: both; margin: 0px 10px; font-family: 宋体; line-height: 25px; background-color: #ffffff;" /><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">1）[fenglb@ccbu-156-5&nbsp;~]$&nbsp;jmap&nbsp;-histo&nbsp;4939</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">2）[fenglb@ccbu-156-5&nbsp;~]$&nbsp;jmap&nbsp;-dump:format=b,file=test.bin&nbsp;4939</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">Dumping&nbsp;heap&nbsp;to&nbsp;/home/fenglb/test.bin&nbsp;...</p><p style="word-wrap: break-word; margin: 0px; padding: 0px; font-family: 宋体; line-height: 25px; background-color: #ffffff;">Heap&nbsp;dump&nbsp;file&nbsp;created</p><img src ="http://www.blogjava.net/dragonHadoop/aggbug/391432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-11-16 11:37 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/11/16/391432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hadoop作业提交多种方案</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/10/22/389993.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Mon, 22 Oct 2012 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/10/22/389993.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/389993.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/10/22/389993.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/389993.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/389993.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 方案：&nbsp;1、用命令行方式提交2、在eclipse中提交作业3、采用eclipse的插件实现项目的提交方案一：用命令行方式提交&nbsp;其一，前提：成功搭建一个hadoop集群，或成功部署一个伪分布式，并启动hadoop。其二，提交过程：1、在eclipse中将我们的项目打成一个jar包，放到hadoop的安装目录下。2、在命令行中提交作业，这里以hadoop自带的wordcount程序...&nbsp;&nbsp;<a href='http://www.blogjava.net/dragonHadoop/archive/2012/10/22/389993.html'>阅读全文</a><img src ="http://www.blogjava.net/dragonHadoop/aggbug/389993.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-10-22 10:40 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/10/22/389993.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hadoop环境搭建注意事项之二安装目录结构</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389694.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Tue, 16 Oct 2012 14:09:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389694.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/389694.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/389694.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/389694.html</trackback:ping><description><![CDATA[<p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; font-size: 14pt; "><span style="font-size: small; "><span style="color: #0000ff; ">目录结构</span><br />由于<span style="color: #ff6600; ">Hadoop要求所有机器上hadoop的部署目录结构要相同，并且都有一个相同的用户名的帐户</span>。<br />我的三台机器上是这样的：都有一个dbrg的帐户，主目录是/home/dbrg<br />Hadoop部署目录结构如下：/home/dbrg/HadoopInstall，所有的hadoop版本放在这个目录中。<br />将hadoop0.12.0压缩包解压至HadoopInstall中，为了方便以后升级，<span style="color: #ff6600; ">建议建立一个链接指向要使用的hadoop版本</span>，不妨设为hadoop<br />[dbrg@dbrg-1:HadoopInstall]$ln&nbsp; -s&nbsp; hadoop0.12.0&nbsp;&nbsp; hadoop<br />这样一来，所有的配置文件都在/hadoop/conf/目录中，所有执行程序都在/hadoop/bin目录中。<br />但是由于上述目录中hadoop的配置文件和hadoop的安装目录是放在一起的，这样一旦日后升级hadoop版本的时候所有的配置文件都会被覆盖，因此<span style="color: #ff6600; ">建议将配置文件与安装目录分离</span>， 一种比较好的方法就是建立一个存放配置文件的目录，/home/dbrg/HadoopInstall/hadoop-config/，然后将 /hadoop/conf/目录中的hadoop_site.xml，slaves，hadoop_env.sh三个文件拷贝到hadoop- config/目录中(这个问题很奇怪，在官网上的</span><a title="Getting Started With Hadoop" href="http://wiki.apache.org/lucene-hadoop/GettingStartedWithHadoop" style="color: #336699; text-decoration: none; "><span style="font-size: small; ">Getting Started With Hadoop</span></a><span style="font-size: small; ">中 说是只需要拷贝这个三个文件到自己创建的目录就可以了，但我在实际配置的时候发现还必须把masters这个文件也拷贝到hadoop-conf/目录中 才行，不然启动Hadoop的时候就会报错说找不到masters这个文件)，并指定环境变量$HADOOP_CONF_DIR指向该目录。环境变量在 /home/dbrg/.bashrc和/etc/profile中设定。<br /><span style="color: #ff6600; ">综上所述，为了方便以后升级版本，我们需要做到配置文件与安装目录分离，并通过设定一个指向我们要使用的版本的hadoop的链接，这样可以减少我们对配置文件的维护</span>。</span></p><img src ="http://www.blogjava.net/dragonHadoop/aggbug/389694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-10-16 22:09 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hadoop环境搭建注意事项之一SSH配置及原理</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389693.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Tue, 16 Oct 2012 14:05:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389693.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/389693.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389693.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/389693.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/389693.html</trackback:ping><description><![CDATA[<p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; font-size: 14pt; "><span style="font-size: small; "><span style="color: #0000ff; ">SSH设置<br /></span>在Hadoop启动以后，Namenode是通过</span><a title="SSH" href="http://www.ssh.com/products/ssh_secure_shell/" style="color: #336699; text-decoration: none; "><span style="font-size: small; ">SSH</span></a><span style="font-size: small; ">（Secure Shell）来启动和停止各个节点上的各种守护进程的，这就需要在节点之间执行指令的时候是不需要输入密码的方式，故我们需要配置SSH使用无密码公钥认证的方式。<br />首先要保证每台机器上都装了SSH服务器，且都正常启动。实际中我们用的都是</span><a title="OpenSSH" href="http://www.openssh.com/" style="color: #336699; text-decoration: none; "><span style="font-size: small; ">OpenSSH</span></a><span style="font-size: small; ">，这是SSH协议的一个免费开源实现。FC5中默认安装的OpenSSH版本是OpenSSH4.3P2。<br />以 本文中的三台机器为例，现在dbrg-1是主节点，它需要主动发起SSH连接到dbrg-2和dbrg-3，对于SSH服务来说，dbrg-1就是SSH 客户端，而dbrg-2、dbrg-3则是SSH服务端，因此在dbrg-2，dbrg-3上需要确定sshd服务已经启动。简单的说，在dbrg-1上 需要生成一个密钥对，即一个私钥，一个公钥。将公钥拷贝到dbrg-2，dbrg-3上，这样，比如当dbrg-1向dbrg-2发起ssh连接的时 候，dbrg-2上就会生成一个随机数并用dbrg-1的公钥对这个随机数进行加密，并发送给dbrg-1；dbrg-1收到这个加密的数以后用私钥进行 解密，并将解密后的数发送回dbrg-2，dbrg-2确认解密的数无误后就允许dbrg-1进行连接了。这就完成了一次公钥认证过程。</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">对于本文中的三台机器，首先在dbrg-1上生成密钥对：<br />[dbrg@dbrg-1:~]$ssh-keygen&nbsp; -t&nbsp; rsa<br />这 个命令将为dbrg-1上的用户dbrg生成其密钥对，询问其保存路径时直接回车采用默认路径，当提示要为生成的密钥输入passphrase的时候，直 接回车，也就是将其设定为空密码。生成的密钥对id_rsa，id_rsa.pub，默认存储在/home/dbrg/.ssh目录下。然后将 id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中，如果机器上已经有 authorized_keys这个文件了，就在文件末尾加上id_rsa.pub中的内容，如果没有authorized_keys这个文件，直接cp 或者scp就好了，下面的操作假设各个机器上都没有authorized_keys文件。</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">对于dbrg-1<br />[dbrg@dbrg-1:.ssh]$cp id_rsa.pub authorized_keys</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">对于dbrg-2（dbrg-3同dbrg-2的方法）<br />[dbrg@dbrg-2:~]$mkdir .ssh<br />[dbrg@dbrg-1:.ssh]$scp authorized_keys dbrg-2:/home/dbrg/.ssh/<br />此处的scp就是通过ssh进行远程copy，此处需要输入远程主机的密码，即dbrg-2机器上dbrg帐户的密码，当然，你也可以用其他方法将authorized_keys文件拷贝到其他机器上</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">[dbrg@dbrg-2:.ssh]$chmod 644 authorized_keys<br /><span style="color: #ff6600; ">这一步非常关键，必须保证authorized_keys只对其所有者有读写权限，其他人不允许有写的权限，否则SSH是不会工作的。我就曾经在配置SSH的时候郁闷了好久。</span></span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">[dbrg@dbrg-2:.ssh]ls -la<br />drwx------ 2 dbrg dbrg .<br />drwx------ 3 dbrg dbrg ..<br />&nbsp;-rw-r--r-- 1 dbrg dbrg authorized_keys<br /><span style="color: #ff6600; ">注意每个机器上的.ssh目录的ls -la都应该和上面是一样的</span></span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">接着，在三台机器上都需要对sshd服务进行配置(其实是可以不用配置的，完成了上面的那些操作了以后SSH就已经可以工作了)，在三台机器上修改文件/etc/ssh/sshd_config<br />#去除密码认证<br />PasswordAuthentication&nbsp; no<br />AuthorizedKeyFile&nbsp;&nbsp; .ssh/authorized_keys</span></p><p style="color: #333333; font-family: Arial; line-height: 26px; text-align: left; background-color: #ffffff; "><span style="font-size: small; ">至此各个机器上的SSH配置已经完成，可以测试一下了，比如dbrg-1向dbrg-2发起ssh连接<br />[dbrg@dbrg-1:~]$ssh&nbsp; dbrg-2<br />如果ssh配置好了，就会出现以下提示信息<br />The authenticity of host [dbrg-2] can't be established.&nbsp;<br />Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.&nbsp;<br />Are you sure you want to continue connecting (yes/no)?<br />OpenSSH告诉你它不知道这台主机，但是你不用担心这个问题，因为你是第一次登录这台主机。键入&#8220;yes&#8221;。这将把这台主机的&#8220;识别标记&#8221;加到&#8220;~/.ssh/know_hosts&#8221;文件中。第二次访问这台主机的时候就不会再显示这条提示信息了。<br />然后你会发现不需要输入密码就可以建立ssh连接了，恭喜你，配置成功了<br /><span style="color: #ff6600; ">不过，别忘了测试本机ssh&nbsp; dbrg-1</span></span></p><img src ="http://www.blogjava.net/dragonHadoop/aggbug/389693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-10-16 22:05 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/10/16/389693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MapReduce 作业运行流程分析</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389543.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Sun, 14 Oct 2012 13:52:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389543.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/389543.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/389543.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/389543.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389543.html'>阅读全文</a><img src ="http://www.blogjava.net/dragonHadoop/aggbug/389543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-10-14 21:52 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu配置IP地址</title><link>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389528.html</link><dc:creator>陈梦琪</dc:creator><author>陈梦琪</author><pubDate>Sun, 14 Oct 2012 02:17:00 GMT</pubDate><guid>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389528.html</guid><wfw:comment>http://www.blogjava.net/dragonHadoop/comments/389528.html</wfw:comment><comments>http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389528.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dragonHadoop/comments/commentRss/389528.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dragonHadoop/services/trackbacks/389528.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389528.html'>阅读全文</a><img src ="http://www.blogjava.net/dragonHadoop/aggbug/389528.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dragonHadoop/" target="_blank">陈梦琪</a> 2012-10-14 10:17 <a href="http://www.blogjava.net/dragonHadoop/archive/2012/10/14/389528.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>