Spark实验汇总(七个实验相结合)
日期:2020.01.20
博客期:128
星期一
一、环境搭建篇
1、安装虚拟机应用程序 VMware Workstation Pro
【编写日期:2020-01-20】
去到 官网 下载 VMware Workstation Pro

要下载这个:
【编写完毕】
2、安装Ubuntu
学习资源来源于 林子雨 老师的平台
地址:http://dblab.xmu.edu.cn/blog/285/
3、配置 hadoop环境
学习资源来源于 林子雨 老师的平台
地址:http://dblab.xmu.edu.cn/blog/install-hadoop-cluster/
4、配置spark环境
学习资源来源于 林子雨 老师的平台
地址:http://dblab.xmu.edu.cn/blog/804-2/
5、配置mysql环境
学习资源来源于 林子雨 老师的平台
参考链接:http://dblab.xmu.edu.cn/blog/install-mysql/#more-1002
6、本地 Navicat 连接外部 mysql
【编写日期:2020-01-23】
我们需要找到文件host:[文件位置:C:\Windows\System32\drivers\etc]
看看你有没有对虚拟机进行IP地址映射
如果有如图:

你就可以直接在主机名那一行写 映射对应的主机名,否则就老老实实写IP地址吧

【编写完毕】
7、虚拟机安装Eclipse +集成包配置
学习资源来源于 林子雨 老师的平台
网页地址:http://dblab.xmu.edu.cn/blog/290-2/
8、安装 Flume
参考博客:https://blog.csdn.net/qq_39839745/article/details/85278066
二、命令篇
1、Linux 基本命令汇总(大数据用的上的)
【编写日期:2020-01-20】
//----------[目录操作]
(1)、CD命令
cd /usr/local/hadoop 移动到绝对路径为 "/usr/local/hadoop"的目录下
cd ./data 移动到相对路径为 "./data"的目录下(后面也可以是 data)
cd ./../data 先返回上一级(..),再进入返回到的这一级的 data 目录下
(2)、MKDIR命令
mkdir -p /hadoop/test 递归创建目录
(3)、RMDIR命令
rmdir /usr/local/hadoop 删除空白目录
//----------[文件操作]
(4)、TOUCH命令
touch /usr/local/hadoop 新建空白文件
(5)、CAT命令
cat /usr/local/hadoop 查看文件信息(输出到控制台)
(6)、RM命令
rm -r /usr/local 删除文件夹(同 rmdir )
rm /usr/local/test.txt 删除文件
rm -f /usr/local 强制删除
(7)、CP命令
cp /usr/local/test.txt data.txt 将[前面的路径所在文件]复制到[后面的路径所在文件]中去
(8)、MV命令
mv /usr/local/test.txt data.txt 将[前面的路径所在文件]移动到[后面的路径所在文件]中去
(9)、VI (VIM)命令
vi /usr/local/test.txt 使用VI程序编写文件
vim data.txt 使用VIM程序编写文件
(VI使用方法,不过多赘述)
//----------[压缩操作]
(10)、TAR命令
tar -zcvf /usr/local/test/* deal/new.gz 将上述所有文件打包成 gz 格式的文件
tar -xvf new.gz -C /home/Downloads 将上述文件解压到指定位置
//----------[其他操作]
(11)、find 命令
find /etc -name "data.txt" 查找名称为 "data.txt"的文件
(12)、sudo 命令
sudo + 上述命令 使用 超级用户 进行操作
Linux基础操作命令
【编写完毕】
2、HDFS文件系统的使用汇总
参考博客:https://blog.csdn.net/majianxiong_lzu/article/details/89174176
3、Spark-shell命令
参考博客:https://blog.csdn.net/wawa8899/article/details/81016029
三、编程篇
1、HDFS的Java操作代码
【编写日期:2020-01-29】
本页代码仅提供参考...
能够对 HDFS 系统文件做操作的类的封装:
package com.hadoop.hdfs; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.List;
import java.util.Scanner; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils; //HDFS文件处理工具
public class HDFSFileDealer {
//设定集
protected Configuration conf = null;
//文件系统
protected FileSystem fs = null;
//获取路径
protected Path toPath(String fileName) {
return new Path(fileName);
}
public static String toRealPath(String file) {
return "../../"+file;
}
//在HDFS判断是否存在文件
public boolean exist(String fileName){
try {
return fs.exists(toPath(fileName));
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
return false;
}
//从HDFS读取文件输出到控制台
public void loadToWin() {
try {
FSDataInputStream fis = fs.open(new Path("/user/hadoop/hdfstest1.txt"));
//读取文件输出到控制台
IOUtils.copyBytes(fis, System.out, conf, true);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
//从HDFS读取文件,保存写入到本地
public void loadToFile(String local_file,String hdfs_file){
try {
FSDataInputStream fis = fs.open(new Path(hdfs_file));
OutputStream out = new FileOutputStream(new File(local_file));
//从HDFS读取文件,写入本地
IOUtils.copyBytes(fis, out, conf, true);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
//在HDFS创建一个多级目录
public void mkdir(String newdir){
try {
Path outputDir = toPath(newdir);
if(!fs.exists(outputDir)){//判断如果不存在就删除
fs.mkdirs(toPath(newdir));
}else {
System.out.println("文件路径已经存在!");
}
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
//删除HDFS文件
public void delete(String fileName){
try {
if(fs.exists(toPath(fileName)))//判断如果不存在就删除
{
fs.delete(toPath(fileName),true);
} else {
System.out.println("文件路径不存在!");
}
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
//文件上传
public void updata(String local_file,String hdfs_file){
updata(local_file,hdfs_file,false);
}
public void updata(String local_file,String hdfs_file,boolean hasDeleted){
Path srcPath = new Path(local_file); //本地上传文件路径
Path dstPath = new Path(hdfs_file); //HDFS目标路径
//调用文件系统的文件复制函数,前面参数是指是否删除原文件,true为删除,默认为false
try {
fs.copyFromLocalFile(hasDeleted, srcPath, dstPath);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败,未完成上传!");
System.out.println("在updata里");
}
}
//从本地上传多个文件到HDFS
public void updata(List <String> li_str,String hdfs_file) {
try {
if(li_str==null||li_str.size()==0)
throw new IOException();
int length = li_str.size();
Path[] paths = new Path[length];
Path dstPath = new Path(hdfs_file); //HDFS目标路径
for(int i=0;i<length;++i)
{
paths[i] = toPath(li_str.get(i));
}
//调用文件系统的文件复制函数,前面参数是指是否删除原文件,true为删除,默认为false
fs.copyFromLocalFile(false, true, paths, dstPath);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
public void updata(String []li_str,String hdfs_file) {
try {
if(li_str==null||li_str.length==0)
throw new IOException(); int length = li_str.length;
Path[] paths = new Path[length];
Path dstPath = new Path(hdfs_file); //HDFS目标路径
for(int i=0;i<length;++i)
{
paths[i] = toPath(li_str[i]);
}
//调用文件系统的文件复制函数,前面参数是指是否删除原文件,true为删除,默认为false
fs.copyFromLocalFile(false, true, paths, dstPath);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败!");
}
}
//HDFS文件下载
public void download(String local_file,String hdfs_file) {
download(local_file,hdfs_file,false);
}
public void download(String local_file,String hdfs_file,boolean hasDeleted){
Path dstPath = toPath(local_file);
Path srcPath = toPath(hdfs_file);
try {
fs.copyToLocalFile(hasDeleted, srcPath, dstPath);
} catch (IOException e) {
System.out.println("爷爷!文件加载失败,未完成下载!");
}
}
//类的释放
public void free() {
try {
if(fs!=null)
fs.close();
} catch (IOException e) {
System.out.println("GrandFather ! Your program have a IOException! ");
}
}
//在HDFS创建文件并写入内容
public void touchFileWith(String fileName){
try {
FSDataOutputStream fos = fs.create(toPath(fileName));
Scanner sc = new Scanner (System.in);
String str = "";
String sum_str = "";
boolean no_error = true;
while(no_error)
{
str = sc.nextLine();
if(str.compareTo("#END#")==0)
{
fos.write(sum_str.getBytes());
break;
}
else if(sum_str.compareTo("")!=0)
{
sum_str = sum_str + "\n";
}
sum_str = sum_str + str;
}
sc.close();
} catch (Exception e) {
System.out.println("GrandFather ! Your program have a IOException! ");
}
}
//构造方法
public HDFSFileDealer(){
super();
conf = new Configuration();
conf.set("fs.defaultFS","hdfs://localhost:9000");
try {
fs = FileSystem.get(conf);
} catch (IOException e) {
System.out.println("GrandFather ! Your program have a IOException! ");
}
}
//主方法
@SuppressWarnings("unused")
public static void main(String args[]) {
int old = 0;
HDFSFileDealer hfd = new HDFSFileDealer(); String local_file = "test/buyer_favorite1";
String hdfs_file = "../../mymapreduce1/in/buyer_favorite1"; //hfd.download(local_file, hdfs_file);
//hfd.updata(local_file, hdfs_file);
//hfd.touchFileWith(hdfs_file);
hfd.updata("test/result.txt", "HiveProject/in/result.txt");
//hfd.updata("test/order_items1", "mymapreduce5/in/order_items1");
//hfd.download("test/downloads","mymapreduce1/in/buyer_favorite1"); hfd.free();
}
}
HDFSFileDealer
使用的时候,注意传递 HDFS 的根目录不是 你要输入的根目录,这个要根据你自己设定的默认目录来。
【编写完毕】
2、Scala编程汇总
这个我给大家推荐 菜鸟教程 去学习。
3、RDD编程
大家可以参考博客:https://blog.csdn.net/tsy_1222/article/details/96355531
四、数据调试篇(参数调优方略)
数据调试其实就是使用我们的测试数据进行模拟真实数据做测试,我们可以人为的选定一些特殊形式的数据来检查我们的代码健壮性。
Spark实验汇总(七个实验相结合)的更多相关文章
- 201771010126 王燕《面向对象程序设计(Java)》第七周实验总结
实验七 继承附加实验 实验时间 2018-10-11 1.实验目的与要求 (1)进一步理解4个成员访问权限修饰符的用途: private--私有域或私有方法:只能在定义它的类中使用 public--公 ...
- 20135302魏静静——linux课程第七周实验及总结
linux课程第七周实验及总结 实验及学习总结 1. 编译链接的过程和ELF可执行文件格式(以hello为例) GNU编译系统编译源码: 首先,运行C预处理器(cpp),将.c文件翻译成.i文件——g ...
- 20165337第七周实验报告《Java面向对象程序设计》
实验报告封面 实验内容及步骤 实验一.实现百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能 代码 public class MyUtil{ public static S ...
- 201871010126 王亚涛 《面向对象程序设计(Java)》第七周实验总结
---恢复内容开始--- 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com ...
- 第九周总结&实验报告七
小结:这周请了一天的假,所以回来的时候有些知识点跟不上,不过在第二节课学到了关于IO的知识很重要,对于这次的实验也有些吃力,这周的知识点主要集中在书上,在各种不同条件下学习运用什么样的代码. 一. ...
- 201771010123汪慧和《面向对象程序设计JAVA》第七周实验总结
一.理论部分 1.继承 如果两个类存在继承关系,则子类会自动继承父类的方法和变量,在子类中可以调用父类的方法和变量,如果想要在子类里面做一系列事情,应该放在父类无参构造器里面,在java中,只允许单继 ...
- 20175212童皓桢 Java实验二-面向对象程序设计实验报告
20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...
- 20165230 《Java程序设计》实验四 Android程序设计实验报告
20165230 <Java程序设计>实验四 Android程序设计实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: 指导 ...
- 实验四 Android程序设计 实验报告 20162305李昱兴
实验四 Android程序设计 实验报告 20162305李昱兴 一.Android Studio的安装测试 1.有关该软件 Android Studio,是基于Itellij IDEA的一款流行的I ...
随机推荐
- Mysql架构、复制类型、复制功能介绍
1.1 常见的几种主从架构 一主一从 一主多从 多主一从 双主互备 1.2 主从复制功能 1)实时灾备 2)读写分离 3)高可用 4)从库数据统计 5)从库数据备份 6)平滑升级 1.3 三种复制方式 ...
- excel表格 筛选 通过mysql语句
1.整理excel表格的数据 类似的 前面有其他符号的 都可以处理. 注意下一步是2个操纵:分别设置左右: 结果: 2.在复制粘贴到excel的时候,会有一些数字被设置成了科学计数法, 例如复制到ex ...
- 【兆易创新RISC-V开发板评测】01.干货分享
背景介绍:2019年12月19日在面板包偶然发可以免费申请测评GD32VF103开发板,欣喜万分:在这之前各大技术论坛说是已经有国产兆易创新的RISCV指令集的MCU发布的事情,一时间摩拳擦掌想购入一 ...
- python 编程的 Style Guide
Python 的作者既优雅又高冷又 鬼毛的 再 PEP8 里规定了 Python 程序编写规范.(风格和格式) 一.基本观念 1.可读性之上,代码被读的次数肯定比被写的次数多.因此作者十分重视代码的可 ...
- cf--TV Subscriptions (Hard Version)
time limit per test:2 seconds memory limit per test:256 megabytes input:standard input output:standa ...
- ES5-Object扩展方法
1.Object新增一个方法,Object.create();,用来以一个对象为基础创建另一个对象,新建的对象的__proto__指向基础对象 var obj = {name:'maycpou',a ...
- Attributes for Slot
关于AP Config中的一些参数的意义: Radio Type................................... RADIO_TYPE_80211ac-5 Radio Subba ...
- [蓝桥杯2017初赛]Excel地址
题目描述 Excel单元格的地址表示很有趣,它使用字母来表示列号. 比如,A表示第1列,B表示第2列,Z表示第26列,AA表示第27列,AB表示第28列,BA表示第53列,.... 当然Excel的最 ...
- WPS/office使用技巧系列
一 WPS中如果要对比2个文档,不想以标签形式打开而是以多窗口形式,该怎么操作? 点击WPS左上角的蓝色或绿色框-->选项->->视图->勾选在任务栏中显示所有窗口,恢复书签模 ...
- Atcoder Grand Contest 039B(思维,BFS)
#define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;int col[207],s[207],n;c ...