我是靠谱客的博主 柔弱口红,最近开发中收集的这篇文章主要介绍Hadoop sqoop概念安装sql->hdfssql->hive按需导入hdfs->sqlhive->sql,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概念

联通数据库(mysql,oracle等)和hadoop数据仓库(hdfs,hive,hbase)
将导入或导出命令翻译成mapreduce程序来实现

安装

1.需要hadoop环境
2.修改配置文件

sqoop-env.sh

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/ 
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HIVE_HOME=/home/hadoop/apps/hive-1.2.1

3.加入jdbc jar包
cp ~/app/hive/lib/mysql-connector-java-5.1.28.jar $SQOOP_HOME/lib/

sql->hdfs

bin/sqoop import 
--connect jdbc:mysql://ip01:3306/test 
--username root 
--password root 
--target-dir /sqoop   # hdfs的目录
--fields-terminated-by ‘01’   # 分隔符
--table emp # 表名
--split-by id #使用id字段 划分map任务
--m 1 # maptask个数

如果设置了 --m 1,则意味着只会启动一个maptask执行数据导入
如果不设置 --m 1,则默认为启动4个map task执行数据导入,则需要指定一个列来作为划分map task任务的依据

sql->hive

bin/sqoop import 
--connect jdbc:mysql://ip01:3306/test 
--username root 
--password root 
--target-dir /sqoop   # hdfs的目录
--hive-import 
--fields-terminated-by ‘01’   # 分隔符
--table emp # 表名
--split-by id #使用id字段 划分map任务
--m 1 # maptask个数

按需导入

bin/sqoop import 
--connect jdbc:mysql://ip1:3306/test 
--username root 
--password root 
--target-dir /wherequery2 
--query 'select id,name,deg from emp WHERE id>1207 and $CONDITIONS'   # $CONDITIONS是固定的
--split-by id 
--fields-terminated-by 't' 
--m 2

hdfs->sql

bin/sqoop export 
--connect jdbc:mysql://ip1:3306/test 
--username root 
--password root 
--table emp 
--export-dir /user/hadoop/emp/

hive->sql

bin/sqoop export 
--connect jdbc:mysql://ip1:3306/test 
--username root 
--password root 
--fields-terminated-by 't' 
--table emp 
--export-dir /user/hive/warehouse/t # 直接输入hive在hdfs中的文件
--m 1

最后

以上就是柔弱口红为你收集整理的Hadoop sqoop概念安装sql->hdfssql->hive按需导入hdfs->sqlhive->sql的全部内容,希望文章能够帮你解决Hadoop sqoop概念安装sql->hdfssql->hive按需导入hdfs->sqlhive->sql所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部