Sqoop导入数据到HDFS上
flume收集日志:主动的和被动的
看文档
sqoop底层是MR,要运行sqoop要有yarn环境,做大数据平台和关系型数据库导入导出工具,必须要有连接数据库的驱动
1、node1节点上已经安装了mysql,并允许远程连接:
[root@node1 ~]# service mysql start
[root@node1 ~]# service mysql status
2、将数据导入到HDFS中去
2.1、解压sqoop压缩文件到Linux主机上的指定目录
[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选项文件
[root@node1 sqoop-1.4.6]# vi option1
官网有配置的详细解释
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、执行选项文件
[root@node1 sqoop-1.4.6]# ./bin/sqoop --options-file option1
3、在HDFS的web UI查看数据是否导入HDFS
4、使用命令行查看数据是否导入HDFS
[root@node1 sqoop-1.4.6]# hadoop fs -cat /sqoop/data/part-m-00000
5、将HDFS上刚存入的数据存到hive中
在hive表中创建表
hive> create table tt_test(id int,name string)
> row format delimited
> fields terminated by ',';
将HDFS中的数据存储加载到表中
hive> load data inpath '/sqoop/data/part-m-00000' into table tt_test;
查询tt_test表
hive> select * from tt_test;