1.参考官网文档:http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive_2

2.sqoop可以将mysql写入hive、HDFS、hbase中

3.sqoop可以将hive、HDFS、hbase数据写入mysql中

4.发音:死谷瀑

 

安装

  1. 解压
    tar -zxvf sqoop-1.4.6.xxx.tar.gz -C /opt/bigdata
  2. 复制
    mv sqoop-1.4.6.xxx sqoop sqoop-1.4.6
  3. 配置环境
    /etc/profile
  4. 测试
    sq
  5. 配置 /conf目录
    mv sqoop-env-template.sh sqoop-env.sh(不用修改。里面都是找hadoop环境,已经有了)
  6. 拷贝
    mysql驱动包到 /lib 目录下
  7. 查看版本
    sqoop version
  8. 测试连接mysql,连接成功会显示所有库
    sqoop list-databases --connect jdbc:mysql://node01:3306 --username root --password aa123456

     

     

  9. sqoop也是一个MR

 

将mysql数据写入HDFS

语法:
sqoop import --connect jdbc:mysql://ke01:3306/test --username root --password aa123456 --as-textfile  --columns id,name  --delete-target-dir -m 1 --table info --target-dir /sqoop

运行时会启动一个MR任务
测试:HIVE中验证数据
hive> dfs -cat /sqoop/*;

1,xiaoke
2,xiaowang
3,xiaoming
4,4

  

 

将命令放入文件中

vi option2

import 
--connect 
jdbc:mysql://ke01:3306/test 
--username 
root 
--password 
aa123456 
--as-textfile  
--delete-target-dir 
-m 
1 
--target-dir 
/sqoop
-e
select * from info where id > 2 and $CONDITIONS

$CONDITIONS是sql中的1=1

执行:
sqoop --option-file option2

验证:
dfs -cat /sqoop/*

3,xiaoming
4,4

  

 

sqoop写入到hive中

参考:7.2.12. Importing Data Into Hive

vi option3

import 
--connect 
jdbc:mysql://ke01:3306/test 
--username 
root 
--password 
aa123456 
--as-textfile  
--delete-target-dir 
-m 
1 
--target-dir 
/sqoop
-e
select * from info where id > 2 and $CONDITIONS
--hive-import
--create-hive-table
--hive-table
h_info

运行:
sqoop --options-file option3


MR运行步骤: sqoop先往hdfs中写数据,在写入hive(HDFS对应hive目录)中

也可以自己指定分隔符:

--input-fields-terminated-by <char>

  

 

 

 

sqoop写入到HBase中

需要找到对应的sqoop版本和hbase版本,否则报错

参考:7.2.13. Importing Data Into HBase

 

 

将hive(hdfs)数据导入mysql

1.当数据是map、数组格式会把这个列当做一个字符串存入mysql

vi option4

export
--connect
jdbc:mysql://ke01:3306/test
--username
root
--password
aa123456
--columns
id,name,hobby,address
--export-dir
/user/hive_ke/warehouse/psn1
-m
1
--table
test

运行:
sqoop --options-file option4

 

 

如果目录/user/hive_ke/warehouse/psn1 是HDFS有分隔符则使用
--input-fields-terminated-by

  

 

 

posted on 2021-01-16 13:16  陕西小楞娃  阅读(177)  评论(0)    收藏  举报