Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统,HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。
HDFS采用和linux类型的树状文件系统,名称节点维护数据,数据节点保存数据。为分布式系统的应用提供存储服务,基于hdfs,可以有Hadoop的各种组件应用,mapReduce,hive,sqoop,spark等。
Cloudrea是商业化的Hadoop封装,更易安装,开发,和使用。
操作hdfs的命令也与linux差不多:
1、xshell登录cloudrea的管理机器,cat /etc/hosts , 然后 ssh 名称节点
2、免密码进入名称节点后,可以jps查看 hadoop的服务
3、hdfs 命令:
hadoop fs -ls / path:查看path下的文件
hadoop fs -mkdir path : 创建文件夹
hadoop fs -touchz file 创建文件
hadoop fs -rm (-r) 删除文件,删除文件夹
hadoop fs -put local hdfs 本地文件夹上传到hdfs文件系统中
hadoop fs -get hdfs local 下载hdfs 文件到 本地文件
java HDFS API
1、HDFS中的文件操作主要涉及一下几个类:
Configuration类:该类的对象封转了客户端或者服务器的配置。
FileSystem类:该类的对象是一个文件系统对象,可以用该对象的一些方法来对文件进行操作。FileSystem fs = FileSystem.get(conf);通过FileSystem的静态方法get获得该对象。
FSDataInputStream和FSDataOutputStream:这两个类是HDFS中的输入输出流。分别通过FileSystem的open方法和create方法获得。
2、主要代码
FileSystem fs = FileSystem.get(Uri.create(uri),new Configuration());
uri 为 名称节点下的具体文件路径
如uri = hdfs:10.60.16.67:9000/dataCenter/hadoop
有了fs可以create,delete,copyFromLocal,getOutputStream,等进行创建,删除,上传,下载等操作