HDFS 常用操作
(1) 启动 Hadoop,在 HDFS 中创建用户目录“/user/hadoop”;
该命令中表示在HDFS中创建一个“/user/hadoop”目录,“–mkdir”是创建目录的操作,“-p”表示如果是多级目录,则父目录和子目录一起创建,这里“/user/hadoop”就是一个多级目录,因此必须使用参数“-p”,否则会出错。
(2) 在 Linux 系统的本地文件系统的“/home/hadoop”目录下新建一个文本文件 test.txt,并在该文件中随便输入一些内容,然后上传到 HDFS 的“/user/hadoop” 目录下;
(3) 把 HDFS 中“/user/hadoop”目录下的 test.txt 文件,下载到 Linux 系统的本地文件系统中的“/home/hadoop/下载”目录下;
(4) 将HDFS中“/user/hadoop”目录下的test.txt文件的内容输出到终端中进行显示;
(5) 在 HDFS 中的“/user/hadoop”目录下,创建子目录 input,把 HDFS 中 “/user/hadoop”目录下的 test.txt 文件,复制到“/user/hadoop/input”目录下;
(6) 删除HDFS中“/user/hadoop”目录下的test.txt文件,删除HDFS中“/user/hadoop” 目录下的 input 子目录及其子目录下的所有内容。
Spark 读取文件系统的数据
1.首先进入spark-shell指令
2. 在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文件的行数;
注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
textFile.count() #统计结果显示 1 行
3. 在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,
请先创建),然后,统计出文件的行数;
4. 编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包, 并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。
首先输入 :quit 命令退出spark-shell模式:
在终端中执行如下命令创建一个文件夹 sparkapp3 作为应用程序根目录:
在sparkapp3/src/main/scala下建立一个名为SimpleApp.scala的文件
(vim sparkapp3/src/main/scala/SimpleApp.scala)
该程序依赖Spark API,因此我们需要通过sbt进行编译打包。sparkapp3中新建文件simple.sbt(vim ./sparkapp3/simple.sbt),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系
注意:文件 simple.sbt 需要指明 Spark 和 Scala 的版本,如下图所示
为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构
接着,我们就可以通过代码将整个应用程序打包成 JAR,使用sbt之前确保安装了sbt
安装sbt
https://www.scala-sbt.org/download.html下载sbt-1.3.4.tgz安装包
解压缩,改配置等一系列请自行百度
安装之后打包
代码需要规范书写,空格之类的不然会报错
生成的 jar 包的位置为 /sparkapp3/target/scala-2.12/simple-project_2.12-1.0.jar
通过 spark-submit 运行程序
结果