实验二 HDFS命令和Java API

一、实验步骤:1.安装JDK→2.安装Eclipse→3.安装Maven→4. Eclipse里配置Maven (下载Windows版本,在Windows里安装使用。)
1.安装配置JDK
①官网下载Java开发工具安装包jdk-8u201-windows-x64.exe:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
②运行安装包,第一次选择JDK安装路径,第二次选择JRE安装路径,开始安装。
③配置JDK的环境变量,Path添加JDK的\bin的安装路径,cmd命令行运行javac,查看是否成功安装配置。

2.安装Eclipse
①官网下载Eclipse安装包eclipse-inst-win64:https://www.eclipse.org/downloads/
②运行安装包,选择Eclipse IDE for Java Developers,开始安装。过程可能较慢。

3.安装Maven
① Maven官网http://maven.apache.org/download.cgi,选择最近的镜像,选择Maven压缩包apache-maven-3.6.0-bin.tar.gz开始下载。
②解压Maven压缩包apache-maven-3.6.0-bin.tar.gz,解压后的文件夹\apache-maven-3.6.0,将其考入自定义路径,如C:\eclipse\apache-maven-3.6.0。
③配置Maven的环境变量,Path添加Maven的\bin的安装路径,cmd命令行运行mvn -v,查看是否成功安装配置。

4.Eclipse配置Maven
①修改settings.xml
在安装所在文件夹\apache-maven-3.6.0下面,新建\repository文件夹,作为Maven本地仓库。在文件settings.xml里添加 C:\eclipse\apache-maven-3.6.0\repository。
②配置Maven的installation和User Settings
【Preferences】→【Maven】→【Installations】配置Maven安装路径,【User Settings】配置settings.xml的路径。
③添加pom.xml依赖
依赖(Maven Repository: hadoop)所在网址:https://mvnrepository.com/tags/hadoop ,找到对应版本的三个依赖(如下),拷贝至pom.xml的与之间,保存之后自动生成Maven Dependencies。
安装配置成功后,Maven项目树显示如下两项:
实验二 HDFS命令和Java API
HDFS概念和存储机制:
概念: 分布式文件系统,主要是文件系统。
存储机制:将文件切分称指定大小的数据块(默认128MB)并以多副本的方式存储在多台服务器上。
(默认3份)数据的切分,多副本,容错等操作对用户来说是透明的。用户操作对象还是文件。
Linux的shell命令
常用的linux的shell命令:

cd /aa 转到/aa目录
pws 显示当前目录
ll /aa 显示/aa目录
mkdir /aa 新建/aa目录
rm /aa/out.txt 删除/aa目录下的out.txt文件
cat /aa/out.txt 查看/aa目录下的out.txt文件的内容
vi /aa/out.txt 编辑/aa目录下的out.txt文件的内容
ifconfig 查看IP地址
ip addr 查看IP地址
hdfs的shell命令
hdfs的shell命令,有三种形式,用前面两个。
hdfs dfs √
hadoop fs √
hadoop dfs ×
常用的hdfs的shell命令:
hdfs dfs -ls / 查看hdfs根目录下文件和目录
hdfs dfs -ls -R / 查看hdfs根目录下包括子目录在内的所有文件和目录
hdfs dfs -mkdir /aa/bb 在hdfs的/aa目录下新建/bb目录
hdfs dfs -rm -r /aa/bb 删除hdfs的/aa目录下的/bb目录
hdfs dfs -rm /aa/out.txt 删除hdfs的/aa目录下的out.txt文件

hdfs dfs -put anaconda-ks.cfg /aa 把本地文件上传到hdfs
hdfs dfs -copyFromLocal a.txt / 把本地文件上传到hdfs
hdfs dfs -get /bb.txt bbcopy.txt 从hdfs下载文件到本地
hdfs dfs -copyToLocal /bb.txt bbcopy.txt 从hdfs下载文件到本地
HDFS的Java程序
一、HDFSMKdir.java新建HDFS目录/aadir。
实验二 HDFS命令和Java API
二、HDFSUpload.java写入/上传 本地文件c:\hdfs\aa.txt 到HDFS的/aadir目录下。
三、HDFSDownload.java读/下载 HDFS的根目录文件/bb.txt 到本地c:\hdfs目录下。
四、HDFSFileIfExist.java查看HDFS文件/bb.txt是否存在。

五、总结:

  • Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
    HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
    可访问性
    HDFS提供多种方式由应用程序访问,自然地,HDFS提供为程序提供java api,为c语言包装的java api也是可用的,还有一个HTTP浏览器可以浏览HDFS中的文件,通过WebDAV协议访问HDFS库的方式也正在构建中。