Hadoop:HDFS单机配置与基本命令
接上篇Hadoop的单机布署,接下来准备以单机的形式体验一把HDFS。
写在前而,我本机hadoop的根目录是/hadoop/hadoop-2.10.2,请各位读者根据实际情况辨别各自的路径。
第一步,修改配置文件
/hadoop/hadoop-2.10.2/etc/hadoop/core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/hdfs/data</value> </property> <property> <name>fs.default.name</name> <value>hdfs://127.0.0.1:9000</value> </property> </configuration>
备注:
1) hadoop.tmp.dir,这个配置的是HDFS系统以来的基础目录,如果不配置它会设置为/tmp目录下,而/tmp目录下的文件不是永久性的,所以可能出现问题。
2) fs.default.name,设置的是HDFS的namenode的访问地址,因为namenode存放的是系统的所有元数据信息,也就是文件系统访问的入口,所以这个是必须要配置的。如果是用域名,则要使用本机可解析的域名地址。
/hadoop/hadoop-2.10.2/etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/hadoop/hdfs/hdfs_node</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/hadoop/hdfs/hdfs_data</value> </property> </configuration>
备注:
1) dfs.replication:从命名上可以看出这里配置的是每一个block的复制的份数,这里我们为了测试,简单配置为1.
2) dfs.namenode.name.dir:namenode依赖的根目录文件
3) dfs.datanode.data.dir:datanode依赖的根目录文件
第二步:HDFS格式化
hadoop namenode -format
第三步:启动进程
hadoop-daemon.sh start namenode hadoop-daemon.sh start datanode hadoop-daemon.sh start secondarynamenode
或者
start-dfs.sh
启动之后,运行jps命令,验证是否启动成功。如果启动成功,可看到
补充:关闭进程
hadoop-daemon.sh stop namenode hadoop-daemon.sh stop datanode hadoop-daemon.sh stop secondarynamenode
或者
stop-dfs.sh
第四步:初步试用
#列出根目录 hadoop fs -ls / #查看根目录大上 fs -df -h / #创建文件 hadoop fs -touchz /hello hadoop fs -touchz /world #将本地磁盘的大文件拷贝到hdfs中 hadoop fs -put hadoop.tar / #删除目录 hadoop fs -rmr dir/
补充:完整的hdfs命令格式
hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-checksum <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>] [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] <path> ...] [-cp [-f] [-p | -p[topax]] <src> ... <dst>] [-createSnapshot <snapshotDir> [<snapshotName>]] [-deleteSnapshot <snapshotDir> <snapshotName>] [-df [-h] [<path> ...]] [-du [-s] [-h] <path> ...] [-expunge] [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] <src> <localdst>] [-help [cmd ...]] [-ls [-d] [-h] [-R] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] <localsrc> ... <dst>] [-renameSnapshot <snapshotDir> <oldName> <newName>] [-rm [-f] [-r|-R] [-skipTrash] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]] [-setfattr {-n name [-v value] | -x name} <path>] [-setrep [-R] [-w] <rep> <path> ...] [-stat [format] <path> ...] [-tail [-f] <file>] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touchz <path> ...] [-usage [cmd ...]]
附后:
1、在hadoop单机布署篇中,因为没有开启hdfs,所以读写的文件路径都在本地的文件系统上。当前已经开启了hdfs,hadoop读写的默认是hdfs,如果要读写本地文件系统则要加上file:///,如下:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar wordcount file:///hadoop/input /output/out
其中:file:///hadoop/input是linux下的/hadoop/input;
/output/out则是hdfs下的路径。
2、常用命令:
hdfs dfs -ls / hdfs dfs -ls hdfs://127.0.0.1:9000 hdfs dfs -mkdir -p /usr2 创建文件夹(-p递归创建文件夹) hdfs dfs -rm -r /usr2 hdfs dfs -put file://D:/tmp/test.txt hdfs://usr/test.txt hdfs dfs -cat hdfs://127.0.0.1:9000/usr/test.txt hdfs dfs -copyToLocal hdfs://127.0.0.1:9000/usr/test.txt file://D:/tmp/test3.txt hdfs dfs -touchz /usr/myfile.txt hadoop fs -ls / hadoop fs -ls hdfs://127.0.0.1:9000/ 一定要有最后的/ hadoop fs -mkdir -p /usr 创建文件夹(-p递归创建文件夹) hadoop fs -rm -r /usr 删除文件夹 hadoop fs -put /D:/tmp/test.txt hdfs://usr/test.txt hadoop fs -cat /usr/test.txt hadoop fs -cat hdfs://127.0.0.1:9000/usr/test.txt hadoop fs -copyToLocal hdfs://127.0.0.1:9000/usr/test.txt file://D:/tmp/test3.txt 将文件从hdfs拷贝到本地,与-put方向相反 hadoop fs -touchz hdfs://127.0.0.1:9000/usr/myfile.txt 创建文件,-touchz
3、HDFS web管理界面
在start-dfs启动之后,访问http://localhost:9870/,即可看到web管理界面。
hadoop组件hdfs的单机版尝鲜试用到此就结束了,后期会对这些话题,展开更深入的探索:)