SparkSQL 读写_JDBC_MySQL 环境准备 | 学习笔记

简介: 快速学习 SparkSQL 读写_JDBC_MySQL 环境准备

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段SparkSQL 读写_JDBC_MySQL 环境准备】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12064


SparkSQL 读写_JDBC_MySQL 环境准备

 

内容介绍:

一、JDBC

二、MySQL 环境的配置

 

在之前的课程中,我们已经学习过许多 SparkSQL 读取的格式,包括 Parquet、分区、JSON、Hive,今天学习最后一种格式 JDBC,主要学习如何使用 SparkSQL 读写 JDBC 中的 MySQL 环境准备。

 

一、JDBC

JDBC 是一个通用的协议,用于让 Java 可以访问多种关系型数据库的概念,所以在 JDBC 这一环节当中,我们以 MySQL 作为基准。MySQL 是我们现阶段最常见的关系型数据库。

 

二、MySQL 环境的配置

我们常会面临要去创建用户,创建表,甚至创建库等操作。环境配置环节的整个步骤包括:连接 MySQL、创建库、创建表、创建用户。当然,先创建用户也可以,但是按照这样的步骤进行配置相对安全性更高。因为我们最终要为用户进行赋权,而在赋权时,要先有数据库才可以。

1、原始代码:

以下为先创建用户配置 MySQL 环境的过程,值得注意的是选择先创建用户的配置方法,GRANT ALL 赋权的指令应在创建完数据库之后执行。

(1)连接 MySQL 数据库

在 MySQL 所在的主机上执行如下命令

mysql -u root -p

(2)创建 Spark 使用的用户登进 MySQL 后,需要先创建用户

CREATE USER 'spark' @ '% ' IDENTIFIED BY 'Spark123!';

GRANT ALL ON spark_test.* TO 'spark' @ '%';

(3)创建库和表

CREATE DATABASE spark_test;

USE spark_test;

CREATE TABLE IF NOT EXISTS 'student'(

'id' INT AUTO INCREMENT.

'name' VARCHAR(100) NOT NULL,

'age'  INT NOT NULL,

'gpa'  FLOAT,

PRIMARY KEY ('id')

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、实操

进入代码编辑窗口,进行如下操作:

(1)连接 MySQL

只有连接到 MySQL,才能执行 sql 语句。输入如下命令:

mysql -u root -p

//指定用户和密码

回车之后输入 root 用户的密码。输入密码之后就进入了 MySQL 的窗口,在该窗口当中,下一步是建立数据库。

(2)创建库

创建 Spark 使用的用户登进 MySQL 后,需要先创建用户。

create database spark02;

//创建数据库 spark02

use  spark02;

//使用数据库 spark02

(3)创建表

create table if not exists 'student'{

//在 MySQL 支持若不存在表时创建表 student

//左侧单引号往往是标注其中是一个字符串,无需进行优化和改编

//指定表的结构

->  'id'INT AUTO_INCRIMENT

//往往会先指定 ID 列,因为 MySQL 的表与 Hive 的表是不同

的,MySQL 的表是有索引的,在一般情况下,如果使用 InnoDB

引擎,即默认为索引文件,存表的文件按照 id 来进行索引的文

件。因此,要创建 id 方可,要有主键。

//“AUTO_INCRIMENT”自增主键

->  'name'VARCHAR(100)not null

//创建 name 列,其文件类型是 VARCHAR,这里与 Hive 有一

定区别,后者的文件类型多为 string、int 等等。

//not null 表明 name 列不为空。

->'age'INT not null,

-> 'gpa' FLOAT not null,

->  primary key ('id')

//此时,表已大致创建完成

->  >engine = InnoDB default CHARSET=utf8;

//指定一个 engine 为 InnoDB,指定默认的数据集 default

CHARSET utf8。

回车显示 Query OK,说明表创建成功。

输入 show tables,输出结果如下:

image.png

再输入 desc student,输出结果如下:

image.png

类型无误,有一个名为 auto_increment 的 primary key。

外部应使用 spark 来访问该表,则应为 spark 创建用户,而非所

有的外部访问都使用 root 用户来访问,安全性太低。

(4)创建用户

create user  'spark03' @ '% '  identified by 'Spark03!';

// @ '% '表示可以在任意位置访问(本地或外部)

//指定密码时既有大写又有小写,还有数字和符号,安全级别高

//以上完成了用户的创建,但是目前用户无法访问当前的 spark02 的数据库

grant all on  spark02.* tO 'spar k03' @ '%';

//grant all 表示将某表某文件所有权限都赋予该用户。因此通过该操作可以将数据库 spark02 下的所有文件赋权给用户 spark03

//@ '%'表示在任何位置都可访问

运行代码,运行结果无误。

就此整体上准备好了 MySQL 的环境,接下来就可以使用 SparkSQL 进行相应的操作。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
7月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
487 11
|
11月前
|
存储 关系型数据库 MySQL
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
735 81
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
359 6
|
8月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
399 28
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
408 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
243 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
749 3
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
374 3
|
关系型数据库 MySQL Docker
docker环境下mysql镜像启动后权限更改问题的解决
在Docker环境下运行MySQL容器时,权限问题是一个常见的困扰。通过正确设置目录和文件的权限,可以确保MySQL容器顺利启动并正常运行。本文提供了多种解决方案,包括在主机上设置正确的权限、使用Dockerfile和Docker Compose进行配置、在容器启动后手动更改权限以及使用 `init`脚本自动更改权限。根据实际情况选择合适的方法,可以有效解决MySQL容器启动后的权限问题。希望本文对您在Docker环境下运行MySQL容器有所帮助。
2153 1
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo

推荐镜像

更多