📅  最后修改于: 2023-12-03 15:05:21.179000             🧑  作者: Mango
Sqoop是一个用于在Apache Hadoop和关系数据库(如MySQL、Oracle、Teradata等)之间进行数据传输的工具。它可以帮助程序员快速、方便地将数据从关系数据库导入到Hadoop集群中进行分析,或者将数据从Hadoop集群导出到关系数据库中。
$ wget http://www.apache.org/dyn/closer.cgi/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
$ tar -zxf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
$ mv sqoop-1.4.7.bin__hadoop-2.6.0 /usr/local/sqoop
~/.bashrc
文件中:export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
$ source ~/.bashrc
$SQOOP_HOME/conf/sqoop-env.sh
文件,设置以下属性:export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export ZOOCFGDIR=/etc/zookeeper/conf
$ sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username myusername --password mypassword --table mytable --target-dir /user/hadoop/mydata
将上述命令中的jdbc:mysql://localhost:3306/mydatabase
替换为你的数据库连接信息,mytable
替换为你要导入的表名,/user/hadoop/mydata
替换为你要保存数据的目录。
$ sqoop import --connect jdbc:mysql://localhost:3306/mydatabase --username myusername --password mypassword --query 'SELECT * FROM mytable WHERE age > 25' --target-dir /user/hadoop/mydata
将上述命令中的查询语句SELECT * FROM mytable WHERE age > 25
根据需要替换为你的查询语句。
$ sqoop export --connect jdbc:mysql://localhost:3306/mydatabase --username myusername --password mypassword --table mytable --export-dir /user/hadoop/mydata
将上述命令中的jdbc:mysql://localhost:3306/mydatabase
替换为你的数据库连接信息,mytable
替换为你要导出的表名,/user/hadoop/mydata
替换为你要导出的Hadoop目录。
以上是关于Sqoop的简介和基本用法。希望这个教程对程序员有所帮助!