linux中sqoop部署以及实现mysql数据导入hive

30 篇文章 9 订阅
15 篇文章 0 订阅
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。
下面我们进一步了解Sqoop安装部署过程,以及如何从Mysql数据库导入数据到hive。

一.前期准备

1.1 Hadoop

版本:Hadoop 2.6.5

1.2 Mysql

版本:5.6.33 MySQL Community Server (GPL)

1.3 Mysql驱动包

版本:mysql-connector-java-5.1.40-bin.jar

1.4 Hive

版本:apache-hive-2.1.1-bin
安装:《Hive安装和部署详解

1.5 Sqoop安装包

版本:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

二.Sqoop安装部署

2.1 Sqoop部署

#定位
cd /opt/software
#解压
tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 
#复制sqoop到/usr/local/sqoop
cp -r sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/sqoop

2.2 Mysql驱动包

把1.3中的mysql驱动包放置到$SQOOP_HOME\lib目录

三.Sqoop配置

3.1 Sqoop环境变量配置

vi /etc/profile
#sqoop
export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
#重新编译profile
source /etc/profile

3.2 sqoop-env.sh配置

#定位
cd /usr/local/sqoop/conf
#创建sqoop-env.sh文件
cp -r sqoop-env-template.sh sqoop-env.sh
#配置sqoop-env.sh
vi sqoop-env.sh
---------------------------------------------------------------
# Set Hadoop-specific environment variables here.

#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/usr/local/hadoop

#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/usr/local/hadoop

#set the path to where bin/hbase is available
#export HBASE_HOME=

#Set the path to where bin/hive is available
export HIVE_HOME=/usr/local/hive

#Set the path for where zookeper config dir is
注意:根据实际路径配置HADOOP_COMMON_HOME,HADOOP_MAPRED_HOME,HIVE_HOME

3.3 sqoop-site.xml配置

#创建sqoop-site.xml
cp -r sqoop-site-template.xml sqoop-site.xml 

四.Mysql数据导入Hive

4.1 启动dfs+yarn

#定位
cd /usr/local/hadoop
#启动dfs+hive
sbin/start-all.sh

4.2 测试Sqoop

sqoop help
Available commands:
  codegen            Generate code to interact with database records
  create-hive-table  Import a table definition into Hive
  eval               Evaluate a SQL statement and display the results
  export             Export an HDFS directory to a database table
  help               List available commands
  import             Import a table from a database to HDFS
  import-all-tables  Import tables from a database to HDFS
  import-mainframe   Import datasets from a mainframe server to HDFS
  job                Work with saved jobs
  list-databases     List available databases on a server
  list-tables        List available tables in a database
  merge              Merge results of incremental imports
  metastore          Run a standalone Sqoop metastore
  version            Display version information


4.3 Mysql数据导入Hive测试

4.3.1 Mysql数据库新建表
新建表T_USER,并插入测试数据

4.3.2 Hive中新建表,并制定存放HDFS目录
create table IF NOT EXISTS T_USER
(
  id      BIGINT COMMENT 'id',
  name      STRING COMMENT 'name',
  password      STRING COMMENT 'password'
 
) COMMENT 'T_USER'
ROW format delimited fields terminated BY '\001' LOCATION '/usr/hive/warehouse/hivetest.t_user';
4.3.3 Sqoop中查看Mysql数据库
sqoop list-databases  --connect jdbc:mysql://192.168.32.128:3306/ --username root --password root

4.3.4 Sqoop中查看Mysql数据库表
sqoop list-tables  --connect jdbc:mysql://192.168.32.128:3306/hive --username root --password root

4.3.5 Sqoop导入Mysql数据到Hive
sqoop import -m 1 --connect jdbc:mysql://192.168.32.128:3306/hive --username  root --password root --table t_user --hive-import --hive-overwrite --hive-table hivetest.t_user --hive-drop-import-delims

4.3.6 查看Mysql导入的数据
4.3.6.1 hive中查看

对比:与Mysql中表T_USER数据一致。
4.3.6.2 hadoop中查看

至此,以上为本文所有内容。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值