大数据技术与应用实验报告7

    xiaoxiao2025-06-20  27

    大数据技术与应用实验报告7

    Saprk基于Hadoop的安装与配置,进行使用

    内容:Spark shell实现HDFS文件的读入,本地文件的读入,以及WordCount通过spark shell、scala、java的实现

    Spark的编程模型:

    三种语言:Scala Java  Python

    1.安装Scala 下载地址:http://www.scala-lang.org/download/(我选择的是scala-2.12.1.tgz) 下载完成后解压到目录下,然后配置环境变量: export SCALA_HOME=/home/gyy/scala-2.12.1 export PATH=${SCALA_HOME}/bin:$PATH

    2.安装Spark

    下载地址:http://spark.apache.org/downloads.html

    选择Spark-2.4.0

    将 spark-2.4.0/yarn 目录下的 spark-2.4.0-yarn-shuffle.jar 拷贝到/env/hadoop-2.9.2/share/hadoop/yarn/lib 目录下

    配置spark 环境变量:

    cd /env/spark-2.4.0/conf cp spark-env.sh.template spark-env.sh vim spark-env.sh

    修改hadoop 配置:

    vim /env/hadoop-2.9.2/etc/hadoop/yarn-site.xml

    启动 spark:

    /env/spark-2.4.0/sbin/start-all.sh

    安装配置好这些后进行:

    使用Spark shell编写代码实现HDFS文件的读入,本地文件的读入,以及WordCount通过spark shell、scala、java的实现。

     

    例:

    Spark的“Hello World”程序 读取一个HDFS文件,计算包含字符串“Hello World”行数 val sc= new SparkContext(“spark://localhost:7077”,”Hello World”, “YOUR_SPARK_HOME”,”YOUR_APP_JAR”) val fileRDD = sc.textFile(“hdfs://192.168.0.103:9000/examplefile”) val filterRDD = fileRDD.filter(_.contains(“Hello World”)) filterRDD.cache() filterRDD.count() //创建SparkContext对象 在spark程序运行起来后,程序就会创建sparkContext,解析用户的代码,当遇到action算的时候开始执行程序,但是在执行之前还有很多前提工作要在sparkContext中做的。

    val fileRDD = sc.textFile(“hdfs://192.168.0.103:9000/examplefile”) //从HDFS文件中读取数据创建一个RDD RDD是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算。RDD提供了一种高度受限的共享内存模型.

    val filterRDD = fileRDD.filter(_.contains(“Hello World”)) //对fileRDD进行转换操作得到一个新的RDD,即filterRDD。

    filterRDD.cache() //对filterRDD进行持久化 把它保存在内存或磁盘中(这里采用cache接口把数据集保存在内存中),方便后续重复使用,当数据被反复访问时(比如查询一些热点数据,或者运行迭代算法),这是非常有用的,而且通过cache()可以缓存非常大的数据集,支持跨越几十甚至上百个节点。

    filterRDD.count() // count()是一个行动操作,用于计算一个RDD集合中包含的元素个数。

    最新回复(0)