【hadoop】sqoop案例 hive->mysql

将temperature.log中的气象数据导入到Hive的temperature表中,

根据气象站id分组计算每个气象站30年来的*最高*气温,

然后将统计结果导出到MySQL当中。

思路:

1.在hive中创建表

2.数据导入到表中

3.计算后的结果写入另外的表

4.用sqoop导出到mysql


1.在hive中创建表

复制代码
hive

hive> create database if not exists temperature_db;

hive> use temperature_db;

hive> create table temperature_tb(id int,year string,temperature string) row format delimited fields terminated by ',';

2.数据导入到表中

先上传文件到虚拟机,然后输入load data local inpath... into命令加载数据到数据库。

复制代码
load data local inpath '/home/hadoop/temperature.log' into table temperature_tb;

3.计算后的结果写入另外的表

复制代码
CREATE TABLE temperature_max_by_id AS
SELECT id, MAX(temperature) AS max_temperature
FROM temperature_tb
WHERE `year` >= STRING(YEAR(CURRENT_DATE()) - 30)
GROUP BY id;

DESCRIBE FORMATTED temperature_db.temperature_max_by_id;

可以查看表在hdfs中的位置。

4.使用 Sqoop 导出到 MySQL

注意:要提前在mysql中创建表

USE temperature_db; CREATE TABLE IF NOT EXISTS temperature (id INT, max_temperature VARCHAR(50));

复制代码
~/sqoop/bin/sqoop export \
  --connect jdbc:mysql://localhost/temperature_db \
  --username root \
  --password 123456 \
  --table temperature \
  --export-dir /user/hive/warehouse/temperature_db.db/temperature_max_by_id \
  --input-fields-terminated-by ',' \
  -m 1
相关推荐
码字的字节13 小时前
ZooKeeper在Hadoop中的协同应用:从NameNode选主到分布式锁实现
hadoop·分布式·zookeeper·分布式锁
码字的字节1 天前
深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
hadoop·capacity·fairscheduler
Johny_Zhao1 天前
Centos8搭建hadoop高可用集群
linux·hadoop·python·网络安全·信息安全·云计算·shell·yum源·系统运维·itsm
码字的字节2 天前
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
hadoop·hdfs·rpc
白日与明月2 天前
Hive-vscode-snippets
hive·hadoop·vscode
Sirius Wu2 天前
Hive的窗口函数
数据仓库·hive·hadoop
码字的字节2 天前
深入解析HBase如何保证强一致性:WAL日志与MVCC机制
hadoop·hbase·wal·mvcc
シ風箏2 天前
Hive【安装 01】hive-3.1.2版本安装配置(含 mysql-connector-java-5.1.47.jar 网盘资源)
java·hive·mysql
zhixingheyi_tian2 天前
Hadoop 之 Yarn
大数据·hadoop·分布式
码字的字节2 天前
深入解析Hadoop MapReduce中Reduce阶段排序的必要性
大数据·hadoop·mapreduce·reduce