Mysql和Hive之间通过Sqoop进行数据同步
liuian 2025-08-03 06:03 57 浏览
文章回顾
理论
大数据框架原理简介
大数据发展历程及技术选型
实践
搭建大数据运行环境之一
搭建大数据运行环境之二
本地MAC环境配置
CPU数和内存大小
sysctl machdep.cpu
# 核数为4
machdep.cpu.core_count: 4
# cpu数量为8个,使用了超线程技术:四核八线程
machdep.cpu.thread_count: 8
top -l 1 | head -n 10 | grep PhysMem
PhysMem: 16G used (10G wired), 67M unused.
在本地开了3个虚拟机centos服务器
虚拟机服务器配置
服务器1 192.168.84.128 4核4G
服务器2 192.168.84.131 1核2G
服务器3 192.168.84.132 1核2G
因为服务器1上的按照的软件比较多 所以这样分配核数和内存 可以将大数据环境运行起来
虚拟机软件给一个虚拟机分配核数和内存的方式
通过Sqoop查看Mysql数据库
/usr/local/sqoop/bin/sqoop list-databases --connect jdbc:mysql://hadoop001:3306/?useSSL=false --username root --password 123456
在Hive中创建测试表
创建test表
CREATE TABLE IF NOT EXISTS test (
id int
,uid int
,title string
,name string
,status int
,time timestamp)
COMMENT '简介'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY "\001"
LINES TERMINATED BY "\n"
STORED AS TEXTFILE;
创建test_out表
CREATE TABLE IF NOT EXISTS test_out (
name string
, count int
,time date)
COMMENT '简介'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\001'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
hive删除表
truncate table 表名
(truncate可删除所有的行,但是不能删除外部表)
hdfs -dfs -rm -r 外部表路径
drop table 表名
查看hive表
hive -e "show databases ;" > databases.txt
cat databases.txt
default
./hive -d default
在Mysql中创建测试表
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(10) DEFAULT NULL,
`uid` int(10) DEFAULT NULL,
`title` varchar(100) DEFAULT NULL,
`name` varchar(100) DEFAULT NULL,
`status` int(10) DEFAULT NULL,
`time` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入3条测试数据
INSERT INTO `test`.`test`(`id`, `uid`, `title`, `name`, `status`, `time`) VALUES (1, 1, '第一条数据', '平凡人笔记', 1, '2021-01-11 16:30:02');
INSERT INTO `test`.`test`(`id`, `uid`, `title`, `name`, `status`, `time`) VALUES (2, 2, '第二条数据', '孟凡霄', 2, '2021-01-11 16:30:20');
INSERT INTO `test`.`test`(`id`, `uid`, `title`, `name`, `status`, `time`) VALUES (3, 3, '第三条数据', '平凡人', 3, '2021-01-11 16:30:41');
DROP TABLE IF EXISTS `test_out`;
CREATE TABLE `test_out` (
`name` varchar(100) DEFAULT NULL,
`count` int(10) DEFAULT NULL,
`time` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Mysql导入Hive
/usr/local/sqoop/bin/sqoop import \
--driver com.mysql.jdbc.Driver \
--connect jdbc:mysql://hadoop001:3306/test?useSSL=false \
--username root \
--password 123456 \
--table test \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
--delete-target-dir \
--num-mappers 1 \
--hive-import \
--hive-database default \
--hive-table test \
--direct
虽然有报错
ERROR bonecp.BoneCP: Unable to start/stop JMX
java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")
但不影响导入结果
说明从Mysql导入hive成功
增量数据定时导入
mysql test表增加一条测试数据
INSERT INTO `test`.`test`(`id`, `uid`, `title`, `name`, `status`, `time`) VALUES (4, 4, '第四条数据', '笔记', 4, '2021-01-11 16:50:00');
/usr/local/sqoop/bin/sqoop job --delete testJob
/usr/local/sqoop/bin/sqoop job --create testJob -- \
import \
--driver com.mysql.jdbc.Driver \
--connect jdbc:mysql://hadoop001:3306/test?useSSL=false \
--username root \
--password 123456 \
--table test \
--check-column time \
--incremental lastmodified \
--last-value '2018-08-09 15:30:29' \
--merge-key id \
--fields-terminated-by '\001' \
--lines-terminated-by '\n' \
--num-mappers 1 \
--target-dir /user/hive/warehouse/test
/usr/local/sqoop/bin/sqoop job --exec testJob
/usr/local/sqoop/bin/sqoop job --show testJob
通常情况可以结合sqoop job和crontab等任务调度工具实现相关业务
Hive导入Hive
cd /usr/local/hive/bin
hive
# 统计后将结果数据加入另一个表
INSERT INTO TABLE
test_out(name,count,time)
SELECT name,count(1),to_date(time)
FROM test
GROUP BY name,to_date(time);
# 或者
INSERT OVERWRITE
TABLE test_out
SELECT name,count(1),to_date(time)
FROM test
GROUP BY name,to_date(time);
查看统计结果
统计成功
Hive导入Mysql
# hive的default库中的test_out表数据导出到mysql的test库test_out表
/usr/local/sqoop/bin/sqoop export \
--connect "jdbc:mysql://hadoop001:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai" \
--username root \
--password 123456 \
--input-null-string '\\N' \
--input-null-non-string '\\N' \
--input-fields-terminated-by '\t' \
--table test_out \
--hcatalog-database default \
--hcatalog-table test_out \
-m 1;
导出成功
可能遇到的问题及注意点
服务器1上hive访问mysql如果报错
Access denied for user 'root'@'192.168.84.128' (using password: YES)
mysql需要授权访问者
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.84.128' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
报错:
RemoteException(org.apache.hadoop.ipc.StandbyException):
Operation category READ is not supported in state standby
原因:
服务器1是namenode节点 active 状态
服务器2是secondNamenode节点是 standby状态
执行命令要在active的namenode才可以
服务器1(192.168.84.128)上安装namenode 有50070端口
服务器2(192.168.84.131)上安装secondNamenode 有50070端口
服务器3(192.168.84.132)上没有安装namenode 没有
后记
接下来研究的方向:
1、hive运行原理
2、弄一笔数据走一下搭建好的大数据运行环境
3、10亿数据如何分库分表存储Mysql
4、10亿数据同步到hive
5、flink数据如何求交
相关推荐
-
- 驱动网卡(怎么从新驱动网卡)
-
网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...
-
2026-01-30 00:37 liuian
- win10更新助手装系统(微软win10更新助手)
-
1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...
- windows11专业版密钥最新(windows11专业版激活码永久)
-
Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...
-
- 手机删过的软件恢复(手机删除过的软件怎么恢复)
-
操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...
-
2026-01-29 23:55 liuian
- 一键ghost手动备份系统步骤(一键ghost 备份)
-
步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。 步骤...
- 怎么创建局域网(怎么创建局域网打游戏)
-
1、购买路由器一台。进入路由器把dhcp功能打开 2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。 3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...
- 精灵驱动器官方下载(精灵驱动手机版下载)
-
是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...
- 一键还原系统步骤(一键还原系统有哪些)
-
1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。 2、在弹出的“准备安装”窗口中,可...
- 电脑加速器哪个好(电脑加速器哪款好)
-
我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...
- 任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)
-
是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...
- u盘怎么恢复文件(u盘文件恢复的方法)
-
开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...
- 系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)
-
1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...
-
- 剪贴板权限设置方法(剪贴板访问权限)
-
1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...
-
2026-01-29 21:37 liuian
- 平板系统重装大师(平板重装win系统)
-
如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...
- 联想官网售后服务网点(联想官网售后服务热线)
-
联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
