云计算技术 综合实验

这篇具有很好参考价值的文章主要介绍了云计算技术 综合实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考资料为:

教材代码-林子雨编著《大数据基础编程、实验和案例教程(第2版)》教材所有章节代码_厦大数据库实验室博客

1.实验学时

8学时

2.实验目的

  • 熟悉linux,Mysql,Hadoop,Hbase,Hive,R,eclipse等系统的安装和配置,
  • 了解大数据处理的基本流程。
  • 熟悉不同类型的数据库的导入到处。
  • 熟悉R语言的可视化分析。

3.实验内容

(一)完成基础大数据组件的安装。

由于之前实验完成了对应组件的安装,这里就放出截图:

云计算技术 综合实验

Hbase:

云计算技术 综合实验

Hadoop:

云计算技术 综合实验

Hive:

云计算技术 综合实验

Ecplise:

云计算技术 综合实验

(二)对原始数据进行预处理。

首先得到这些数据集,这里已经提前将数据集下载到对应的linux包中:

云计算技术 综合实验

然后将这个压缩文件进行压缩:

在进行实验之前,首先为这个数据集创建一个文件夹。

云计算技术 综合实验

然后给这个新建的文件夹赋予权限:

云计算技术 综合实验

之后创建一个新的文件夹用于收集这些数据集:

云计算技术 综合实验

之后进行移进数据集的文件夹下将数据集进行压解:

云计算技术 综合实验

之后进入对应文件夹下查看压缩的情况;

云计算技术 综合实验

这里进行一个测试,在这个文件中去前5个记录,输出如下图:

云计算技术 综合实验

然后可以开始数据的预处理了:

由于raw_user和文件small_user中的第一行是字段的名字,在将文件中的数据传入hive的时候,是不需要这些字段的名字的,这个时候就需要进行删除操作。需要删除第一行。

云计算技术 综合实验

之后使用命令查看前5行的时候就没有出现字段的名字:

云计算技术 综合实验

之后对字段进行预处理:

首先在对应的目录下新建一个vim脚本文件用于编写代码:

#!/bin/bash
#下面设置输入文件,把用户执行pre_deal.sh命令时提供的第一个参数作为输入文件名称
infile=$1
#下面设置输出文件,把用户执行pre_deal.sh命令时提供的第二个参数作为输出文件名称
outfile=$2
#注意,最后的$infile> $outfile必须跟在}’这两个字符的后面
awk -F "," 'BEGIN{
srand();
        id=0;
        Province[0]="山东";Province[1]="山西";Province[2]="河南";Province[3]="河北";Province[4]="陕西";Province[5]="内蒙古";Province[6]="上海市";
        Province[7]="北京市";Province[8]="重庆市";Province[9]="天津市";Province[10]="福建";Province[11]="广东";Province[12]="广西";Province[13]="云南"; 
        Province[14]="浙江";Province[15]="贵州";Province[16]="新疆";Province[17]="西藏";Province[18]="江西";Province[19]="湖南";Province[20]="湖北";
        Province[21]="黑龙江";Province[22]="吉林";Province[23]="辽宁"; Province[24]="江苏";Province[25]="甘肃";Province[26]="青海";Province[27]="四川";
        Province[28]="安徽"; Province[29]="宁夏";Province[30]="海南";Province[31]="香港";Province[32]="澳门";Province[33]="台湾";
    }
    {
        id=id+1;
        value=int(rand()*34);       
        print id"\t"$1"\t"$2"\t"$3"\t"$5"\t"substr($6,1,10)"\t"Province[value]
    }' $infile> $outfile

云计算技术 综合实验

之后之心这个脚本文件,进行数据的预处理,这次的预处理是对于small_user.sh文件进行的。

云计算技术 综合实验

可以执行指令查看结果,不过由于数据量过大,所以只要查看前面10条数据。

云计算技术 综合实验

(三)数据导入到Hive中,进行SQL分析。

之后就是将数据导入到对应的数据库中:

首先启动HDFS,启动之前首先需要启动hadoop

启动hadoop之后使用进程查看命令查看对应进程:

云计算技术 综合实验

之后就将前面生成的txt文件传入到HDFS中,并且保存到对应的目录之下。当然,首先新建一个新的目录,在这个目录之下新建一个目录。

云计算技术 综合实验

之后将linux系统中的文件(之前得到的txt文件传入大=到对应的HDFS目录之中)

云计算技术 综合实验

之后可以在HDFS中查看对应的前面10条数据:

云计算技术 综合实验

之后就是在Hive上创建数据库:

首先需要启动MySql数据库:

云计算技术 综合实验

启动hadoop之后,就需要启动hive

云计算技术 综合实验

启动hive之后就可以先创建一个数据库:

云计算技术 综合实验

创建完成之后,需要创建一个新的外部表。

云计算技术 综合实验

创建完成上面两个之后,就可以进行查询数据的操作:

云计算技术 综合实验

显示bigdata_user表中的信息:

云计算技术 综合实验

云计算技术 综合实验

之后可以执行简单命令查看表的简单结构:

云计算技术 综合实验

进行简单操作之后,可以使用命令进行数据的简单查询:

比如说查看外部表的前面10个数据:

云计算技术 综合实验

查看表中的某一个数据(这里是用户对于商品的行为)

云计算技术 综合实验

之后可以使用hive进行数据的分析:

比如说查询前面20位用户的商品的购买时间和其他数据:

云计算技术 综合实验

当然也可以对输出额数据进行简化输出:

云计算技术 综合实验

然后是进行记录的条数分析查询,在这里是用于查询这个外部表拥有多少行:

云计算技术 综合实验

从输出结果来看,这个外部表的对应行数是300000行,这是一个巨大的外部表。

当然,这只是没有进行消除重复行的查询,这里需要进行不重复行的数据查询。

这里可以在对应查询指令中加上distinct指令进行查询。

这里首先对uid不重复行进行查询:

云计算技术 综合实验

查询的结果是270行。

之后是查询数据不重复行有多少:

云计算技术 综合实验

经过查询之后,得到结果是284464.

之后是进行关键词查询,进行关键词查询可以提高数据库的查询精度。

这里的查询式使用where关键字进行查询,这里是用于查询2014年12月10号13号有多少人浏览了商品。

云计算技术 综合实验

经过查询之后发现一共有26329个人进行了查询。

然后可以查询以月第n天为统计单位,显示第n天网站卖出去的商品的全部个数。

云计算技术 综合实验

这样就可以清晰的表示卖出的商品的个数。

之后是使用关键字给固定值进行对其他数据的查询:

查询之后可以得到卖出的地方。

云计算技术 综合实验

这里一共有11件商品卖出。

然后是根据用户行为分析。

这里可以查询一件商品在某一天的购买或者浏览比例。

云计算技术 综合实验

用户在2014年12月11号购买的商品的数量一共是69个。

然后查询在这一天点击这个商品的人数一共有多少人:

云计算技术 综合实验

这里发现一共有10649的人点击了这个商品。

之后将将这两个进行相除就可以得到想要的数据。

之后是查询某个用户点击网站的行为比例:

首先是用户查询这个网站的次数:

云计算技术 综合实验

这个点击次数是69次。

之后是所用用户这一天点击这个网站的次数:

云计算技术 综合实验

这个次数是17494.

然后是给定用户购买商品的数量范围,查询在这个网站购买这个数量商品的用户个数:

云计算技术 综合实验

现在实现用户实时查询分析:

查询某个地区用户当天浏览网站的次数,创建新的数据表格进行存储:

云计算技术 综合实验

导入数据,显示结果:

云计算技术 综合实验

显示结果:

云计算技术 综合实验

(四)使用JavaAPI将数据从hive导入到Mysql。

首先创建一个临时表格:

云计算技术 综合实验

执行完上面的命令之后,hive就会在HDFS中创建对应的数据文件。之后需要确定HDFS中有这个文件。

云计算技术 综合实验

输出了结果,表示这些文件已经在HDFS中进行了创建。

可以登入hdfs上查看:

云计算技术 综合实验

然后需要将bigdata_user表中的数据插入到user_action中

由于在之前已经创建了一个外部表,这个时候就需要将dblab.bigdata_user中的数据插入dblab.user_action表中。

云计算技术 综合实验

之后执行下面的指令查询上面的指令查看是否已经插入完成。

云计算技术 综合实验

云计算技术 综合实验

出现执行结果,发现插入成功。

然后就是使用java API将数据从Hive导入MySQL中。

首先登录MySQL:

云计算技术 综合实验

登录之后需要在mysql中创建一个数据库:

云计算技术 综合实验

创建一个dblab数据库。

之后查看数据库的编码:

云计算技术 综合实验

这里由于之前已经修改过,可以输入中文。

之后创建一个新表:

云计算技术 综合实验

创建成功之后就可以退出mysql数据库了。

由于需要实现数据的迁移,需要同JDBC连接两个数据库,需要修改hadoop中的配置文件,需要在配置文件中加入这些代码:

<property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
</property>
<property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
</property>

云计算技术 综合实验

之后需要开启hadoop,但是之前已经开起了hadoop,这个时候需要在对应的路径下开启hiveserver2,并且设置端口为10000.

云计算技术 综合实验

之后设置完成之后会显示几个hive的ID,然后hive才会真正的启动。

云计算技术 综合实验

之后启动eclipse进行程序的编写:

import java.sql.*;
import java.sql.SQLException;
 
public class HivetoMySQL {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String driverName_mysql = "com.mysql.jdbc.Driver";
    public static void main(String[] args) throws SQLException {
        try {
            Class.forName(driverName);
        }catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            System.exit(1);
        }
        Connection con1 = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "hive");//后两个参数是用户名密码
 
        if(con1 == null)
            System.out.println("连接失败");
        else {
            Statement stmt = con1.createStatement();
            String sql = "select * from dblab.user_action";
            System.out.println("Running: " + sql);
            ResultSet res = stmt.executeQuery(sql);
 
            //InsertToMysql
            try {
                Class.forName(driverName_mysql);
                Connection con2 = DriverManager.getConnection("jdbc:mysql://localhost:3306/dblab","root","root");
                String sql2 = "insert into user_action(id,uid,item_id,behavior_type,item_category,visit_date,province) values (?,?,?,?,?,?,?)";
                PreparedStatement ps = con2.prepareStatement(sql2);
                while (res.next()) {
                    ps.setString(1,res.getString(1));
                    ps.setString(2,res.getString(2));
                    ps.setString(3,res.getString(3));
                    ps.setString(4,res.getString(4));
                    ps.setString(5,res.getString(5));
                    ps.setDate(6,res.getDate(6));
                    ps.setString(7,res.getString(7));
                    ps.executeUpdate();
                }
                ps.close();
                con2.close();
                res.close();
                stmt.close();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
        con1.close();
    }
}

云计算技术 综合实验

 云计算技术 综合实验

然后在mysql数据库中输入命令查看是否运行成功:

云计算技术 综合实验

云计算技术 综合实验

这里进行数据导入的时候十分不建议使用书上的方法。需要下载软件sqoop 1.4.7进行导入,具体查看大数据综合实验的踩坑总结(林子雨)_lendsomething的博客-CSDN博客_大数据林子雨实验和

https://blog.csdn.net/lendsomething/article/details/106804146?spm=1001.2014.3001.5506

在mysql数据库中得到导入结果:

云计算技术 综合实验

云计算技术 综合实验

(五)使用JavaAPI将本地数据导入到HBase中。

之后是hbase进行导入,跟之前的方法十分的像。

首先将数据导入本地文件。然后查看前面十行数据。

云计算技术 综合实验

之后将这个文件复制一份进行重命名:

云计算技术 综合实验

之后编写java程序进行数据的导入。可以参考第六章

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.List; 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes; 
public class ImportHBase extends Thread {
    public Configuration config;
    public Connection conn;
    public Table table;
    public Admin admin;
    public ImportHBase() {
        config = HBaseConfiguration.create();
//      config.set("hbase.master", "master:60000");
//      config.set("hbase.zookeeper.quorum", "master");
        try {
            conn = ConnectionFactory.createConnection(config);
            admin = conn.getAdmin();
            table = conn.getTable(TableName.valueOf("user_action"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    } 
    public static void main(String[] args) throws Exception {
        if (args.length == 0) {       //第一个参数是该jar所使用的类,第二个参数是数据集所存放的路径
            throw new Exception("You must set input path!");
        }
        String fileName = args[args.length-1];  //输入的文件路径是最后一个参数
        ImportHBase test = new ImportHBase();
        test.importLocalFileToHBase(fileName);
    }
    public void importLocalFileToHBase(String fileName) {
        long st = System.currentTimeMillis();
        BufferedReader br = null;
        try {
            br = new BufferedReader(new InputStreamReader(new FileInputStream(
                    fileName)));
            String line = null;
            int count = 0;
            while ((line = br.readLine()) != null) {
                count++;
                put(line);
                if (count % 10000 == 0)
                    System.out.println(count);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally { 
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
                table.close(); // must close the client
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        long en2 = System.currentTimeMillis();
        System.out.println("Total Time: " + (en2 - st) + " ms");
    }
    @SuppressWarnings("deprecation")
    public void put(String line) throws IOException {
        String[] arr = line.split("\t", -1);
        String[] column = {"id","uid","item_id","behavior_type","item_category","date","province"};
 
        if (arr.length == 7) {
            Put put = new Put(Bytes.toBytes(arr[0]));// rowkey
            for(int i=1;i<arr.length;i++){
                put.addColumn(Bytes.toBytes("f1"), Bytes.toBytes(column[i]),Bytes.toBytes(arr[i]));
            }
            table.put(put); // put to server
        }
    }
    public void get(String rowkey, String columnFamily, String column,
            int versions) throws IOException {
        long st = System.currentTimeMillis();
        Get get = new Get(Bytes.toBytes(rowkey));
        get.addColumn(Bytes.toBytes(columnFamily), Bytes.toBytes(column));
        Scan scanner = new Scan(get);
        scanner.readVersions(versions);
        ResultScanner rsScanner = table.getScanner(scanner);
        for (Result result : rsScanner) {
            final List<Cell> list = result.listCells();
            for (final Cell kv : list) {
                System.out.println(Bytes.toStringBinary(kv.getValueArray()) + "\t"
                        + kv.getTimestamp()); // mid + time
            }
        }
        rsScanner.close();
        long en2 = System.currentTimeMillis();
        System.out.println("Total Time: " + (en2 - st) + " ms");
    }
}

云计算技术 综合实验

云计算技术 综合实验

然后进行数据导入,导入之前先进行数据的清理。

云计算技术 综合实验

不过试了一下,书本上的方法无法使用程序进行导入,这里还是使用sqoop进行导入。

云计算技术 综合实验

这里报错说明没有输入的路径,检查重启之后发现问题解决,但是还是出现下面错误:

云计算技术 综合实验

这里说什么这个输出路径文件已经存在,不知道这是报什么错。于是在网上查资料

在HDFS上进行修改之后,重新启动HBase和Hadoop之后,运行查看之后发现正常。

之后就可以等待一会。

云计算技术 综合实验

云计算技术 综合实验

等到传输成功之后,打开hbase输入查找命令,就可以得到前面10行的数据

云计算技术 综合实验

 云计算技术 综合实验

(六)使用R进行数据可视化分析。

首先安装R:

云计算技术 综合实验

进入后增加对应的网址节点:

云计算技术 综合实验

之后更新api文件:

输入密匙进行安装:

云计算技术 综合实验

安装好之后可以使用R来启动r语言:

云计算技术 综合实验

之后安装一些依赖库,这里安装RMySQL:

弹出窗口之后选择beijing作为下载节点。

但是出现了一些报错,云计算技术 综合实验

这是少了一些软件包的缘故,这个时候需要对应下载软件包:

云计算技术 综合实验

之后再次进行R语言状态:

安装成功:

云计算技术 综合实验

之后再下载一些软件包:

安装ggplot2的时候报错。查找网上方法不行,这个时候只能重新升级R语言。

这里将R语言升级到3.4.4之后就可以成功安装了。

参考http://dblab.xmu.edu.cn/blog/1130-2/

云计算技术 综合实验

但是后面安装又出现了问题,这个时候只能再次升级到3.6.3继续实验

发现后面的安装包都安装成功。如果没有安装成功,建议使用sudo apt-get autoremove r-base-core 将R语言删除,然后重装再次安装。

云计算技术 综合实验

之后进行可视化分析:

首先连接MySQL数据库获取数据:

云计算技术 综合实验

展开数据:

云计算技术 综合实验

然后使用R连接MySQL数据库:

云计算技术 综合实验

连接完成之后开始分析商品对消费者的行为:

计算数据库中的类型信息:

云计算技术 综合实验

但是这不好进行比较,于是需要进行类型转换:

云计算技术 综合实验

然后使用柱状图显示信息。

云计算技术 综合实验

之后分析排名前十的商品和他的销量:

首先读取信息,之后进行数据的排序,然后进行输出:

然后分析那个月的销量是最大的:

同样也是获取数据之后进行排序然后才输出最终结果

云计算技术 综合实验

之后是分析国内那个省份的消费欲望最强:

同样是之前的思路先进行统计,然后排序,给消费欲望最强的几个地方途深色

云计算技术 综合实验

之后会打开浏览器输出图像:

云计算技术 综合实验

4.思考题

(一)HBase,Mysql,Hive这些数据库的各自特点是什么?

Hive:

Hive是用于行存储。Hive本身不存储和计算数据,它完全依赖于HDFS,MapReduce,Hive中的表纯逻辑. 通过数据库的方式来操作HDFS文件系统,为了简化编程,底层计算方式为mapreduce。

Hive是建立在Hadoop之上,Hadoop可以为MySQL处理多个数据。

Hive中没有定义专门的数据格式,数据格式可以游用户指定,用户定义数据格式需要指定三个属性:列分隔符(通常为空格、“\t”、“\x001”)、行分隔符(“\n”)以及读取文件数据的方法(Hive中默认有三个文件格式TextFile,S额群策File以及RCFile)。由于在加载数据的过程中,不需要从用户数据格式到Hive定义的数据格式的转换,因此,Hive在加载的过程中不会对数据本身进行任何修改,而只是将数据内容复制或者移动到相应的HDFS目录中。而在数据库中,不同的数据库有不同的存储引擎,定义了自己的数据格式。所有数据都会按照一定的组织存储,因此,数据库加载数据的过程会比较耗时。

MySQL:

这个数据库属于关系型数据库,对于其中有表结构,表结构的数据量不大。

性能卓越服务稳定,很少出现异常宕机。开放源代码且无版权制约,自主性强、使用成本低。

历史悠久、社区及用户非常活跃,遇到问题,可以很快获取到帮助。软件体积小,安装使用简单,并且易于维护,安装及维护成本低。支持多种操作系统,提供多api几口,支持多种开发语言。

HBase:

HBase一个分布式的基于列式存储的数据库,基于 Hadoop 的 hdfs 存储, zookeeper 进行管理。

Hbase 适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。

Hbase 为 null 的记录不会被存储。

基于的表包含 rowkey,时间戳,和列族。新写入数据时,时间戳更新,同时可以查询到以前的版本。

hbase 是主从架构。hmaster 作为主节点,hregionserver 作为从节点。

5. 实验结论或体会

1.当使用时报错的时候,如果在网上没有找到解决办法,就进行卸载重装,然后升级版本看看能不能运行。

2.在最后使用R语言进行数据分析的时候,如果R语言没有成功安装软件包,建议卸载之后升级两次到3.6.3版本之后再次安装。

3.前面时候HBase进行数据导入的时候,会出现HBase无法使用的情况,这个时候建议卸载重装。

4.将Hive中的数据导入到MySQL数据库的时候,建议使用sqoop软件,使用书上的端口号进行导入的时候会报错,而且数据经常丢失。

5.关于HBase经常启动几秒钟之后HMaster就自动消失的情况,建议查看是否软件包的导入路径发生了错误,之后实在不行就重新卸载安装。文章来源地址https://www.toymoban.com/news/detail-498135.html

到了这里,关于云计算技术 综合实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 资料与参考

    资料: 本书(《Python神经网络编程》)的资料是使用Jupyter notebooks写的,本人并不擅长使用Jupyter,所以用传统py重写了一遍,并附加了新功能(即多数字识别),现将Jupyter版和py版连带本书pdf一并上传至gitee,地址:python-neuralNetwork-coding: 《Python神经网络编程》pdf和随书源码,

    2024年02月11日
    浏览(59)
  • Fast Planner——代码解读参考资料整理

    参数解读 主要函数解读 概率栅格地图,概率更新过程的公式推导过程 全概率公式、贝叶斯公式 一. kinodynamic a_star(前端hybrid A_star动力学路径搜索) 1.1启发函数的计算 1.2 Compute shot Traj 1.3 节点扩张 1.4 节点剪枝 1.5 返回kinopath与 getsamples 二、B样条曲线设置 2.1 均匀B样条设置

    2024年02月05日
    浏览(89)
  • [渝粤教育] 中国人民警察大学 工业企业防火 参考 资料

    教育 -工业企业防火-章节资料考试资料-中国人民警察大学【】 随堂测验 1、【判断题】工业企业的火灾特点是涉及行业种类繁多,涉及到社会生活的方方面面。 A、正确 B、错误 参考资料【 】 2、【判断题】工业企业的火灾特点是物资集中,存在各种形式的点火源,发生火灾

    2024年02月02日
    浏览(56)
  • 【Python NLTK】零基础也能轻松掌握的学习路线与参考资料

    Python 自然语言处理工具包(Natural Language Toolkit,简称 NLTK)是一款 Python 的库,主要用于处理自然语言的相关问题,如文本清洗、标记化、分词、语义分析、词性标注、文本分类等功能,是数据科学家和机器学习工程师不可或缺的工具之一。 本文将介绍学习 Python NLTK 的路线,

    2024年02月07日
    浏览(60)
  • 【Python psycopg2】零基础也能轻松掌握的学习路线与参考资料

    Python psycopg2是一个Python库,在Python中提供了一个连接PostgreSQL数据库的接口。它可以让Python应用程序和PostgreSQL数据库之间进行通信和数据传输。学习Python psycopg2的路线和教程可以在查阅资料和实践中快速入门。 一、学习前置知识 学习Python psycopg2需要一定的前置知识,如Pytho

    2024年02月05日
    浏览(47)
  • 【Python Cookie 和代理 IP】零基础也能轻松掌握的学习路线与参考资料

    一、Python Cookie 1、什么是Cookie? Cookie是一种在客户端保存数据的机制,服务器通过在HTTP响应头中添加Set-Cookie头实现。浏览器在接收到响应头中的Set-Cookie后,会将这个Cookie保存在本地。之后每次请求都会将本地保存的Cookie自动添加到请求头中,发送给服务器。 2、为什么需要

    2024年02月05日
    浏览(47)
  • 基于JAVA高校校园学习资料共享系统 设计与实现(springboot框架) 参考文献

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年01月19日
    浏览(46)
  • java工程师面试技巧和方法,这份Github标星50K,相关资料参考

    Dubbo 为什么要用 Dubbo? Dubbo 的整体架构设计有哪些分层? 默认使用的是什么通信框架,还有别的选择吗? 服务调用是阻塞的吗? 一般使用什么注册中心?还有别的选择吗? 默认使用什么序列化框架,你知道的还有哪些? 服务提供者能实现失效提出是什么原理? 服务上线怎么

    2024年04月16日
    浏览(53)
  • 基于python影视电影点评系统设计与实现:开题报告、成品参考、毕设辅导资料

     博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月05日
    浏览(50)
  • 【Python SMTP/POP3/IMAP】零基础也能轻松掌握的学习路线与参考资料

    Python是一种高级编程语言,广泛应用于Web开发、人工智能、数据科学、自动化等领域。SMTP/POP3/IMAP是与邮件相关的三个协议,分别用于发送邮件、接收邮件和访问邮件。使用Python可以轻松实现这些功能,本文将介绍Python SMTP/POP3/IMAP的学习路线,并给出参考资料和优秀实践。 一

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包