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的单机版尝鲜试用到此就结束了,后期会对这些话题,展开更深入的探索:)

 

posted on 2024-03-26 11:19  咚..咚  阅读(427)  评论(0编辑  收藏  举报

导航