Sqoop的安装

sqoop的实验原理

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(Mysql、Oracle…)间进行数据的传递,可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。
在这里插入图片描述
Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了Import和Export这两个工具。

Sqoop import原理:

从传统数据库获取元数据信息(schema、table、field、field type),把导入功能转换为只有Map的MapReduce作业,在MapReduce中有很多Map,每个Map读一片数据,进而并行的完成数据的拷贝。

Sqoop export原理:

获取导出表的schema、meta信息,和Hadoop中的字段match;多个Map only作业同时运行,完成HDFS中数据导出到关系型数据库中。

准备步骤

//下载压缩安装包
mkdir -p /data/sqoop1
cd /data/sqoop1  
wget http://192.168.19.201:60000/allfiles/sqoop1/sqoop-1.4.5-cdh5.4.5.tar.gz  
wget http://192.168.19.201:60000/allfiles/sqoop1/mysql-connector-java-5.1.26-bin.jar
//解压并重命名
tar -xzvf /data/sqoop1/sqoop-1.4.5-cdh5.4.5.tar.gz  -C  /apps/  
cd /apps  
mv /apps/sqoop-1.4.5-cdh5.4.5/  /apps/sqoop

修改系统变量

sudo vim ~/.bashrc
sudo vim /etc/profile
添加下列内容

#sqoop  
export SQOOP_HOME=/apps/sqoop  
export PATH=$SQOOP_HOME/bin:$PATH  

修改完后,刷新环境变量,使其生效
source ~/.bashrc
source /etc/profile

由于在导数据过程中,可能会涉及到连接Mysql,所以需要将/data/sqoop1目录下,Mysql的jdbc连接包mysql-connector-java-5.1.26-bin.jar,拷贝到Sqoop的lib目录下。

cp /data/sqoop1/mysql-connector-java-5.1.26-bin.jar /apps/sqoop/lib  

配置Sqoop

修改sqoop-env.sh

重命名sqoop的配置文件后打开:

cd /apps/sqoop/conf/
mv sqoop-env-template.sh sqoop-env.sh
vim /apps/sqoop/conf/sqoop-env.sh

修改文件为以下格式,这些字段原本是存在的,只是被注释掉了:

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/apps/hadoop
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/apps/hadoop
#set the path to where bin/hbase is available
export HBASE_HOME=/apps/hbase
#Set the path to where bin/hive is available
export HIVE_HOME=/apps/hive
#Set the path for where zookeper config dir is
#export ZOOCFGDIR=/apps/zookeeper

修改configure-sqoop

cd /apps/sqoop/bin/
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

安装完毕,测试Sqoop连接数据库mysql

//查看mysql服务是否开启
sudo service mysql status
//未打开就开启它
sudo service mysql start
//然后我们查询Mysql中都有哪些数据库,测试Sqoop能否连接Mysql。
sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password strongs  

若显示出数据库的话,就证明安装成功了!
查看版本
sqoop version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值