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 ...
随机推荐
- cordova将vue项目打包成apk
1,若vue项目不在cordova项目里,直接把它复制进来,避免改动代码的麻烦 2,直接按照以下链接进行操作即可 链接:https://www.cnblogs.com/qirui/p/8421372. ...
- FULL OUTER JOIN
FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行. SELECT Web.name, access.count, access.dat ...
- 浅谈hover用法
在前端页面制作中,我们时常要用到移动显示.隐藏的动态效果,我们一般采用js来实现此效果.不过在大部分情况下,我们也可以使用hover来实现此动态效果. 在此,我谈一谈我对hover的用法,请看以下代码 ...
- Python(四)生成器 和 杨辉三角
学习链接: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143177992 ...
- 如何在CentOS 7上安装Apache
使用systemctl管理Apache服务 我们可以像任何其他系统单元一样管理Apache服务. 要停止Apache服务,请运行: sudo systemctl stop httpd 要再次启动,请键 ...
- Java面向对象private
1. 类 package cn.itcast.day06.demo03; /* 对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变. */ publ ...
- 基于SILVACO ATLAS的a-IGZO薄膜晶体管二维器件仿真(05)
关于特性曲线的输出调整: 初代版本 material material=igzo eg300=3.5 nc300=8.5e21 nv300=8.5e21 taun0=1e-9 taup0=1e-9 a ...
- CSS实现心形、六角星、六边形、平行四边形等几何
本文将利用border属性实现简单几何的绘制: 效果图: 正八角星 说明:采用两个正方形以中心进行旋转叠加: /* 八角星 */ #burst-8 { background: #6376ff1f; w ...
- VS2017中使用C++语言编写delay函数实现延迟
秒级别的延时 //定义函数 void delay(int sec){ time_t start_time, cur_time; // 变量声明 time(&start_time); do { ...
- JDBC 获取自动生成的主键
为什么需要获取自动生成的主键 例如: