zoukankan      html  css  js  c++  java
  • 实验 3 Spark 和 Hadoop 的安装

    一、实验目的
    (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 命令”,厦门大学林子雨,赖永炫,陶继平 编著《Spark 编程基础(Scala 版)》 教材配套机房上机实验指南
    使用 Hadoop 提供的 Shell 命令完成如下操作:
    (1) 启动 Hadoop,在 HDFS 中创建用户目录“/user/hadoop”;
    (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 子目录及其子目录下的所有内容。
    3. Spark 读取文件系统的数据
    (1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文
    件的行数;
    (2)在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,
    请先创建),然后,统计出文件的行数;
    (3)编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,
    请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,
    并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。

     cd ~                                                           # 进入用户主文件夹

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

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

    3、在 ./sparkapp3/src/main/scala 下建立一个名为 SimpleApp.scala 的文件(vim ./sparkapp3/src/main/scala/SimpleApp.scala),添加代码如下:

    /* SimpleApp.scala */
    import org.apache.spark.SparkContext
    import org.apache.spark.SparkContext._
    import org.apache.spark.SparkConf

    object SimpleApp {
      def main(args: Array[String]) {
        val logFile = "hdfs://localhost:9000/home/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))
      }
    }

    4、该程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。 ./sparkapp3 中新建文件 simple.sbtvim ./sparkapp3/simple.sbt,添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:

     

     5、使用 sbt 打包 Scala 程序

    (1)为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构:

    (2)文件结构应如下图所示:

     (3)接着,我们就可以通过如下代码将整个应用程序打包成 JAR:

    4)打包成功的话,会输出如下图内容:

     生成的 jar 包的位置为 ~/sparkapp3/target/scala-2.12/simple-project_2.12-1.0.jar。(scala-2.12和simple-project_2.12-1.0.jar处可能有所不同,读者只需要到对应的文件夹下对应查找即可)(~为主文件夹:点击虚拟机的 进入就是主文件夹)

    4、通过 spark-submit 运行程序

    (1)最后,我们就可以将生成的 jar 包通过 spark-submit 提交到 Spark 中运行了,命令如下:(红线部分就是上边说的生成的jar包的位置)

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

    (2)最终得到的结果如下:

  • 相关阅读:
    flex + bison multiple parsers
    Educational Codeforces Round 95 (Rated for Div. 2)
    python学习笔记 day20 序列化模块(二)
    python学习笔记 day20 常用模块(六)
    python 学习笔记 常用模块(五)
    python学习笔记 day19 常用模块(四)
    python学习笔记 day19 常用模块(三)
    python学习笔记 day19 常用模块(二)
    python学习笔记 day19 作业讲解-使用正则表达式实现计算器
    python学习笔记 day19 常用模块
  • 原文地址:https://www.cnblogs.com/1234yyf/p/14317084.html
Copyright © 2011-2022 走看看