用sqoop导入数据到HIVE和HDFS中
来源:互联网 发布:linux如何打开pdf文件 编辑:程序博客网 时间:2024/06/08 00:38
一:sqoop数据的导入
1.使用sqoop将:mysql中的数据导入到HDFS(直接导入)
Step1、确定Mysql服务的正常开启 service mysql status
Step2、在Mysql中创建一张表
mysql> create database company
mysql> create table staff(
id int(4) primary key not null auto_increment,
name varchar(255) not null,
sex varchar(255) not null);
mysql> insert into staff(name, sex) values('Thomas', 'Male');
Step3、使用Sqoop导入数据到HDFS
1. 将mysql数据全部导入hdfs
bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 123456 \
--table staff \
--target-dir /user/company \
--delete-target-dir \
--num-mappers 1 \ = --m 1
--fields-terminated-by "\t"
//如果到这里 结束,则默认存放在hdfs上路径为:/user/robot/staff/ ,默认数据用,逗号隔开
2.查询mysql总部分数据导入hdfs中
$ bin/sqoop import
--connect jdbc:mysql://hadoop-senior01.itguigu.com:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--query 'select name,sex from staff where id >= 2 and $CONDITIONS;'
3.也算查询导入,导入指定列
$ bin/sqoop import
--connect jdbc:mysql://hadoop-senior01.robot.com:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--columns id, sex
--table staff
4.细化筛选查询导入
$ bin/sqoop import
--connect jdbc:mysql://hadoop-senior01.robot.com:3306/company
--username root
--password 123456
--target-dir /user/company
--delete-target-dir
--num-mappers 1
--fields-terminated-by "\t"
--table staff
--where "id=3"
2使用sqoop将:mysql中的数据导入到HIVE中
实际上先导入到hdfs中,然后在hive中创建一个表,不需要提前创建表,然后把数据源Load进表中。也可以提前创建表
bin/sqoop import\
--connect jdbc:mysql://hadoop102:3306/company \
--username root\
--password 123456\
--table staff\
--target-dir /user/company \
--hive-import\
--m 1\
--fields-terminated-by "\t"
--hive-table company.staff_hive(针对提前创建表,把数据 导入的指定 表staff_hive中的)
--hive-overwrite
过程详解:
1.底层的mapreduce先将文件上传到hdfs对应的目录,/user/company/下(在执行期间可以在这个目录下看到上传的文件)
2.然后hive在根据数据源创建对应的表
3.将hdfs的数据源导入load进hive的表中。(这时hdfs上的文件因为导入到hive表中,而没有了。新的文件在hive/warehouse目录下)
4.用bin/hive select * from company.staff可以查看数据,或者在user/hive/warehouse目录下查看。
二: Sqoop的数据导出
1. 将数据从HDFS导出到RDBMS数据库
- 导出前,目标表必须存在于目标数据库中。
- 默认操作是从将文件中的数据使用INSERT语句插入到表中
- 更新模式下,是生成UPDATE语句更新表数据
1.首先数据库中根据hdfs表中的属性建立空表
2.然后执行导出命令
3.验证表mysql命令行。
举例:
0.数据是在HDFS 中“EMP/”目录的emp_data文件中。
1.根据hdfs中属性建表
mysql> USE test;
mysql> CREATE TABLE employee (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(20),
deg VARCHAR(20),
salary INT,
dept VARCHAR(10));
2.执行导出命令
bin/sqoop export \
--connect jdbc:mysql://hadoop102/test\
--username root \
--password root \
--table employee \
--export-dir /user/hadoop/emp/
3,在mysql里检查:mysql>select * from employee;
四:sqoop对应的脚本的文件是***.opt文件
使用opt文件打包sqoop命令,然后执行 (sqoop脚本命令参数必须分行)
Step1、创建一个.opt文件
Step2、编写sqoop脚本
export
--connect
jdbc:mysql://hadoop-senior01.robot.com:3306/company
--username
root
--password
123456
--table
staff_mysql
--num-mappers
1
--export-dir
/user/hive/warehouse/company.db/staff_hive
--input-fields-terminated-by
"\t"
Step3、执行该脚本
$ bin/sqoop --options-file opt/job_hffs2rdbms.opt
阅读全文
0 0
- 用sqoop导入数据到HIVE和HDFS中
- 用sqoop导入数据到hive中
- 用sqoop将mysql数据导入到hdfs中
- 利用sqoop从sqlserver导入数据到HDFS或Hive
- sqoop 从mysql导入数据到hdfs、hive
- 利用sqoop 将 hive/hdfs数据 导入 Oracle中
- 利用sqoop 将 hive/hdfs数据 导入 Oracle中
- Sqoop导入数据到hdfs
- sqoop:mysql和Hbase/Hive/Hdfs之间相互导入数据
- 用Sqoop将mysql中的表和数据导入到Hive中
- sqoop导入数据到hive
- sqoop导入数据到hive
- Sqoop导入数据到Hive
- sqoop向hdfs,hive,hbase导入数据
- Sqoop导入数据到HDFS中(大数据存储系统)
- Sqoop数据迁移,工作机制,sqoop安装(配置),Sqoop的数据导入,导入表数据到HDFS,导入关系表到HIVE,导入到HDFS指定目录,导入表数据子集,按需导入,增量导入,sqoop数据导出
- sqoop从mysql数据库导入数据到hdfs中
- 使用sqoop将mysql中数据导入到hive中
- asio 协程中 yield
- 安卓自定义控件--TypedArray 详解
- HashMap,Hashtable,SynchronizedHashMap,ConcurrentHashMap
- java 线程作业2
- webpack-stream
- 用sqoop导入数据到HIVE和HDFS中
- LintCode 第46题 主元素 【贪心算法】
- 菜鸟学MVC遇到的问题(一)
- <url-pattern>中的 *.action *.do /*
- fullcalendar 属性修改General Display
- Spring启动后获取所有拥有特定注解的Bean
- 操作系统基础
- LXC C API 使用
- 彻底解决Intellij IDEA/WebStorm2017.2 中文无法输入 中英文没法自由切换问题?