日期: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

  四、数据调试篇(参数调优方略)

    数据调试其实就是使用我们的测试数据进行模拟真实数据做测试,我们可以人为的选定一些特殊形式的数据来检查我们的代码健壮性。

最新文章

  1. [LeetCode] Word Search II 词语搜索之二
  2. Redis 慢速入门(一)
  3. Lesson 1 A private conversation
  4. oracle正则表达式的用法
  5. 统计第一个空字符前面的字符长度(java实现)
  6. JDBC学习笔记1
  7. 解决SQL命令行回退的问题
  8. FileZilla无法确定拖放操作的目标,由于shell未正确安装
  9. 方便john破解linux密码批处理
  10. HTTP response codes
  11. STL中vector,Map,Set的实现原理
  12. ABP入门教程
  13. 线程协作方法sleep、yield、wait、join
  14. jsp,jquery,spring mvc 实现导出文件
  15. 201521123056 《Java程序设计》第11周学习总结
  16. Django发HTML邮件
  17. H3C_IRF
  18. ES6基本使用
  19. shell 关于字符切割 cut
  20. 建立一个漂亮的PHP验证码类文件及调用方式

热门文章

  1. plutosdr初步
  2. @media screen 自适应笔记
  3. RemoteView设置高度
  4. PHP POST请求 字符串和数组传值的区别
  5. Git 安装配置及工作流程
  6. WechatPro_页面创建
  7. ZOJ4104 Sequence in the Pocket(2019浙江省赛)
  8. javascript 原型继承 与class extends 继承对比
  9. query_phase_execution_exception
  10. 【SSM】日志框架 logback