- 8
- 0
- 约1.99千字
- 约 4页
- 2021-08-23 发布于北京
- 举报
实验3:Sqoop的安装
PAGE 2
[文档标题
实验3:Sqoop的安装
本次课程介绍实验3:Sqoop的安装。
一、Sqoop的安装
(一)Sqoop介绍
1.简介
Sqoop是一种旨在在Hadoop与关系数据库或大型机之间传输数据的工具。您可以使用Sqoop将数据从MySQL或Oracle等关系数据库管理系统(RDBMS)或大型机导入Hadoop分布式文件系统(HDFS),在Hadoop MapReduce中转换数据,然后将数据导出回RDBMS 。
Sqoop依靠数据库描述要导入的数据的模式来自动执行此过程的大部分过程。Sqoop使用MapReduce导入和导出数据,这提供了并行操作以及容错能力。
2.基本用法
使用Sqoop,您可以将数据从关系数据库系统或大型机导入HDFS。导入过程的输入是数据库表或大型机数据集。对于数据库,Sqoop会将表逐行读取到HDFS中。对于大型机数据集,Sqoop将从每个大型机数据集中读取记录到HDFS中。此导入过程的输出是一组文件,其中包含导入的表或数据集的副本。导入过程是并行执行的。因此,输出将在多个文件中。这些文件可以是定界的文本文件(例如,用逗号或制表符分隔每个字段),也可以是包含序列化记录数据的二进制Avro或SequenceFiles。
导入过程的副产品是生成的Java类,可以封装导入表的一行。此类在Sqoop本身的导入过程中使用。还为您提供了此类的Java源代码,以用于后续的MapReduce数据处理。此类可以将数据与SequenceFile格式进行序列化和反序列化。它还可以解析记录的分隔文本形式。这些功能使您可以快速开发在处理管道中使用HDFS存储的记录的MapReduce应用程序。您还可以使用自己喜欢的任何其他工具自由解析定界记录数据。
在处理了导入的记录(例如,使用MapReduce或Hive)之后,您可能会有一个结果数据集,然后可以将其导出 回关系数据库。Sqoop的导出过程将从HDFS并行读取一组定界的文本文件,将其解析为记录,并将它们作为新行插入目标数据库表中,以供外部应用程序或用户使用。
Sqoop包含一些其他命令,这些命令使您可以检查正在使用的数据库。例如,您可以列出可用的数据库模式(使用sqoop-list-databases工具)和模式中的表(使用sqoop-list-tables工具)。Sqoop还包括原始SQL执行外壳(该sqoop-eval工具)。
导入,代码生成和导出过程的大多数方面都可以自定义。对于数据库,您可以控制导入的特定行范围或列。您可以为基于文件的数据表示以及所使用的文件格式指定特定的分隔符和转义符。您还可以控制在生成的代码中使用的类或包名称。
(二)安装步骤
1.上传安装包sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz到/opt目录下:
2. 解压sqoop安装包;
[root@Namer opt]#tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
3. 将sqoop-1.4.7.bin__hadoop-2.6.0重命名为sqoop;
[root@Namer opt]# mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop
4.进入sqoop跟目录下conf目录中;
[root@Namer conf]# cd /opt/sqoop/conf/
5.重命名配置文件sqoop-env-template.sh;
[root@Namer conf]# cp sqoop-env-template.sh sqoop-env.sh
6. 修改配置文件sqoop-env.sh
[root@Namer conf]# vim sqoop-env.sh
注意:这里的HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME配成一个就行了,但是我们现在安装的hadoop的开源的版本:所以这两个在一个目录下就行,但是在hadoop的商业版本中这两个配置是分别安装在不同的目录下的。
7. 拷贝jdbc驱动到sqoop的lib目录下
[root@Namer opt]# cp mysql-connector-java-5.1.30.jar /opt/sqoop/lib/
8.验证Sqoop
我们可以通过某一个command来验证sqoop配置是否正确:
[root@Namer bin]# sqoop help
[root@Namer bin]# sqoop version
原创力文档

文档评论(0)