
从fs -ls从列出来的文件看,这个文件夹/user/root/input是通过root用户创建的。说明你在从本地文件系统拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令,你可能忘记切换用户了,可以删除现在的input目录(采用root用户运行hadoop的删除命令,或者不删除也没关系),重新使用hadoop用户把input导入到hdfs系统中试试看。
frostfish425说的是对的!/user/hadoop是安装目录,就是说你hadoop相关的配置和代码都是放在这个位置,这个你自己定就可以了,但是要注意你配置文件和环境变量中的相关配置都要相应的发生改变。而/tmp/hadoop-hadoop/dfs/name是你配置的hdfs目录,也就是数据存放目录,在hdfs-site.xml中配置的,当然你也可以改变这个目录!
这个目录挂载的磁盘要足够大,不然数据存放不下,你初始化的时候报的这个Storage directory /tmp/hadoop-hadoop/dfs/name has been successfully formatted其实就是在/tmp/hadoop-hadoop/dfs这个目录下创建了name目录,意思就是告诉你,数据存放目录已经创建成功了!
从fs -ls从列出来的文件看,这个文件夹/user/root/input是通过root用户创建的。说明你在从本地文件系统拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令,你可能忘记切换用户了,可以删除现在的input目录(采用root用户运行hadoop的删除命令,或者不删除也没关系),重新使用hadoop用户把input导入到hdfs系统中试试看。另外,实际上应用的时候是需要关注hdfs中文件的目录结构的。你现在采用的是默认的方式,缺省会放/user/${user.name}目录下。
在把本地文件导入到hdfs的时候,是可以指定传到什么目录的,比如:
#创建input目录
sh bin/hadoop fs -mkdir /user/hadoop/input
#把myfile.txt导入到hdfs的input目录下
sh bin/hadoop fs –put /usr/hadoop/mydata/myfile.txt /user/hadoop/input
1.找到examples例子我们需要找打这个例子的位置:首先需要找到你的hadoop文件夹,然后依照下面路径:
/hadoop/share/hadoop/mapreduce会看到如下图:
hadoop-mapreduce-examples-2.2.0.jar
第二步:
我们需要需要做一下运行需要的工作,比如输入输出路径,上传什么文件等。
1.先在HDFS创建几个数据目录:
hadoop fs -mkdir -p /data/wordcount
hadoop fs -mkdir -p /output/
2.目录/data/wordcount用来存放Hadoop自带的WordCount例子的数据文件,运行这个MapReduce任务的结果输出到/output/wordcount目录中。
首先新建文件inputWord:
vi /usr/inputWord
新建完毕,查看内容:
cat /usr/inputWord
将本地文件上传到HDFS中:
hadoop fs -put /usr/inputWord /data/wordcount/
可以查看上传后的文件情况,执行如下命令:
hadoop fs -ls /data/wordcount
可以看到上传到HDFS中的文件。
通过命令
hadoop fs -text /data/wordcount/inputWord
看到如下内容:
下面,运行WordCount例子,执行如下命令:
hadoop jar /usr/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /data/wordcount /output/wordcount
可以看到控制台输出程序运行的信息
查看结果,执行如下命令:
hadoop fs -text /output/wordcount/part-r-00000
结果数据示例如下:
登录到Web控制台,访问链接http.//master:8088/可以看到任务记录情况。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)