本资源为燕山大学大数据实验报告,包括四个实验hadoop和spark下载,使用mllib实现线性回归算法,使用mllib实现支持向量机算法,使用mllib实现支持k-means算法。其中支持向量机算法求解了recall,precision,f1-score和accracy来实现算法评估。
### 大数据分析实验报告知识点概览
#### 实验一:Hadoop与Spark环境构建及应用开发
##### 实验目的与要求
本实验旨在使学生掌握Hadoop与Spark环境的搭建方法,并能正确启动Spark服务流程,进而实现Spark应用程序并确保其正常运行。
1. **Hadoop与Spark环境构建**:
   - 要求学生能够独立完成Hadoop与Spark环境的安装配置。
   - 学生需具备启动Hadoop与Spark服务的能力。
2. **Spark应用开发**:
   - 学生应能够编写并运行简单的Spark应用程序。
   - 通过实践加深对Spark工作原理的理解。
##### 实验环境与软件配置
- **虚拟机平台**:VMware Workstation Pro 16
- **操作系统**:Ubuntu 14.04 Server (AMD64)
- **JDK版本**:1.8
- **Scala版本**:2.12.6
- **Hadoop版本**:2.7.7
- **Spark版本**:2.4.4 (含Hadoop 2.7)
##### 实验内容
- 在Linux系统或虚拟机上安装配置Hadoop与Spark环境,并启动相应的守护进程。
- 使用Spark实现WordCount程序的开发与运行。
1. **数据准备**:
   - 输入数据:`input.txt`
2. **代码实现**:
   ```scala
   import org.apache.spark.SparkConf
   import org.apache.spark.SparkContext
   import org.apache.log4j.{Level, Logger}
   object WordCount {
     def main(args: Array[String]): Unit = {
       Logger.getLogger("org").setLevel(Level.OFF)
       val conf = new SparkConf().setAppName("WordCount").setMaster("local[*]")
       val sc = new SparkContext(conf)
       val input = sc.textFile("file:/home/liqing/桌面/input.txt")
       val words = input.flatMap(line => line.split(" "))
       val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _)
       val result = wordCounts.collect()
       result.foreach(println)
       sc.stop()
     }
   }
   ```
3. **测试结果**:
   - 访问Hadoop集群管理界面:`192.168.37.146:50070`
   - 访问Spark UI:`192.168.37.146:8080`
   - WordCount程序运行结果展示。
由于WordCount程序不涉及分类或回归任务,因此无法用Precision、Recall等指标进行评估。
#### 实验二:使用Spark MLlib实现线性回归算法
##### 实验目的与要求
1. **理解线性回归的基本原理**:要求学生能够准确理解线性回归算法的基本原理。
2. **实现线性回归算法**:要求学生能够利用Spark MLlib实现基本的线性回归算法,并进行实际数据集上的训练与测试。
##### 实验内容
1. **数据准备**:准备用于训练和测试的样本数据集。
2. **模型训练**:利用Spark MLlib提供的API实现线性回归模型训练过程。
3. **模型评估**:使用测试集数据对训练好的模型进行评估,计算准确率、精确率、召回率以及F1分数等指标。
本实验报告通过Hadoop与Spark环境的构建、WordCount程序的实现,以及基于Spark MLlib的线性回归算法的实现与评估,全面涵盖了大数据处理与分析的核心技术要点。学生在完成这些实验后,将对Hadoop、Spark及其机器学习库有更深入的认识与理解。
                                    
                                    
                                        
                                            1