Sqoop导入数据到HDFS上

发布 : 2016-01-12 分类 : 大数据 浏览 :
1
2
3
4
5
flume收集日志:主动的和被动的

看文档

sqoop底层是MR,要运行sqoop要有yarn环境,做大数据平台和关系型数据库导入导出工具,必须要有连接数据库的驱动

1.node1节点上已经安装了mysql,并允许远程连接:

1
2
[root@node1 ~]# service mysql start
[root@node1 ~]# service mysql status

2.将数据导入到HDFS中去

2.1.解压sqoop压缩文件到Linux主机上的指定目录

1
2
3
[root@node1 software]# tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/modules
[root@node1 software]# cd /opt/modules
[root@node1 modules]# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6

2.2.在window上的Mysql客户端远程连接node1,并创建表

2.3.创建option1选项文件

1
[root@node1 sqoop-1.4.6]# vi option1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
官网有配置的详细解释

import
--connect
jdbc:mysql://node1/test
--username
root
--password
123456
--columns
id,name
--where
1=1
--table
t_test
--target-dir(指定数据存储到HDFS上的目录)
/sqoop/data
--as-textfile
--fields-terminated-by
','
-m(指定mapTask的数目)
1

2.4.上传mysql驱动包到sqoop的lib目录下

2.5.执行选项文件

1
[root@node1 sqoop-1.4.6]# ./bin/sqoop --options-file option1

3.在HDFS的web UI查看数据是否导入HDFS

4.使用命令行查看数据是否导入HDFS

1
[root@node1 sqoop-1.4.6]# hadoop fs -cat /sqoop/data/part-m-00000

5.将HDFS上刚存入的数据存到hive中

5.1.在hive表中创建表

1
2
3
hive> create table tt_test(id int,name string)
> row format delimited
> fields terminated by ',';

5.2.将HDFS中的数据存储加载到表中

1
hive> load data inpath '/sqoop/data/part-m-00000' into table tt_test;

5.3.查询tt_test表

1
hive> select * from tt_test;

本文作者 : Matrix
原文链接 : https://matrixsparse.github.io/2016/01/12/Sqoop导入数据到HDFS上/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹