Hadoop基础知识(二)

Hadoop Shell介绍

bin目录下的Hadoop脚本是最基础的集群管理脚本,用户可以通过该脚本完成各种功能,如HDFS文件管理、MapReduce作业管理等。该脚本的使用方法为:
hadoop[–config confdir]COMMAND
其中,–config用于设置Hadoop配置文件目录,默认目录为
${HADOOP_HOME}/conf
而COMMAND是具体的某个命令。常用的有HDFS管理命令fs、作业管理命令job和作业提交命令jar等。

测试环境

1)HDFS测试
对HDFS文件系统进行查看文件,对文件或者文件的基本操作。(通过命令行的方式交互)

[hadoop1@H01 bin]$ pwd
/home/hadoop1/Hadoop/modules/hadoop-1.2.1/bin

[hadoop1@H01 bin]$ ./hadoop
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
  namenode -format     format the DFS filesystem
  secondarynamenode    run the DFS secondary namenode
  namenode             run the DFS namenode
  datanode             run a DFS datanode
  dfsadmin             run a DFS admin client
  mradmin              run a Map-Reduce admin client
  fsck                 run a DFS filesystem checking utility
  fs                   run a generic filesystem user client
  balancer             run a cluster balancing utility
  oiv                  apply the offline fsimage viewer to an fsimage
  fetchdt              fetch a delegation token from the NameNode
  jobtracker           run the MapReduce job Tracker node
  pipes                run a Pipes job
  tasktracker          run a MapReduce task Tracker node
  historyserver        run job history servers as a standalone daemon
  job                  manipulate MapReduce jobs
  queue                get information regarding JobQueues
  version              print the version
  jar <jar>            run a jar file
  distcp <srcurl> <desturl> copy file or directories recursively
  distcp2 <srcurl> <desturl> DistCp version 2
  archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
  classpath            prints the class path needed to get the
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
 or
  CLASSNAME            run the class named CLASSNAME
Most commands print help when invoked w/o parameters.
[hadoop1@H01 conf]$ pwd
/home/hadoop1/Hadoop/modules/hadoop-1.2.1/conf
[hadoop1@H01 conf]$ hadoop --config /home/hadoop1/Hadoop/modules/hadoop-1.2.1/conf/ fs
Usage: java FsShell
           [-ls <path>]
           [-lsr <path>]
           [-du <path>]
           [-dus <path>]
           [-count[-q] <path>]
           [-mv <src> <dst>]
           [-cp <src> <dst>]
           [-rm [-skipTrash] <path>]
           [-rmr [-skipTrash] <path>]
           [-expunge]
           [-put <localsrc> ... <dst>]
           [-copyFromLocal <localsrc> ... <dst>]
           [-moveFromLocal <localsrc> ... <dst>]
           [-get [-ignoreCrc] [-crc] <src> <localdst>]
           [-getmerge <src> <localdst> [addnl]]
           [-cat <src>]
           [-text <src>]
           [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
           [-moveToLocal [-crc] <src> <localdst>]
           [-mkdir <path>]
           [-setrep [-R] [-w] <rep> <path/file>]
           [-touchz <path>]
           [-test -[ezd] <path>]
           [-stat [format] <path>]
           [-tail [-f] <file>]
           [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
           [-chown [-R] [OWNER][:[GROUP]] PATH...]
           [-chgrp [-R] GROUP PATH...]
           [-help [cmd]]

Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|jobtracker:port>    specify a job tracker
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.

The general command line syntax is
bin/hadoop command [genericOptions] [commandOptions]

2)MapReduce程序的测试,单次频率统计 WordCount程序。
这里好麻烦没记笔记……

分析启动Shell脚本

1)查看start-all.sh 脚本

第一点:此Shell 脚本,仅仅在主节点上执行。

第二点:首先启动DFS文件系统的守护进程,在启动 MapReduce 框架的守护进程。

第三点:启动HDFS文件系统守护进程时,调用 start-dfs.sh Shell脚本。启动MapReduce守护进程时,调用start-mapred.sh Shell脚本。

2)查看start-dfs.sh 脚本

第一点:此脚本运行在DFS文件系统的主节点上。

第二点:如果先启动DataNode守护进程,在没有启动namenode守护进程之前Datanode日志文件中一直出现连接NameNode错误信息。

第三点:启动HDFS守护进程的顺序
这里写图片描述

第四点:namenode启动,调用的是 hadoop-daemon.sh 脚本
datanode和secondarynamenode启动调用的是hadoop-daemons.sh脚本

第五点:在启动secondarynamenode守护进程服务时,通过参数【–hosts masters】指定哪些机器上运行secondarynamenode服务。由此也验证了配置文件【masters】配置的IP地址为Secondnamenode
服务地址。

Eclipse导入Hadoop源码项目

在Ecilpse新建一个Java项目【hadoop1.2.1】

将Hadoop压缩包解压目录下src下core,hdfs,mapred,tools,examples 五个目录copy到上述新建项目的src目录。

修改Java Build Path——>Configure Build Path…中的【Source】,删除src,添加src/core,src/hdfs,src/mapred,src/tools,src/examples几个源码目录

为Java Build Path添加项目依赖jar,可以导入Hadoop压缩包解压目录下的lib下所有的jar包(别漏掉其子目录jsp-2.1中的jar包)。导入ant程序lib下所有jar包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值