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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 快速学习 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 进行相应的操作。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL Linux
centos7.0环境下安装MySql_8.0.12
centos7.0环境下安装MySql_8.0.12
|
4月前
|
存储 关系型数据库 MySQL
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
Linux C/C++ 开发(学习笔记八):Mysql数据库图片存储
53 0
|
4月前
|
关系型数据库 MySQL 数据库
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
Linux C/C++ 开发(学习笔记七):Mysql数据库C/C++编程实现 插入/读取/删除
54 0
|
3月前
|
关系型数据库 MySQL Linux
CentOS7环境下安装MySQL5.6
CentOS7环境下安装MySQL5.6
209 0
|
1月前
|
关系型数据库 MySQL Linux
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
Centos7 yum安装lAMP 环境 php版本5.6.38 mysql版本5.7.22
28 0
|
2月前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
251 0
|
2月前
|
负载均衡 关系型数据库 MySQL
MySQL Router读写节点支持负载均衡策略
`routing_strategy`是MySQL Router配置选项,用于设定数据路由策略。可选值包括:`first-available`, `next-available`, `round-robin`和`round-robin-with-fallback`,分别对应不同的负载均衡和故障转移策略。更多详情参考:<https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-conf-options.html#option_mysqlrouter_routing_strategy>。
18 1
|
3月前
|
关系型数据库 MySQL
MySQL学习笔记
MySQL学习笔记
|
3月前
|
关系型数据库 MySQL Linux
Linux环境下定时备份mysql数据库
Linux环境下定时备份mysql数据库
|
3月前
|
安全 关系型数据库 MySQL
某教程学习笔记(一):09、MYSQL数据库漏洞
某教程学习笔记(一):09、MYSQL数据库漏洞
20 0