./hadoop dfs -ls /
hadoop@Master:/opt/hadoop/bin$ ./hadoop dfs -ls /
Found 2 items
drwxr-xr-x - root supergroup 0 2012-07-13 15:20 /opt
drwxr-xr-x - root supergroup 0 2012-07-13 15:20 /user
hadoop@Master:/opt/hadoop$ bin/hadoop fs -mkdir input
遇到问题:
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hadoop/input. Name node is in safe mode.
那什么是Hadoop的安全模式呢?
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全 模式结束。
安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。
运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。
现在就清楚了,那现在要解决这个问题,我想让Hadoop不处在safe mode 模��下,能不能不用等,直接解决呢?
答案是可以的,只要在Hadoop的目录下输入:
hadoop@Master:/opt/hadoop/bin$ ./hadoop dfsadmin -safemode leave
hadoop@Master:/opt/hadoop$ bin/hadoop fs -mkdir input
hadoop@Master:/opt/hadoop/bin$ cd ..
hadoop@Master:/opt/hadoop$ bin/hadoop fs -mkdir input
hadoop@Master:/opt/hadoop$ bin/hadoop fs -put conf/core-site.xml input
hadoop@Master:/opt/hadoop$ bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+'
6.补充
Q: bin/hadoop jar hadoop-0.20.2-examples.jar grep input output 'dfs[a-z.]+' 什么意思啊?
A: bin/hadoop jar(使用hadoop运行jar包) hadoop-0.20.2_examples.jar(jar包的名字) grep (要使用的类,后边的是参数)input output 'dfs[a-z.]+'
整个就是运行hadoop示例程序中的grep,对应的hdfs上的输入目录为input、输出目录为output。
Q: 什么是grep?
A: A map/reduce program that counts the matches of a regex in the input.
查看结果:
hadoop@Master:/opt/hadoop$ bin/hadoop fs -ls /user/hadoop/output
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2012-07-24 11:29 /user/hadoop/output/_logs
-rw-r--r-- 3 hadoop supergroup 0 2012-07-24 11:30 /user/hadoop/output/part-00000
hadoop@Master:/opt/hadoop$ bin/hadoop fs -rmr /user/hadoop/outputtest
Deleted hdfs://Master.Hadoop:54310/user/hadoop/outputtest
hadoop@Master:/opt/hadoop$ bin/hadoop fs -rmr /user/hadoop/output
Deleted hdfs://Master.Hadoop:54310/user/hadoop/output
改用其他例子
hadoop@Master:/opt/hadoop$ bin/hadoop jar /opt/hadoop/hadoop-0.20.2-examples.jar wordcount input output
hadoop@Master:/opt/hadoop$ bin/hadoop fs -ls /user/hadoop/output
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2012-07-24 11:43 /user/hadoop/output/_logs
-rw-r--r-- 3 hadoop supergroup 772 2012-07-24 11:43 /user/hadoop/output/part-r-00000
hadoop@Master:/opt/hadoop$ bin/hadoop fs -cat /user/hadoop/output/part-r-00000
(fs.SCHEME.impl) 1
--> 1
<!-- 1
</configuration> 1
</property> 2
<?xml 1
<?xml-stylesheet 1
测试成功!
重启遇到的错误
INFO ipc.Client: Retrying connect to server: master/192.168.0.45:54310. Already tried 0 time
./hadoop dfsadmin -report
cd /opt/hadoop-datastore/
/opt/hadoop/bin/stop-all.sh
rm -rf *
/opt/hadoop/bin/hadoop namenode -format
/opt/hadoop/bin/start-all.sh
./hadoop dfsadmin -report