失效链接处理 |
Apache Sqoop PDF 下载
本站整理下载:
提取码:gylp
相关截图:
![]()
主要内容:
1.sqoop介绍
Apache Sqoop是在Hadoop生态体系和RDBMS体系之间传送数据的一种工具。来自于Apache软件基金会提供。
Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现。在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。
Hadoop生态系统包括:HDFS、Hive、Hbase等
RDBMS体系包括:Mysql、Oracle、DB2等
Sqoop可以理解为:“SQL 到 Hadoop 和 Hadoop 到SQL”。
站在Apache立场看待数据流转问题,可以分为数据的导入导出:
Import:数据导入。RDBMS----->Hadoop
Export:数据导出。Hadoop---->RDBMS
2.sqoop安装
安装sqoop的前提是已经具备java和hadoop的环境。
最新稳定版: 1.4.6
配置文件修改:
cd $SQOOP_HOME/conf
mv sqoop-env-template.sh sqoop-env.sh
vi sqoop-env.sh
export HADOOP_COMMON_HOME= /export/servers/hadoop-2.7.5
export HADOOP_MAPRED_HOME= /export/servers/hadoop-2.7.5
export HIVE_HOME= /export/servers/hive
加入mysql的jdbc驱动包
cp /hive/lib/mysql-connector-java-5.1.32.jar $SQOOP_HOME/lib/
验证启动
bin/sqoop list-databases \
--connect jdbc:mysql://localhost:3306/ \
--username root --password hadoop
本命令会列出所有mysql的数据库。
到这里,整个Sqoop安装工作完成。
三、Sqoop导入
“导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件的文本数据
下面的语法用于将数据导入HDFS。
$ sqoop import (generic-args) (import-args)
Sqoop测试表数据
在mysql中创建数据库userdb,然后执行参考资料中的sql脚本:
创建三张表: emp雇员表、 emp_add雇员地址表、emp_conn雇员联系表。
1.全量导入mysql表数据到HDFS
下面的命令用于从MySQL数据库服务器中的emp表导入HDFS。
bin/sqoop import \
--connect jdbc:mysql://node-1:3306/userdb \
--username root \
--password hadoop \
--delete-target-dir \
--target-dir /sqoopresult \
--table emp --m 1
其中--target-dir可以用来指定导出数据存放至HDFS的目录;
mysql jdbc url 请使用 ip 地址。
为了验证在HDFS导入的数据,请使用以下命令查看导入的数据:
hdfs dfs -cat /sqoopresult/part-m-00000
可以看出它会在HDFS上默认用逗号,分隔emp表的数据和字段。可以通过
--fields-terminated-by '\t'来指定分隔符。
1201,gopal,manager,50000,TP
1202,manisha,Proof reader,50000,TP
1203,khalil,php dev,30000,AC
1204,prasanth,php dev,30000,AC
1205,kranthi,admin,20000,TP
2.全量导入mysql表数据到HIVE
2.1.方式一:先复制表结构到hive中再导入数据
将关系型数据的表结构复制到hive中
bin/sqoop create-hive-table \
--connect jdbc:mysql://node03:3306/sqoopdb \
--table emp \
--username root \
--password 251578 \
--hive-table test.emp_add_sp
其中:
--table emp_add为mysql中的数据库sqoopdb中的表。
--hive-table emp_add_sp 为hive中新建的表名称。
从关系数据库导入文件到hive中
bin/sqoop import \
--connect jdbc:mysql://node03:3306/sqoopdb \
--username root \
--password 251578 \
--table emp \
--hive-table test.emp_add_sp \
--hive-import \
--m 1
|