杭州seo建站,深圳网站定制深圳网站建设公司,一个域名可以做两个网站么,网址导航下载到桌面sqoop
1#xff09;概述
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
导入数据#xff1a;MySQL#xff0c;Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统#xff1b;
导出数据#xff1a;从Hadoop的文件系统中导出数据到关系数…sqoop
1概述
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
导入数据MySQLOracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统
导出数据从Hadoop的文件系统中导出数据到关系数据库mysql等2工作机制
将导入或导出命令翻译成mapreduce程序来实现在翻译出的mapreduce中主要对inputformat 和outputformat进行定制
3sqoop安装
1.前提有hadoop与jdk
下载官网
2.修改配置文件
改名字
cd $SQOOP_HOME/conf
mv sqoop-env-template.sh sqoop-env.sh在sqoop-env.sh中添加
export HADOOP_COMMON_HOME/uer/local/chun/hadoop-2.7.7/
export HADOOP_MAPRED_HOME/uer/local/chun/hadoop-2.7.7/
export HIVE_HOME/usr/local/hive把jdbc驱动包加入到lib下注意驱动版本向下兼容
4启动验证
cd $SQOOP_HOME/bin
sqoop-version预期的输出
sqoop-version
Warning: /usr/local/sqoop-1.4.6/../hcatalog does not exist! HCatalog jobs will fail.
Please set $HCAT_HOME to the root of your HCatalog installation.
Warning: /usr/local/sqoop-1.4.6/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
19/08/27 21:08:58 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
Sqoop 1.4.6
git commit id c0c5a81723759fa575844a0a1eae8f510fa32c25
Compiled by root on Mon Apr 27 14:38:36 CST 2015无法找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty
因为hbase和hadoop版本有点不兼容咱们没出现什么错误就咱们不更换我这里hbase是2.1.5换到2.0.6就可以。
5验证sqoop到mysql业务库之间的连通性 sqoop-list-databases --connect jdbc:mysql://localhost:3306 --username root --password adminsqoop-list-tables --connect jdbc:mysql://localhost:3306/test --username root --password admin6Sqoop的数据导入
“导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件的文本数据或者Avro、sequence文件等二进制数据
1。从mysql导出到hdfs
bin/sqoop import \ //sqoop命令表导入
--connect jdbc:mysql://localhost:3306/hive \
//告诉jdbc连接mysql的url连接MySQL使用的库
--username root \ //连接mysql的用户名
--password admin \ //连接mysql的密码
--target-dir \ //目标的目录
/sqooptest \
--fields-terminated-by ‘,’ \ //指定输出文件中的字段分隔符
--table emp \ //你要导的表
--split-by id \ //如果你的map指定的个数大于1那就必须指定一个字段
--m 1 //指定的maptask\可以转到下一行继续写
可以查看导出的数据 cat查看part-m-*
hdfs dfs -cat /mysql/import1/part-m-*
dake 22 failedman
dake 23 goodman
chun3 25 failedman
chun1 24 successfulman
chun2 23 goodman2.导入关系表到HIVE
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table emp --hive-import --split-by id --m 13.导入表数据子集
bin/sqoop import \
--connect jdbc:mysql://localhost:3306/test \
--username root \
--password admin \
--where city sec-bad \
--target-dir /wherequery \
--table emp_add \--m 1