我是靠谱客的博主 柔弱口红,最近开发中收集的这篇文章主要介绍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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复