Hadoop(6)-Sqoop简介及安装配置

一 Sqoop简介
Sqoop是Hadoop和关系数据库服务器之间传送数据的一种工具。它是用来从关系数据库如:MySQL,Oracle到Hadoop的HDFS,并从Hadoop的文件系统导出数据到关系数据库。
Sqoop:“SQL 到 Hadoop 和 Hadoop 到SQL”。
传统的应用管理系统,也就是与关系型数据库的使用RDBMS应用程序的交互,是产生大数据的来源之一。这样大的数据,由关系数据库生成的,存储在关系数据库结构关系数据库服务器。
当大数据存储器和分析器,如MapReduce, Hive, HBase, Cassandra, Pig等,Hadoop的生态系统等应运而生,它们需要一个工具来用的导入和导出的大数据驻留在其中的关系型数据库服务器进行交互。在这里,Sqoop占据着Hadoop生态系统提供关系数据库服务器和Hadoop HDFS之间的可行的互动。

2 Sqoop工作流程

这里写图片描述

二 Sqoop安装配置
前提:Hadoop,jdk,hive,hbase等已经安装
在hadoop环境搭建完成后,接下来就是要把sqoop整合进来,使其可以利用hadoop和mysql-connector-java来从MySQL中抽取数据并转存到hdfs上。
1 将得到的sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz拷贝
到/usr/local/yyl文件夹下
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C yyl
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop1.4.6

2 配置SQOOP_HOME环境变量,在/etc/profile中添加和修改如下记录:
export SQOOP_HOME=/usr/local/yyl/sqoop1.4.6/bin
export PATH=$PATH:$SQOOP_HOME
刷新环境变量
source /etc/profile

3 对sqoop进行配置,保证其可以整合到hadoop中:
1)进入到$SQOOP_HOME/conf目录下,复制一份sqoop环境配置脚本sqoop-env-template.sh到当前目录,并重命名为sqoop-env.sh:
cd $SQOOP_HOME/conf
cp sqoop-env-template.sh sqoop-env.sh

2)修改sqoop-env.sh的HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME变量值,使其对应于相应的hadoop文件路径:

#Setpath to where bin/Hadoop is available
export HADOOP_COMMON_HOME=/usr/local/yyl/hadoop-2.6.5
#Setpath to where hadoop-*-core.jar isavailable
export HADOOP_MAPRED_HOME=/usr/local/yyl/hadoop-2.6.5/share/hadoop/mapreduce
export HBASE_HOME=/usr/local/yyl/hbase-1.2.6
export HIVE_HOME=/usr/local/yyl/hive1.2.2
export ZOOKEEPER_HOME=/usr/local/yyl/zookeeper-3.4.6

注:
如果数据读取不涉及hbase和hive,那么相关hbase和hive的配置可以不加;如果集群有独立的zookeeper集群,那么配置zookeeper,反之,不用配置。
3)sqoop需要连接mysql,将mysql-connector-java包和$HADOOP_HOME/share/hadoop/mapreduce/下的所有jar包复制到$SQOOP_HOME/lib目录下:

cp  $HIVE_HOME/lib/mysql-connector-java-5.1.38-bin.jar  $SQOOP_HOME/lib/

cp -r  $HADOOP_HOME/share/hadoop/mapreduce/*.jar   $SQOOP_HOME/lib

否则会报错:主类找不到

Warning: /usr/local/yyl/sqoop1.4.6/bin/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/local/yyl/sqoop1.4.6/bin/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
Error: Could not find or load main class org.apache.sqoop.Sqoop

4 验证是否安装成功
sqoop help
sqoop version
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sqoop是一个用于在Hadoop和关系型数据库之间进行数据传输的工具。对于Hadoop 3.3.3,你可以使用Sqoop 1.4.7版本。你可以从Apache Sqoop的官方网站下载安装包,或者从Apache镜像站点下载。以下是一些安装配置Sqoop的步骤: 1. 下载Sqoop 1.4.7的二进制文件,并解压缩。 2. 将解压后的文件夹移动到你想要安装的目录中。 3. 设置环境变量,将Sqoop的bin目录添加到PATH中。 4. 在$SQOOP_HOME/conf目录中,创建一个新的文件名为sqoop-env.sh的文件,并将以下内容添加到文件中: ``` export HADOOP_COMMON_HOME=/path/to/hadoop export HADOOP_MAPRED_HOME=/path/to/hadoop export HIVE_HOME=/path/to/hive export HBASE_HOME=/path/to/hbase export ZOOKEEPER_HOME=/path/to/zookeeper export ACCUMULO_HOME=/path/to/accumulo ``` 5. 修改$SQOOP_HOME/conf/sqoop-site.xml文件,添加以下内容: ``` <configuration> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/path/to/hadoop</value> </property> <property> <name>mapreduce.application.classpath</name> <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value> </property> </configuration> ``` 6. 启动Sqoop,使用以下命令: ``` sqoop help ``` 这将显示Sqoop的帮助信息,证明Sqoop已经成功安装配置完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值