从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目录,意思就是告诉你,数据存放目录已经创建成功了!
创建test文件夹hadoop fs -mkdir /test
查看文件夹
hadoop fs -ls /test
删除文件夹命令rmr,删除文件命令rm
HDFS中根目录下创建user文件夹的命令为hadoop dfs-mkdir。在hdfs中创建一个input文件夹:hadoop fs -mkdir /input/1、使用参数-p创建多级目录:hadoop fs -mkdir -p /input/file1。拷贝input目录到hdfs系统的时候,不是采用的hadoop用户,而是用root用户执行的拷贝命令。
hdfs的特点和目标:
1、硬件故障
硬件故障是常态,而不是异常。整个HDFS系统将由数百或数千个存储着文件数据片段的服务器组成。实际上它里面有非常巨大的组成部分,每一个组成部分都很可能出现故障,这就意味着HDFS里的总是有一些部件是失效的,因此,故障的检测和自动快速恢复是HDFS一个很核心的设计目标。
2、数据访问
运行在HDFS之上的应用程序必须流式地访问它们的数据集,它不是运行在普通文件系统之上的普通程序。HDFS被设计成适合批量处理的,而不是用户交互式的。重点是在数据吞吐量,而不是数据访问的反应时间,POSIX的很多硬性需求对于HDFS应用都是非必须的,去掉POSIX一小部分关键语义可以获得更好的数据吞吐率。
3、大数据集
运行在HDFS之上的程序有很大量的数据集。典型的HDFS文件大小是GB到TB的级别。所以,HDFS被调整成支持大文件。它应该提供很高的聚合数据带宽,一个集群中支持数百个节点,一个集群中还应该支持千万级别的文件。
以上内容参考:百度百科-hdfs
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)