备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

发布时间:2023年12月17日

或者在my.ini文件中,[mysqld]节点下,添加skip-grant-tables后,再启动!任务书

软件名称

版本

ubuntu

18.04 ???64 位

Hadoop:hadoop-3.1.3.tar.gz

3.1.3

Jdk:jdk-8u212-linux-x64.tar.gz

1.8

Spark:spark-3.1.1-bin-hadoop3.2.tgz

3.1.1

Hive:apache-hive-3.1.2-bin.tar.gz

3.1.2

MySQL

5.7

Scala:scala-2.12.x.tgz

2.12

Vue.js

3.2

ECharts

5.1

JDBC驱动: ??mysql-connector-java-5.1.37.jar

集成开发工具:IDEA 2022 社区版

子任务一:(解压到的路径千万不要出现中文!!!小北第一次做到一半最后一步安装的时候才发现!!!浪费了很多时间!!!)

一、前言

MySQL5.7的下载安装与Navicat配置:

二、下载步骤

下载地址:MySQLicon-default.png?t=N7T8https://www.mysql.com/

温馨提示:

首页滑到最下面,选择Downloads下的MySQL Community server

点击查看下载历史版本

可手动选择历史版本

点击【No thanks,just start my download】不登录直接下载,等待一会有下载弹窗。如果有(Oracle账户选择直接登录,没有的话点击右侧注册一个)

点击【保存】就好,然后开始下载

zip格式是直接解压,解压缩之后其实MySQL就可以使用了,但是要进行环境变量配置zip格式是自己解压。

(解压到的路径千万不要出现中文!!!小北第一次做到一半最后一步安装的时候才发现!!!浪费了很多时间!!!)

(下载完毕后将文件解压到你想保存到的盘和目录内。我是将文件解压到D:\ProgramData\mysql-5.7.44-winx64目录下面)

以上就完成了下载的全部工作。

三、配置环境变量

1、右键此电脑->属性—>高级系统设置—>环境变量—>系统变量

点击系统变量中的path,编辑

点击新建,添加

(麻烦一点的话[不建议]——其实也可以一开始直接新建)

1、点击新建,变量名为:MYSQL_HOME添加你的mysql-5.7.27-winx64文件夹所在位置。我的是在D:\ProgramData\mysql-5.7.44-winx64

2、复制%MYSQL_HOME%\bin到原有值的后面

(不建议,很麻烦)

my.ini文件的内容为:如果安装目录不一样,记得修改MySQL的安装路径

环境配置结束后别直接退出,请记得一定要一个一个“确定”!!!
我的mysql bin文件夹的路径 :D:\ProgramData\mysql-5.7.44-winx64

2.配置存放数据库数据文件(配置my.ini文件)


配置完环境变量之后,在D:\ProgramData\mysql-5.7.44-winx64目录下配置文件mys.ini 中,修改安装路径,并添加存放数据的data文件夹路径。在bin的同级目录下切记不要手动创建data文件夹,第一次启动后会自动创建,手动创建会报错。

新建一个“.txt”文件,改后缀名为"my.ini",直接确定!!!


(不用的话可以直接跳过)用notepad注意修改其中的文件夹所在路径。

不要自己创建data!不要自己创建!不要自己创建!系统会自动创建,自己创建会报错。

上述图片中的配置文件内容,可从下方复制,记得修改安装目录

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\ProgramData\mysql-5.7.44-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
datadir=D:\ProgramData\mysql-5.7.44-winx64\data
# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
?修改内容如下:
# 设置mysql的安装目录
basedir=D:\ProgramData\mysql-5.7.44-winx64

# 设置mysql数据库的数据的存放目录
datadir=D:\ProgramData\mysql-5.7.44-winx64

完整安装过程如下,管理员权限运行cmd,运行命令:

完整的安装命令如下:

mysqld --initialize-insecure --user=mysql

mysqld install

net start mysql

mysql -u root -p

mysqladmin -u root -p password root
熟悉复习下mysql的相关命令:

1、初始化data目录
? ? ? ? mysqld --initialize(随机密码)
? ? ? ? mysqld --initialize-insecure(无密码)
2、经过初始化data重置目录,注意my.ini先配置好,mysqld -remove重新安装下,再次运行

? ? ? ? net start mysql
3、3306端口被占用
? ? ? ? mysqld --console 可以查看报错信息
? ? ? ? netstat -ano 看看是端口是否被占用 ? ? ?#netstat -aon|findstr “3306”
? ? ? ? 若被占用,PID结束进程,再试试看
4、本地host指向问题
? ? ? ? C:\Windows\System32\drivers\etc\hosts
? ? ? ? 查看下本地host是否指向其他域名,如127.0.0.1是否指向localhost

(不用的话可以直接跳过——跳的这一步)

?(正常步骤:my.ini文件的内容为:如果安装目录不一样,记得修改MySQL的安装路径。

[mysqld]
#端口号
port = 3306
#mysql-5.7.44-winx64的路径
basedir=D:\ProgramData\mysql-5.7.44-winx64
#mysql-5.7.44-winx64的路径+\data
datadir=D:\ProgramData\mysql-5.7.44-winx64\data 
#最大连接数
max_connections=200
#编码
character-set-server=utf8
 
default-storage-engine=INNODB
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
[mysql]
#编码
default-character-set=utf8 
 

创建完成后进入下一步。

四、安装MySQL

(1)在输入框内输入cmd,以管理员的身份运行,注意这里一定一定一定要以管理员的身份运行,否则在安装过程中会出现因为管理权限不够而导致的Install/Remove of the Service Denied!(安装/卸载服务被拒绝),这一点非常重要!

错误示范:("Win"+"cmd"打开命令提示符窗口是不行的)


正确步骤:

(2)在cmd中进入到D:\ProgramData\mysql-5.7.44-winx64\bin目录下:

输入安装命令:mysqld? -install,若出现Service successfully installed,证明安装成功;如出现Install of the Service Denied,则说明没有以管理员权限来运行cmd:

然后继续输入命令:mysqld? --initialize,此时不会有任何提示:

再输入启动命令:net start mysql,出现以下提示证明MySQL启动成功

输入以下命令,以root用户连接到mysql,遇见输入密码直接回车!

mysql -u root -p

当命令提示符前变为mysql>,则证明登陆成功!输入以下命令修改root用户密码!

update mysql.user set authentication_string=password('1234') where user='root';

执行成功后,输入以下命令刷新权限!

flush privileges;

重启mysql服务,即可快乐使用!

net stop mysql ?  ?
net start mysql

(在配置环境的过程中我也遇到了很多问题,并做了一些总结)

1.执行net start mysql时发生报错,报错提示:
发生系统错误 2。
系统找不到指定的文件。

解决方法:(此方法为通用方法,不一定能解决所有关于这个报错的问题)
1.进入mysql文件夹中bin里(使用管理员权限)
2.执行mysqld remove
3.执行mysqld install
4.执行net start mysql

2、在执行?mysqld --initialize时候

[ERROR] --initialize specified but the data directory has files in it. Aborting.

解决方法:[错误]--指定了初始化,但数据目录中有文件。正在中止

清除掉?数据文件

对应的目录 :D:\ProgramData\mysql-5.7.44-winx64\data

查看现在目录内容:

把这些都删除掉。

然后重新执行:

mysqld --initialize

可以正常执行了。

3、cmd运行net start mysql
报错:
发生系统错误193 *** 不是有效的 Win32 应用程序。

解决方法:删除bin目录下0KB的mysqld文件

4、发生系统错误 1058。

无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。

MySQL之前安装好,一直使用正常的,结果第二次又不行了

首先以管理员身份启动 命令提示符,输入

net start mysql

发现提示“mysql 服务无法启动,系统发生1058错误”

解决方法:

1.输入:

mysqld remove

2.继续输入:

mysqld --initialize

3.接着输入:

mysqld --install

4.再次启动mysql:

mysql -u root -p

输入自己的mysql密码

终于启动成功啦!!!

MySQL启动!!? !

(不建议,不要轻易尝试,我用了之后命令提示符直接挡掉了)以跳过验证的方式启动mysql!!!

5、以跳过验证的方式启动mysql,或者在my.ini文件中,[mysqld]节点下,添加skip-grant-tables后,再启动!
mysqld --skip-grant-tables
net start mysql

6、MySQL登录报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

对于出现拒绝访问root用户的解决方案:
错误1045(28000):用户'root'@'localhost'(使用密码:YES)拒绝访问

首先解析此英文:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES);
解析的地方有两处:1.Access denied(拒绝访问);2.using password:NO/YES

一、出现access denied的原因有如下可能:

1)mysql的服务器停止:
  若MySQL已经没有启动,重启MySQL服务器:systemctl restart mysqld
2)用户的端口号或者IP导致:
  若用户的端口号与IP(3306/3307)不一致,打开my.ini文件进行编辑。全部编辑替换为: port=X
3)mysql的配置文件错误----my.ini等文件:
  my.ini文件误输入无效内容,不知道到何处。复制替换该文件;有人已经对my.ini文件进行解释以及注释:https://blog.csdn.net/lienfeng6/article/details/78140404
4)root用户的密码错误(后面解决)

二、出现 using password的原因如下:

不输入密码:

错误的密码:

???

解决方案:

Step 1:跳过MySQL密码验证

? 找到 MySQL 的配置文件 “my.ini”,找到 [mysqld],在其下面任意一行添加?skip-grant-tables,保存,如下图所示:

skip-grant-tables
注:my.ini”文件可能在目录?D:\ProgramData\mysql-5.7.44-winx64\MySQL?下。
Step 2

重启 MySQL 服务。

sudo systemctl restart mysqld

Step 3:无密码登录MySQL

  • 找到 MySQL 安装目录下的 bin 目录,地址栏输入 cmd,然后回车,如下图所示:

附:如果已经为 MySQL 8.0 配置了环境变量,就可以在任意位置打开 cmd。

mysql -u root -p

输入?mysql -u root -p?回车后会显示输入密码,直接不管,再次回车,不要关闭命令行,如下图所示:

还是启动不成功!!!

解决方法:

  修改my.in配置文件

    进入mysql安装目录

    编辑my.ini

    在[mysqld]下添加skip-grant-tables,保存即可。


  使用管理员身份打开命令行

  ①重启mysql:

    1、net stop mysql ? ?2、net start mysql ?


  ②进入mysql,登录
    mysql -u root -p
    不用输入密码,直接回车(出现Enter Password 也一样直接回车,即可登陆成功)


  ③输入use mysql,修改root的密码:
    update user set authentication_string=password('1234') where user='root';
    flush privileges;


  ④退出:

    quit;


  ⑤再次重启mysql:

    1、net stop mysql ? ? 2、net start mysql


  ⑥测试是否成功就是是否登陆成功咯:
    mysql -u root -p

    Enter Password>'1234'

  就不会出错,可以登录啦!!!

(另外一种情况就是,,你密码输入错误了,如果是初始化后第一次登录,出现这种情况的话,很大概率就是密码错误,初始化后的密码要认真查看,可能会因为空格、小数点等符号输错)

将下发的ds_db01.sql数据库文件放置mysql中

12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String,且值为当前日期的前一天日期(分区字段格式为yyyyMMdd)。使用hive cli执行show partitions ods.user_info命令,将结果截图粘贴至答案表.docx中对应的任务序号下;


?

13、编写Scala代码,使用Spark将MySQL的ds_db01库中表sku_info的全量数据抽取到Hive的ods库中表sku_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String,且值为当前日期的前一天日期(分区字段格式为yyyyMMdd)。使用hive cli执行show partitions ods.sku_info命令,将结果截图粘贴至答案表.docx中对应的任务序号下;
文章来源:https://blog.csdn.net/Zhiyilang/article/details/135043241
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。