sqoop 主要用于将分析后的结果表导入到 MySQL 中。
1.创建工作路径,并将 sqoop 解压
// 下载
wget-P/opt/soft/http://172.16.47.240/bigdata/bigdata_tar/sqoop-1.4.7.bin.tar.gz
创建目录:
mkdir-p /usr/sqoop
解压到指定路径:
tar-zxvf /opt/soft/sqoop-1.4.7.bin.tar.gz -C /usr/sqoop/
2.配置/etc/profile
#setsqoop
export SQOOP_HOME=/usr/sqoop/sqoop-1.4.7.bin
export PATH=$PATH:$SQOOP_HOME/bin
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
生效环境变量:source/etc/profile
3.拷贝 mysql 驱动到 /usr/sqoop/lib 目录。
cp $HIVE_HOME/lib/mysql-connector-java-5.1.47-bin.jar $SQOOP_HOME/lib
4.安装 sqoop,进入 /usr/sqoop/conf 目录,重命名配置文件。
mv sqoop-env-template.sh sqoop-env.sh
进入 sqoop-env.sh,修改如下参数:
export HADOOP_COMMON_HOME=/usr/hadoop/hadoop-2.7.3
export HADOOP_MAPRED_HOME=/usr/hadoop/hadoop-2.7.3
export HIVE_HOME=/usr/hive/apache-hive-2.1.1-bin
export ZOOCFGDIR=/usr/zookeeper/zookeeper-3.4.10
5.将 hive-site.xml 拷贝到$SQOOP_HOME/conf 目录下,目的是为了读取到 hive 的配置, 不然会报错找不到库或导不进数据
cp $HIVE_HOME/conf/hive-site.xml $SQOOP_HOME/conf/
###不一定有下面再切换到/usr/sqoop/bin目录下
下面来修改configure-sqoop里面的部分脚本,使用vim打开configure-sqoop文件。在configure-sqoop文件中,查找下面内容,并在前面加上“#”号,将脚本注释掉。
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Warning: $HBASE_HOME does not exist! HBase imports will fail."
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
#fi
## Moved to be a runtime check in sqoop.
#if [ ! -d "${HCAT_HOME}" ]; then
# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs will fail."
# echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'
#fi
#if [ ! -d "${ACCUMULO_HOME}" ]; then
# echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports will fail."
# echo 'Please set $ACCUMULO_HOME to the root of your Accumulo installation.'
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo "Warning: $ZOOKEEPER_HOME does not exist! Accumulo imports will fail."
# echo 'Please set $ZOOKEEPER_HOME to the root of your Zookeeper installation.'
#fi
6.显示 sqoop 的版本:sqoop version
7.检验,输入以下命令,如果列出 mysql 所有的数据库,则表示成功。
sqoop list-databases \
--connect jdbc:mysql://master:3306/?useSSL=false \
--username root \
--password 123456