2021-2022年寒假学习进度11

今天学习了scala面向对象编程的特点,并完成了spark基础实验三

一、实验目的

 

(1) 掌握在 Linux 虚拟机中安装 Hadoop 和Spark 的方法;

(2) 熟悉HDFS 的基本使用方法;

(3) 掌握使用Spark 访问本地文件和HDFS 文件的方法。

 

二、实验平台

 

操作系统:Ubuntu16.04; Spark 版 本 :2.1.0; Hadoop 版本:2.7.1。

 

三、实验内容和要求

 

1. 安装 Hadoop Spark

 

进入 Linux 系统,参照本教程官网“实验指南”栏目的“Hadoop 的安装和使用”,完 Hadoop 伪分布式模式的安装。完成 Hadoop 的安装以后,再安装Spark(Local 模式)。

 

2. HDFS 常用操作

 

使用 hadoop 用户名登录进入 Linux 系统,启动 Hadoop,参照相关 Hadoop 书籍或网络资料,或者也可以参考本教程官网的实验指南栏目的HDFS 操作常用 Shell 命令

 

使用Hadoop 提供的 Shell 命令完成如下操作:

(1) 启动Hadoop,在HDFS 中创建用户目录/user/hadoop”;

hadoop fs -mkdir /user/hadoop

 

(2)  Linux 系统的本地文件系统的/home/hadoop”目录下新建一个文本文件test.txt,并在该文件中随便输入一些内容,然后上传到 HDFS /user/hadoop” 目录下;

hdfs dfs -put /home/hadoop/test.txt /user/hadoop

 

(3)  HDFS /user/hadoop”目录下的 test.txt 文件,下载到 Linux 系统的本地文件系统中的/home/hadoop/下载”目录下;

hdfs dfs -get /user/hadoop/test.txt /home/hadoop

 

(4) 将HDFS /user/hadoop”目录下的test.txt文件的内容输出到终端中进行显示;

hdfs dfs -cat /user/hadoop/test.txt

 

(5)  HDFS 中的/user/hadoop” 目录下, 创建子目录 input ,把 HDFS /user/hadoop”目录下的 test.txt 文件,复制到/user/hadoop/input”目录下;

hadoop fs -mkdir /user/hadoop/input

hddoop fs -cp /user/hadoop/test.txt /user/hadoop/input

 

(6) 删除HDFS /user/hadoop”目录下的test.txt文件,删除HDFS /user/hadoop” 目录下的 input 子目录及其子目录下的所有内容。

hadoop fs -rm /user/hadoop/test.txt

hadoop fs -rm -r /user/hadoop/input

 

3. Spark 读取文件系统的数据

 

(1)  spark-shell 中读取Linux 系统本地文件/home/hadoop/test.txt”,然后统计出文件的行数;

 

bin/spark-shell

val textFile = sc.textFile("file:///home/hadoop/test.txt")  

textFile.count()

 

(2)  spark-shell 中读取HDFS 系统文件/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;

val textFile1 = sc.textFile("hdfs://Hadoop102:8020/user/hadoop/test.txt")

textFile1.count()

 

(3) 编写独立应用程序,读取 HDFS 系统文件/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的JAR 包通过 spark-submit  提交到 Spark 中运行命令。

cd ~                                                           # 进入用户主文件夹

mkdir ./sparkpro                                              # 创建应用程序根目录

mkdir -p ./sparkpro/src/main/scala                            # 创建所需的文件夹结构

vim ./sparkpro/src/main/scala/Simple.scala

编写代码到Simple.scala

/*注意路径logFiled*/

import org.apache.spark.SparkContext

import org.apache.spark.SparkContext._

import org.apache.spark.SparkConf

 

object Simple{

  def main(args: Array[String]) {

    val logFile = "hdfs://Hadoop102:8020/user/hadoop/test.csv"

    val conf = new SparkConf().setAppName("Simple Application")

    val sc = new SparkContext(conf)

    val logData = sc.textFile(logFile, 2)

    val num = logData.count()

    println("这个文件有 %d 行!".format(num))

  }

}

之后创建simple.sbt

vim ./sparkpro/simple.sbt

写入simple.sbt

/*注意:文件 simple.sbt 需要指明 Spark Scala 的版本*/

name := "Simple Project"

version := "1.0"

scalaVersion := "2.12.10"

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.0.0"

然后打包执行

cd ~/sparkpro

/opt/module/sbt/sbt package

/opt/module/spark-local/bin/spark-submit --class "Simple" ~/sparkpro/target/scala-2.12/simple-project_2.12-1.0.jar 2>&1 | grep "这个文件有"

 

 

posted @ 2022-01-11 23:31  哦心有  阅读(27)  评论(0编辑  收藏  举报