1. 下载sqoop
地址为:http://archive.cloudera.com/cdh/3/下载相应版本,如sqoop-1.2.0-CDH3B4.tar.gz
2. 下载 hadoop
地址为:http://archive.cloudera.com/cdh/3/,版本可以为hadoop-0.20.2-CDH3B4.tar.gz
3.解压 sqoop-1.2.0-CDH3B4.tar.gz ,hadoop-0.20.2-CDH3B4.tar.gz 到某目录如/home/hadoop/,解压后的目录为
A:/home/hadoop/ sqoop-1.2.0-CDH3B4.tar
B:/home/hadoop/ hadoop-0.20.2-CDH3B4
4.复制B里hadoop-core-0.20.2-CDH3B4.jar到sqoop(A)的lib下
5. sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以需要下载mysql-connector-java-*.jar到sqoop(A)的lib下
6.修改configure-sqoop
注释掉hbase zookeeper检查:
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Error: $HBASE_HOME does not exist!"
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
# exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo "Error: $ZOOKEEPER_HOME does not exist!"
# echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.'
# exit 1
#fi
7.运行:
设置表的访问权限:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hadoop_test'@'%' WITH GRANT OPTION,
此命令的含义是把mysql下的hadoop_test的访问权限为任意IP,如果需要设置特定IP访问,则把%换成具体IP,如
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hadoop_test'@'10.6.42.101' WITH GRANT
列出mysql所有的表:
./sqoop list-tables --connect jdbc:mysql://10.6.42.101:3306/test --username hadoop_test --password 123456
导入mysql表到hive:
./sqoop import --connect jdbc:mysql://10.6.42.101:3306/test --username hadoop_test --password 123456 --table mytest--hive-import
导入需要表里有主建,还要注意不要使用127.0.0.1,因为map出去不一定在哪个节点执行。
如果曾经执行失败过,那再执行的时候,会有错误提示:
ERROR tool.ImportTool: Encountered IOException running import job: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory xxx already exists
执行 $HADOOP_HOME/bin/hadoop fs -rmr xxx 即可
上面是如何把数据的数据导入到hdfs中,下面演示如何把hdfs中的数据导入到mysql
如果新的服务器上有数据库和相应的表,则不需要新建,否则要先新建数据库及相应的表
因为数据是从所有的datanode上获取并导入到mysql中,所以mysql需要设置允许所有ip客户端访问,如上面设置
同时表里面不能有跟导入的数据id相同的记录,否则会报错
./sqoop export --connect jdbc:mysql://10.6.42.101/test --export-dir /user/hive/warehouse/mytest --username hadoop_test --table mytest
红色字体是hdfs上面的路径,不是本地路径
8.验证:
bin/hive
show tables;多了一个表
9.经验:
sqoop做了一些mysqldump时的map reduce,所以速度会比单纯的dump后load快。
分享到:
相关推荐
{ job: { setting: { speed: { channel: 1 }, errorLimit: { record: 0, percentage: 0.02 } }, content: [ { reader: {
datax数据从hive表导入mysql表,数据缺失解决
pyflink将mysql数据直接插入hive,由此可以延伸出pyflink实现hive关联mysql
yinian_hive_increase datax从mysql同步数据到hive
先说说思路:1是直接从mysql输出至hive中,另外一个是先将数据搞到hdfs中,再load一下,当然这只是textfile存储格式而言,若是ORC等其他列式存储的话建议先搞一个textfile格式的中间表,再insert into table select ...
8、NIFI综合应用场景-NiFi监控MySQL binlog进行实时同步到hive 网址:https://blog.csdn.net/chenwewi520feng/article/details/130620988 本文旨在介绍通过实时监控mysql的binlog实现数据的实时同步至hive中。但由于...
项目背景RDS的数据实时同步到HDFS下,并映射到Hive原理通过解析RDS的binlog将RDS的增量数据同步到HDFS下,并映射加载到Hive外部分区表由于RDS表中的第二个字段都为datetime字段,所以刚才以该字段作为Hive的分区字段...
yinian_hive_increase_sqoop sqoop从mysql同步数据到hive
本文是在6、NIFI综合应用场景-离线同步Mysql数据到HDFS中基础上完成的,仅仅是将上文中的json数据转成txt文件。本文仅列出了和该示例增加的部分,其他的则没有变化。 本文前置条件是mysql、hadoop、nifi、hive和hue...
9 美团 MySQL 数据实时同步到 Hive 的架构与实践.docx
简单的spark加载HIVE MYSQL 数据,以及简单的进行往mysql,hive写入数据
6、NIFI应用场景-离线同步Mysql数据到HDFS中 网址:https://blog.csdn.net/chenwewi520feng/article/details/130619480 本文旨在说明将mysql数据同步至HDFS中,并进行验证。阅读本文前最好是阅读本系列的前面文章...
数据同步Sqoop用法之mysql与Hive导入导出.docx
基于Flinkx,将mysql数据同步到Hive
最近在将数据从Mysql 等其他关系型数据库 抽取到Hive 表中时,需要同步mysql表中的注释,以下脚本可以生成hive表字段注释修改语句。 注:其他关系型数据库如:oracle 可以通过相同的思路,读取元数据,修改脚本语法...
配置列表若存在,取得最后一次同步的分区名保存到export_pt取到需要导出的分区到folder变量图一情况二:从hdfs://edi/edi_conf中没有取
基于oracle或者mysql生成自动建表同步源数据表结构及注释
本来将数据导入到hive,但是不知道什么原因太慢了,一小时200条数据,优化一波kettle,还是成效不大,因此改为借用hadoop file output 到hdfs,然后再load 到hive表里 一,正文 1.在转换里拖入big data/hadoop ...
如何准确、高效地把MySQL数据同步到Hive中?一般常用的解决方案是批量取数并Load:直连MySQL去Select表中的数据,然后存到本地文件作为中间存储,最后把文件Load到Hive表中。这种方案的优点是实现简单,但是随着业务...
9、NIFI综合应用场景-通过NIFI配置kafka的数据同步 网址:https://blog.csdn.net/chenwewi520feng/article/details/130622776 本文旨在介绍nifi与kafka的交互过程,即生产数据到kafka中,然后通过nifi消费kafka中的...