介绍
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
软件获取
wget http://apache.01link.hk/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
安装前准备
- 安装hadoop
- 安装hive
- 安装hbase
安装
tar xvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/
ln -s sqoop sqoop-1.4.7.bin__hadoop-2.6.0
环境变量配置
# JAVA环境变量
export JAVA_HOME=/opt/jdk1.8.0_121
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# hadoop环境变量
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
# hive环境变量
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin
# sqoop环境变量
export HADOOP_COMMON_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=/opt/hadoop
export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
测试
sqoop version
18/07/02 15:22:02 INFO sqoop.Sqoop: Running Sqoop version: 1.4.7
Sqoop 1.4.7
git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8
Compiled by maugli on Thu Dec 21 15:59:58 STD 2017
下载mysql-connector
# 将下载解压后的jar包拷贝到/opt/sqoop/lib目录下
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
FAQ
-
HADOOP_CLASSPATH引发的异常
ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.
解决方案: ``` # 根据具体使用的bash进行相应设置 vi ~/.zshrcexport HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/hive/lib/*
source ~/.zshrc
* JDK权限引发的异常
ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTrustPermission" "register")解决方案:
vi /opt/jdk/jre/lib/security/java.policygrant { ... permission javax.management.MBeanTrustPermission "register"; } ```