大数据学习(6)

大数据学习(4)和(5)都是项目案例实战,因为涉及到某次生产实习,所以会在活动结束之后再进行发布。

本次学习主要是了解sqoop的安装、使用,重点是sqoop作为桥梁和hive、hadoop和mysql数据库的使用。因为一些应用的使用如果后台直接用hsql来进行增删改查,那么花费的事件是非常长的,后台的逻辑实现主要是用mysql完成数据库的操作。

0 版本明确

这个操作非常重要!
这个操作非常重要!
这个操作非常重要!

很多教程都忽略了这个问题,或者说找到教程就直接用会引发一系列的问题都是因为没有注重搭建的生产环境版本号。

本次的各个软件版本如下:

  • hadoop version 3.3.0
  • hive version 3.1.2
  • java version 1.8.0
  • mysql version 5.7.29

一定要看准版本号,看使用手册里版本号的适应,否则严重情况下就是生产环境直接崩溃。

对于sqoop,选择sqoop version 1.4.7 ,应该是sqoop 1的最后一版本。sqoop 2看其他博主的讲解说有错误不好解决。

1 sqoop 安装

参考博客:
https://blog.csdn.net/weixin_42065509/article/details/125420496

然后这里出现了一个问题,在final shell中直接传入之后,添加完系统路径,直接在命令行调用sqoop命令时,出现权限不够的问题。这里的第一反应是sudo指令,但是不行。问题解决是在finalshell里设置文件夹权限。
要把执行给勾一下。
在这里插入图片描述

另外贴一下相关链接:

sqoop直接下载
mysql connector 的jar包

官网上有的就下载官网,没有的情况下再思考百度云。

2 mysql

2.1 mysql安装

这里的完成主要是在搭建环境时完成,单独列出来是因为后期的mysql数据库肯定得和hive分开,用多台服务器。我在这里是为了测试和最后web的部署,在操作主机(windows)上又搭了一个mysql环境。

2.2 mysql连接

2.2.0 mysql workbench连接

mysql的Windows版本在安装之后是自带一个workbench的,workbench对于mysql的连接是非常方便的,因为它用的是ftp协议,不是jdbc协议,管理数据库可视化操作是非常方便的。

tips:对于数据库的密码一定要记住,不能忘记,或者说忘记之后是非常麻烦的一件事情。

在这里插入图片描述
上图可以看到连接到数仓node1节点是可以直接mysql workbench连接的。

2.2.1 mysql第三方连接

2.2.1.1 Datagrip连接 本地机器

注意,在没有对目标mysql进行用户管理之前,你能够进行的操作用户就是root@localhost,用自己的网络ip地址也是不行的。因为这边涉及到用户管理和权力授予,第三方连接在一开始只能够本地登录操作。

如果出现时区设置的问题,要根据数据库的主机时间设置时间。

在这里插入图片描述
在这里插入图片描述

2.2.1.2 sqoop连接 本地机器

关于连接sqoop命令可以看相关的博客。

测试命令:

sqoop list-databases \
-connect jdbc:mysql://192.168.88.151:3306/ -username root -password hadoop

在这里插入图片描述

注意,这里连接到的mysql是hadoop和hive用的底层数据库,即本地的mysql,并不是远程的mysql数据库。

2.2.1.3 sqoop连接 远程机器
2.2.1.3.1 mysql授权

好像centos7 是允许root用户在不同的机器上登录的,就是说作为远程机器是可以直接用root操作的(或者说我使用的是被人设置好的)。只有win版的mysql没有在开始设置。

一开始是发现在win版里无法用sqoop连接到win搭建的mysql,解决参考博客:

这是centos 7的mysql.user里的user,host:
在这里插入图片描述
这是win版的mysql.user里的user,host:
在这里插入图片描述

在这里创建了一个类似root的超级用户。感觉不如叫root

create user 'ss'@'%' identified by '12345678';
grant ALL privileges on *.* to 'ss'@'%';
2.2.1.3.2 mysql设置时间区

在进行sqoop连接时还报错了时间区。

Mysql:The server time zone value ‘PDT’ is unrecognized

select now();
set global time_zone = '+8:00';

3 sqoop命令

按照这个命令格式来写就行。
【Sqoop】Sqoop的使用(连接MySQL、Hive)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值