HDFS配置及运行Java程序

    xiaoxiao2023-10-12  191

    HDFS分布文件系统 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。 HDFS分布文件系统的特点:hdfs快照、hdfs数据组织、hdfs阶段状态、hdfs流水式复制

    实验 安装配置JDK+Eclipse+Maven,搭建HDFS,运行Java程序 软件程序 JDK Eclipse Maven 实验步骤 一、安装配置JDK+Eclipse+Maven 1.安装配置JDK 运行jdk-8u201-windows-x64.exe安装包,配置JDK的环境变量,Path添加JDK的\bin的安装路径,cmd命令行运行javac,查看是否成功安装配置。

    系统变量→新建 JAVA_HOME 变量 。变量值填写jdk的安装目录,例: E:\Java\jdk1.7.0 系统变量→ Path 变量→编辑在变量值: %JAVA_HOME%\bin;

    2.安装Eclipse 运行eclipse-inst-win64安装包,选择Eclipse IDE for Java Developers,开始安装。过程可能较慢。

    3.安装Maven 解压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,查看是否成功安装配置。

    新建环境变量MAVEN_HOME,变量值:C:\eclipse\apache-maven-3.6.0。 编辑环境变量Path,编辑在变量值%MAVEN_HOME%\bin\;

    4.Eclipse配置Maven 在安装所在文件夹\apache-maven-3.6.0下面,新建\repository文件夹,作为Maven本地仓库。 ① 修改settings.xml,找到maven的安装路径,打开文件settings.xml在里面添加 (新建repository的路径E:\apache-maven-3.6.0\repository)保存退出 ②配置Maven的installation和User Settings 【Preferences】→【Maven】→【Installations】配置Maven安装路径,【User Settings】配置settings.xml的路径。在Eclipse里新建Maven Project,输入com.bla,项目名称HDFSTest,等待自动生成Maven项目。 新建包hdfs.files,包里新建class:4个java文件 ③添加pom.xml依赖(这步需要联网) 依赖(Maven Repository: hadoop)所在网址:https://mvnrepository.com/tags/hadoop, 找到对应版本的三个依赖(如下),拷贝至pom.xml的与之间,保存之后自动生成Maven Dependencies。

    <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency> </dependencies>

    安装配置成功后,Maven项目树显示如下 二、HDFS 1.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地址 ipaddr 查看IP地址

    2.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下载文件到本地

    3.HDFS的Java程序 (1)HDFSMKdir.java新建HDFS目录/aadir。 (2)HDFSUpload.java写入/上传 本地文件c:\hdfs\aa.txt 到HDFS的/aadir目录下。 (3)HDFSDownload.java读/下载 HDFS的根目录文件/bb.txt到本地c:\hdfs目录下。

    (4)HDFSFileIfExist.java查看HDFS文件/bb.txt是否存在。 三、总结 虽然说hdfs是文件系统,但本质上并没有格式化本机上的硬盘,所以其实只是硬盘上的一种特殊的文件储存格式,并且必须通过IP:PORT进行访问。实质上在配置并启动了集群之后,集群之间便会进行网络通信,并通过namenode的IP和指定端口(50070)对外提供访问。

    最新回复(0)