Winse Blog

走走停停都是风景, 熙熙攘攘都向最好, 忙忙碌碌都为明朝, 何畏之.

Top命令使用

使用过linux的系统的人,应该都用过top命令。 top集成了系统的许多功能,可以查看时间,查看系统的负载,查看cpu和mem的使用情况,查看系统运行的程序等。

top命令显示界面可以分成3部分:

  • 系统总体性能(Summary_Area)
  • 命令输入光标(Message/Prompt line)
  • 任务显示区(Columns Header,Task Area)

常用的命令

  • [ q ] ,或 [ ctrl + c ]      退出top命令。
  • [ h ] ,或 [ ? ]             查看帮助,然后可以按ESC回到top界面。

在Top输出界面显示CPU内核数量 - [ 1 ](数字1)

top命令默认在一行中显示所有CPUs。

可以在该交互界面输入 [ 1 ] (数字1),显示当前系统的cpu数量,以及cpus的使用情况。如下图所示。

刷新Top命令界面

手动刷新可以通过 [ space ] 和 [ enter ] 键来执行。

如果需要修改刷新频率,可以通过命令 [ d ] 或 [ s ] ,然后再输入数字(新的时间),最后键入 [ enter ] 使设置生效。

高亮运行中的进程 - [ b / x / y ]

输入命令 [ b ] 能开启高亮显示,这个是行列高亮的总开关。(在SSH远程登录时可能需要先输入命令 [ B ] 启动高亮才行) 高亮的行表示运行中的程序,高亮的列为当前数据排序列。

如果还需要对行或列进行控制,可以输入 [ y ] 或 [ x ] 来执行。

还有 [ z ] 命令能改变颜色,但是在远程登录的情况下不起作用。

显示详细命令和参数- [ c ]

输入[c] 用来显示 命令路径和其传递的参数。

修改排序字段

通过命令 [ M ] 把Task_Area的排序列切换到%MEM列, [ N ] 切换为PID, [ P ] 切换到%CPU, [ T ] 切换到Time+。

如果你觉得这些不能满足你,那,你就的自定义。通过 [ F ] / [ O ] (大写的o字母)来选择需要排序的列。小写的 f 和 o 用来选择需要显示的列。 键入 [ F ] 后,会显示所有字段。输入需要排序列前面的字母标识,然后回车即可。

在交互界面,可以通过 [ R ] 命令来反转排序。在界面显示的列中还可以通过 [ < ] / [ > ] 直接切换排序列。

把Top输出切分成多个窗口- [ A ]

按 [ A ] 后,会显示4个分屏的窗口,使用 [ a ] / [ w ] 可以切换4种状态作为当前状态,然后再按 [ A ] 可使当前状态全屏。

也可以通过输入 [ G ] 命令,再使用数字选择对应的状态即可。

显示Summary区域的信息

本来写的是隐藏的,但是作为监控来说,为啥隐藏这些有用的信息呢? 但是,如果默认未显示,可以使用下列的命令显示。

  • 键入命令 [ l ](字母L的小写) - 显示/隐藏 系统负载,对应上图的第1行。
  • 键入命令 [ t ] - 显示/隐藏 CPU的状态,对应第2,3行。
  • 键入命令 [ m ] - 显示/隐藏 内存信息,对应第4,5行。

其他不常用的命令

  • 一般使用top都是一起交互方式使用,使用命令行参数 [ -b ] ,可以以类似日志方式(追加)来保存当前系统的运行状态。
  • 如果希望把配置保存起来,作为下次的默认配置,可以使用 [ W ]
  • 使用 [ -u ] / [ u ] / [ p ]来控制监控特定的进程/用户。
  • 使用 [ r ] 来修改程序的优先级别(nice值)
  • 使用 [ k ] 关闭特定pid的程序。

参考资料:


【原文地址】

–END

Hadoop集群增加节点

hadoop的集群的优势,其中之一就是可以灵活的增加数据节点,简简单单的实现扩容! 新增个别节点还是可以通过这种方式来运行的,如果是初始化整个集群,一台一台的操作就很纠结了!

操作步骤

  1. 最好安装统一的操作系统。安装的时刻把防火墙关了!
  2. 在新节点使用root用户,修改系统的一些参数

    • 修改时间

        date -s 12:00:00
      
    • 设置IP地址

        vi /etc/sysconfig/network-scripts/ifcfg-eth0
        service network restart
      
    • 修改host

        vi /etc/sysconfig/network
        ## 设置完以后不能立即见效,可以先使用hostname命令生效
        hostname datanode-00003
      
    • 新增用户hadoop

        useradd hadoop
        passwd hadoop
      
    • 修改/etc/hosts

  3. namenode配置文件中添加新datanode

    切换到namenode节点机器

    • 如果没有域名解析服务,这里需要用root用户来修改namenode的/etc/hosts文件,添加新节点的hostname和ip的对应。
    • 拷贝jdk到新节点(最好不要使用系统自带的版本) 。

        scp -r /opt/java/jdk1.6.0_29 datanode-00003:/opt/java
      

    然后,从root用户切换到hadoop用户

    • 修改HADOOP_HOME/conf/slaves文件,添加新节点的hostname(为了以后start/stop 统一管理hadoop)
    • namenode无密钥登录datanode,执行(为了以后start/stop 统一管理hadoop)

        ssh-copy-id -i .ssh/id-rsa.pub datanode-00003
        #然后输入新节点hadoop用户的密码即可。
      
    • 拷贝hadoop程序到新节点。

        rsync -vaz --delete --exclude=logs --exclude=log hadoop-1.0.0 datanode-00003:~/
      
  4. 使用hadoop用户登录到新节点datanode-00003。

    • 修改环境变量。

        cd
        vi .bashrc
        ## 添加JAVA_HOME/bin到PATH路径
        # export JAVA_HOME=/opt/java/jdk1.6.0_29
        # export PATH=$JAVA_HOME/bin:$PATH
      
        source .bashrc
      
    • 创建必要的目录(把hadoop的进程的pids文件保存的自定义的目录下,如果放置在tmp下,一段时间过后会被清除)。

        mkdir /opt/cloud
        mkdir /home/hadoop/pids/hadoop/pids
      
  5. 启动新节点,加入到集群

    有很多文章说使用hadoop-daemon.sh来启动:

       $HADOOP/bin/hadoop-daemon.sh start datanode 
       $HADOOP/hadoop-daemon.sh start tasktracker
    

    其实,大可不必,使用hadoop登录到namenode,在namenode上执行start-all.sh即可:

     bin/start-all.sh
    

    启动节点的时刻,会检查是否已经启动,只会启动未启动的服务。

  6. 如果希望节点的数据平均一点,可以执行:

     bin/start-balancer.sh
    

参考资料:

  1. shell脚本自动修改IP信息
  2. http://a280606790.iteye.com/blog/867532
  3. http://eclecl1314-163-com.iteye.com/blog/987732
  4. http://running.iteye.com/blog/906585

【原文地址】

–END

warproduct-OSGi应用发布到tomcat

equinox中的内置的jetty服务器已经很优秀了,但应用可以需要用到已经成熟的技术,需要集成到如tomcat, weblogic等等容器中。(下面以tomcat容器为例, 其他已经包括了OSGi框架的容器可能会更麻烦一点)

下面按照自己的操作需要注意的关键步骤,记录一下如何把OSGi应用部署到tomcat容器中。

1 环境准备(或rap1.5):

servletbridge相关插件[s1]

  • org.eclipse.equinox.http.servletbridge_1.0.300.v20120522-2049.jar
  • org.eclipse.equinox.servletbridge.extensionbundle_1.2.100.v20120522-2049
  • org.eclipse.equinox.servletbridge_1.2.200.v20120522-2049(需打包成servletbridge.jar

warproduct相关插件[s2](0.2.2.201212132117)

  • /org.eclipse.libra.warproducts.core
  • /org.eclipse.libra.warproducts.ui

2 打包部署到tomcat

1) 集成到tomcat容器中,得去掉就javax.servlet Plugin的依赖。需要修改:插件中对于javax.servlet插件的引用,修改为package的方式添加依赖。

2) 在已经可以运行的product的基础上 [s3],新建warproduct导出为war [r1]。(后面的就不用讲了,和部署其他war是一样的)

  • 下载demo.zip,然后导入eclipse
  • 打开/sample.server/server-web.product文件,运行”Launch an Eclipse application”
  • 新建warproduct,选择”Use a launch configuration”-“server-web.product”(warproduct插件的安装参考[r1]的链接)
  • 需要添加servletbridge.jar的library
  • 导出成war,然后放置到tomcat/webapp目录下即可。(web.xml & launch.ini会同时导出)

3 到底发生了什么

1、这其中最牛叉的就是servletbridge.jar,其中就三个Java类:

  • org/eclipse/equinox/servletbridge/BridgeServlet.java

    接收和转发请求(给真正的Servlet);插件org.eclipse.equinox.http.servletbridge配合把真正的Servlet(org.eclipse.equinox.http.servlet.HttpServiceServlet)注册到容器(如tomcat);同时管理Framework。

  • org/eclipse/equinox/servletbridge/CloseableURLClassLoader.java

    (。。。HARD。。。)

  • org/eclipse/equinox/servletbridge/FrameworkLauncher.java

    对插件的部署,启动,extensionbundle的创建/更新

2、当然,能让我们的导出工作如此轻松,warproduct居功至伟啊!warproduct是一个精简版的PDE-product的实现,在PDE-product的基础上实现自定义校验和添加了library的功能,以及实现自己的导出功能。(使用Ant导出的文章http://www.ibm.com/developerworks/cn/web/wa-rcprap/index.html 现在的版本都是使用warproduct,找了老久才找到一个老版本的[rold1])。封装了如下的功能:

  • 去掉对jetty的依赖
  • 同时添加servletbridge相关插件和jar的校验
  • 过滤javax.servlet插件依赖错误的提示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  public static final String SERVLET_BRIDGE_ID 
    = "org.eclipse.equinox.servletbridge"; //$NON-NLS-1$

  public static final String[] BANNED_BUNDLES = new String[] { 
    "javax.servlet", //$NON-NLS-1$
    "org.eclipse.update.configurator",  //$NON-NLS-1$
    "org.eclipse.equinox.http.jetty",  //$NON-NLS-1$
    "org.mortbay.jetty.server",  //$NON-NLS-1$
    "org.mortbay.jetty.util"  //$NON-NLS-1$
  };

  public static final String[] REQUIRED_BUNDLES = new String[] { 
    "org.eclipse.equinox.servletbridge.extensionbundle", //$NON-NLS-1$
    "org.eclipse.equinox.http.registry", //$NON-NLS-1$
    "org.eclipse.equinox.registry", //$NON-NLS-1$
    "org.eclipse.equinox.http.servlet", //$NON-NLS-1$
    "org.eclipse.equinox.http.servletbridge" //$NON-NLS-1$
  };
  • org.eclipse.equinox.http.servletbridge [s1]
  • tomcat 的功能相当于org.eclipse.equinox.http.jetty

源码Source

参考:


【原文地址】

–END

hbase-0.94启动脚本在cygwin环境的BUG

该Bug的问题本质,其实是不同系统classpath的分隔符不同。

问题原由:

搞了一天,简单的本地默认的hbase的环境搭不起,郁闷!

最后,原来是hbase脚本的bug!!

1
2
3
Winseliu@WINSE ~/hbase-0.94.2
$ bin/hbase classpath
C:\cygwin\home\Winseliu\hbase-0.94.2\conf;C:\Java\jdk1.7.0_02\lib\tools.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\;C:\cygwin\home\Winseliu\hbase-0.94.2\hbase-0.94.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\hbase-0.94.2-tests.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\activation-1.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\asm-3.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\avro-1.5.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\avro-ipc-1.5.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-beanutils-1.7.0.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-beanutils-core-1.8.0.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-cli-1.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-codec-1.4.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-collections-3.2.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-configuration-1.6.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-digester-1.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-el-1.0.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-httpclient-3.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-io-2.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-lang-2.5.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-logging-1.1.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-math-2.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\commons-net-1.4.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\core-3.1.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\guava-11.0.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\hadoop-core-1.0.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\high-scale-lib-1.1.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\httpclient-4.1.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\httpcore-4.1.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jackson-core-asl-1.8.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jackson-jaxrs-1.8.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jackson-mapper-asl-1.8.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jackson-xc-1.8.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jamon-runtime-2.3.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jasper-compiler-5.5.23.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jasper-runtime-5.5.23.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jaxb-api-2.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jaxb-impl-2.2.3-1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jersey-core-1.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jersey-json-1.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jersey-server-1.8.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jettison-1.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jetty-6.1.26.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jetty-util-6.1.26.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jruby-complete-1.6.5.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jsp-2.1-6.1.14.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jsp-api-2.1-6.1.14.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\jsr305-1.3.9.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\junit-4.10-HBASE-1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\libthrift-0.8.0.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\log4j-1.2.16.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\metrics-core-2.1.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\netty-3.2.4.Final.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\protobuf-java-2.4.0a.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\servlet-api-2.5-6.1.14.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\slf4j-api-1.4.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\slf4j-log4j12-1.4.3.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\snappy-java-1.0.3.2.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\stax-api-1.0.1.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\velocity-1.7.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\xmlenc-0.52.jar;C:\cygwin\home\Winseliu\hbase-0.94.2\lib\zookeeper-3.4.3.jar:

环境变量最后应该是一个“;”而现在是“:”

解决问题

修改如下(其实就是把cygwin路径转换的代码位置移动了一下):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Winseliu@WINSE ~/hbase-0.94.2/bin
$ diff -urN hbase-old hbase
--- hbase-old   2012-10-08 04:04:16.000000000 +0800
+++ hbase       2012-11-25 19:08:06.408506700 +0800
@@ -199,13 +199,6 @@
   HBASE_LOGFILE='hbase.log'
 fi

-# cygwin path translation
-if $cygwin; then
-  CLASSPATH=`cygpath -p -w "$CLASSPATH"`
-  HBASE_HOME=`cygpath -d "$HBASE_HOME"`
-  HBASE_LOG_DIR=`cygpath -d "$HBASE_LOG_DIR"`
-fi
-
 function append_path() {
   if [ -z "$1" ]; then
     echo $2
@@ -227,6 +220,13 @@
   CLASSPATH=$(append_path "${CLASSPATH}" `${HADOOP_IN_PATH} classpath 2>/dev/null`)
 fi

+# cygwin path translation
+if $cygwin; then
+  CLASSPATH=`cygpath -p -w "$CLASSPATH"`
+  HBASE_HOME=`cygpath -d "$HBASE_HOME"`
+  HBASE_LOG_DIR=`cygpath -d "$HBASE_LOG_DIR"`
+fi
+
 if [ -d "${HBASE_HOME}/build/native" -o -d "${HBASE_HOME}/lib/native" ]; then
   if [ -z $JAVA_PLATFORM ]; then
     JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`

或者修改下append_path方法也可以。


【原文地址】

–END

Windows配置hadoop1的伪分布式环境

由于Hadoop的部分操作需要用到Linux的shell命令,所以在Windows下安装,需要安装一个Linux的运行时环境。然后,需要配置无密钥通信协议。配置完后,需要配置Hadoop的xml文件。

安装Cygwin

http://cygwin.com/install.html

Cygwin中配置sshd

http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#CBHIAFGI

伪分布式配置

配置文档路径: hadoop-1.1.0/docs/single_node_setup.html

1
2
3
4
5
6
7
bin/hadoop namenode -format

bin/start-all.sh
bin/stop-all.sh

http://localhost:50030
http://localhost:50070

遇到的问题及解决:

在真正运行的时刻会遇到几个问题:

1、设置的路径并非使用cygwin linux的路径。

hadoop.tmp.dir在/tmp目录下面,理论上应该在C:\cygwin\tmp,但实际的路径确实C:\tmp

路径不同意,我们就设置自己的目录就可以了

1
2
3
4
 <property>
     <name>hadoop.tmp.dir</name>
     <value>/cygwin/home/Winseliu/cloud</value>
 </property>

2、启动datanode和jobtracker,以及tasktacker时会有路径权限的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
2012-11-25 13:53:05,031 ERROR org.apache.hadoop.security.UserGroupInformation: PriviledgedActionException as:Winseliu cause:java.io.IOException: Failed to set permissions of path: C:\cygwin\home\Winseliu\hadoop-1.1.0\logs\history to 0755
2012-11-25 13:53:05,032 FATAL org.apache.hadoop.mapred.JobTracker: java.io.IOException: Failed to set permissions of path: C:\cygwin\home\Winseliu\hadoop-1.1.0\logs\history to 0755
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:670)
        at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:509)
        at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:344)
        at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:189)
        at org.apache.hadoop.mapred.JobHistory.init(JobHistory.java:510)
...
...
2012-11-25 13:53:04,389 INFO org.apache.hadoop.mapred.TaskTracker: Good mapred local directories are: /cygwin/home/Winseliu/cloud/mapred/local
2012-11-25 13:53:04,396 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: \cygwin\home\Winseliu\cloud\mapred\local\taskTracker to 0755
        at org.apache.hadoop.fs.FileUtil.checkReturnValue(FileUtil.java:689)
        at org.apache.hadoop.fs.FileUtil.setPermission(FileUtil.java:670)

权限问题,直接修改FileUtils的checkReturnValue()方法,替换hadoop-core-1.1.0.jar中的FileUtils.class文件

1
2
3
4
5
6
7
8
9
10
11
12
13
private static void checkReturnValue(boolean rv, File p, 
                                 FsPermission permission
                                 ) throws IOException {
if (!rv) {
  // FIXME
      try {
          throw new IOException("Failed to set permissions of path: " + p
                  + " to " + String.format("%04o", permission.toShort()));
      } catch (Exception e) {
          e.printStackTrace();
      }
}
}

3、使用jps查不全真正执行的java进程,不知道那个进程启动或未启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Winseliu@WINSE ~/hadoop-1.1.0
$ jps
6364 NameNode
7168 JobTracker
2692 Jps

Winseliu@WINSE ~/hadoop-1.1.0
$ ps aux | grep java
     7880       1    5544       7028  ?       1001 13:20:40 /cygdrive/c/Java/jdk1.7.0_02/bin/java
     5968       1    7500       4592  ?       1001 13:20:36 /cygdrive/c/Java/jdk1.7.0_02/bin/java
     5784       1     484       6364  pty0    1001 13:20:31 /cygdrive/c/Java/jdk1.7.0_02/bin/java
     6732       1     484       7168  pty0    1001 13:20:38 /cygdrive/c/Java/jdk1.7.0_02/bin/java
     7976       1    5716       5628  ?       1001 13:20:34 /cygdrive/c/Java/jdk1.7.0_02/bin/java
     4492       0       0       4492  pty0    1001   Jan  1 /cygdrive/c/Java/jdk1.7.0_02/bin/java

直接再执行一次start-all.sh,如果会提示让你先stop就说明该进程已经启动了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Winseliu@WINSE ~
$ cd hadoop-1.1.0/

Winseliu@WINSE ~/hadoop-1.1.0
$ bin/start-all.sh
starting namenode, logging to /home/Winseliu/hadoop-1.1.0/libexec/../logs/hadoop-Winseliu-namenode-WINSE.out
localhost: starting datanode, logging to /home/Winseliu/hadoop-1.1.0/libexec/../logs/hadoop-Winseliu-datanode-WINSE.out
localhost: starting secondarynamenode, logging to /home/Winseliu/hadoop-1.1.0/libexec/../logs/hadoop-Winseliu-secondarynamenode-WINSE.out
starting jobtracker, logging to /home/Winseliu/hadoop-1.1.0/libexec/../logs/hadoop-Winseliu-jobtracker-WINSE.out
localhost: starting tasktracker, logging to /home/Winseliu/hadoop-1.1.0/libexec/../logs/hadoop-Winseliu-tasktracker-WINSE.out

Winseliu@WINSE ~/hadoop-1.1.0
$ bin/start-all.sh
namenode running as process 2648\. Stop it first.
localhost: datanode running as process 3512\. Stop it first.
localhost: secondarynamenode running as process 2468\. Stop it first.
jobtracker running as process 2388\. Stop it first.
localhost: tasktracker running as process 860\. Stop it first.

Winseliu@WINSE ~/hadoop-1.1.0
$

【原文地址】

–END