努力不一定成功但放弃就一定失败
分类: 云计算
2012-05-26 19:40:12
这里简单的说几个hadoop里的命令,不至于搭建完这个后不知道该干嘛了!
hadoop分布式文件系统在理解上相对其节点上的本地文件系统而言较为抽象,可理解其为虚拟分布式文件系统:
$ pwd
/home/hadoop/hadoop
格式化分布式文件系统
$ bin/hadoop namenode –format
启动hadoop的守护进程
$ bin/start-all.sh
停止hadoop的守护进程
$ bin/stop-all.sh
可用jps查看守护进程是否启动
/usr/local/jdk1.7.0_03/bin/jps
制定文件和目录确切位置的URL
hadoop的文件命令既可以与HDFS文件系统交互。也可以和本地文件系统交互。URL精确的确定一个特定文件或目录的位置。其完整格式是scheme://authority/path.scheme类似于一个协议。它可以是hdfs或file,分别来区别HDFS文件系统或本地文件系统。对于hdfs,authority是NameNode主机名,而path是文件或目录的路径。一般使用的一些简单指令,都会省去scheme://authority。而对于本地文件系统而言,则使用的是unix命令。例如:我们在hdfs文件系统上使用的上命令: hadoop dfs -ls / 。其完整的命令格式是:hadoop dfs -ls hdfs://master:9000/,其原因是在这个过程中其使用了默认的。因为在前面的配置文件conf/core-site.xml中fs.default.name的属性为
所以其在不使用完全路径时,默认的是hdfs文件系统的NameNode主机。
为了方便后边的演示,我在这里新建几个文件及目录!
$ mkdir input
$ cd input/
$ echo "hello, ykyx00" > file1
$ echo "hello, hadoop" > file2
查看该文件系统根目录下的文件
$bin/hadoop dfs -ls /
(其中的-ls为选项,“/”为参数)
如果你想看到该分布文件系统下的所有文件可使用lsr这个指令(lsr相当与linux下的ls -r)
$bin/hadop dfs -lsr /
******在hdfs文件系统中,未带参数的“-ls”没有任何返回值,它默认是“home”目录下的内容。在hdfs中,没有当前目录这一概念,也没有cd这个命令。******也即是说在给hdfs中添加文件时,就直接指定好其所放置的,即是:其路径。
将input 目录复制到hdfs的根目录,并重命名为in,out为处理完成后输出目录(执行之前out必须为空,否则会出错)并且在执行“-put”命令时,其结果只有两种可能(成功和失败),文件首先复制到Datanode上,只有所有的Datanode都成功的接受完数据时,文件的上传才算是成功的。
$ bin/hadoop dfs -put input in
$ bin/hadoop jar hadoop-examples-1.0.1.jar wordcount in out
列出文档中的文件
$ bin/hadoop dfs -ls in
-rw-r--r-- 1 hadoop supergroup 14 2012-04-03 12:10 /user/hadoop/in/file1
-rw-r--r-- 1 hadoop supergroup 14 2012-04-03 12:10 /user/hadoop/in/file2
查看hdfs文件内容
$ bin/hadoop dfs -cat in/file1
hello, ykyx00
删除文件
bin/hadoop dfs –rm in/file1
删除目录
$bin/hadoop dfs -rmr in/input (加入在hdfs的in目录下有个input的目录)
当hdfs目录中的文件file1下载到本地,并重命名为test
$ bin/hadoop dfs -get in/file1 test
学习更多的命令可以使用-help选项
$bin/hadoop dfs -help
查看具体命令的使用方法以rmr为例
$bin/hadoop dfs -help rmr
管理与更新命令:
报告hdfs的基本统计信息
$ bin/hadoop dfsadmin –report
进入安全模式(安全模式下文件系统不允许修改)
$ bin/hadoop dfsadmin -safemode enter
Safe mode is ON
退出安全模式(需要等待17秒生效)
$ bin/hadoop dfsadmin -safemode leave
Safe mode is OFF
启动负载均衡
$ bin/start-balancer.sh