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: {
在本场景中,我们将探讨如何使用NiFi来实时监控MySQL数据库的binlog(二进制日志),并将其中的变更事件同步到Hive数据仓库。由于Hive的插入操作效率较低,这种方案通常不用于直接的实时写入,但可以作为数据流处理...
### DataX 数据从 Hive 导入 MySQL 数据缺失解决 #### 背景介绍 在大数据处理领域,Hive 和 MySQL 分别作为数据仓库与关系型数据库的重要组成部分,在数据流转过程中承担着关键角色。Hive 通常用于存储海量数据并...
pyflink将mysql数据直接插入hive,由此可以延伸出pyflink实现hive关联mysql
1.将Mysql中的数据迁移到Hdfs文件系统中,然后通过Hive加载HDFS文件系统中的数据值 2.将Hive中的数据迁移到指定Mysql数据库中 注意点: 1.数据迁移的过程中,由于hive的Null值存储为"\N",Mysql存储为NULL值,二者...
"yinian_hive_increase"项目专注于如何利用DataX工具高效地将MySQL中的数据同步到Hive中。DataX是阿里巴巴开源的一款强大的数据同步框架,支持多种数据源之间的数据迁移,如关系型数据库(如MySQL)与大数据存储(如...
在大数据处理领域,Apache Spark 和 Apache Hive 以及 MySQL 是三个重要的组件。Spark 提供了高效的数据处理能力,而 Hive 则是基于 Hadoop 的数据仓库工具,MySQL 是一种广泛使用的开源关系型数据库。本篇文章将...
- 在Hive中创建外部表,指定MySQL数据表的位置和模式。 - 配置Hive的连接参数,如URL、用户名、密码等,这些信息通常在Hive的配置文件`hive-site.xml`中定义。 4. **数据迁移**: 有了正确的驱动和配置后,用户...
《美团MySQL数据实时同步到Hive的架构与实践》 美团在大数据处理中面临的一个重要挑战是如何实现实时数据同步,尤其是将MySQL数据库中的数据高效、准确地同步到Hive中。为此,美团构建了一套完整的架构,既满足了...
先说说思路:1是直接从mysql输出至hive中,另外一个是先将数据搞到hdfs中,再load一下,当然这只是textfile存储格式而言,若是ORC等其他列式存储的话建议先搞一个textfile格式的中间表,再insert into table select ...
项目背景RDS的数据实时同步到HDFS下,并映射到Hive原理通过解析RDS的binlog将RDS的增量数据同步到HDFS下,并映射加载到Hive外部分区表由于RDS表中的第二个字段都为datetime字段,所以刚才以该字段作为Hive的分区字段...
【标题】"yinian_hive_increase_sqoop:sqoop从mysql同步数据到hive" 描述了一种使用Apache Sqoop工具将数据从MySQL数据库高效地导入到Hadoop的Hive数据仓库的过程。这个过程在大数据处理中至关重要,因为它允许用户...
用户可以通过页面选择数据源即可创建数据同步任务,支持RDBMS,Hive,HBase,ClickHouse,MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发...
这个流程确保了从Hive到MySQL的数据一致性,同时也提供了增量同步的能力,即只同步自上次同步以来发生变化的数据。通过sqoop工具,可以高效地完成大量数据的导入导出工作,减少了不必要的网络传输和计算资源的消耗。...
该命令将启用一个 MapReduce 任务,将 MySQL 数据库中的数据导入到 Hive 表中,并且指定了 Hive 表的分隔符为\t。 Hive 到 MySQL 的数据导入 Sqoop 也可以将 Hive 表中的数据导入到 MySQL 数据库中。例如,以下...
在本文中,我们将探讨一个具体的NIFI应用场景,即如何将从MySQL数据库中查询得到的JSON数据转换成TXT格式,并存储到HDFS(Hadoop分布式文件系统)中。这个场景在大数据处理和分析中非常常见,因为MySQL是常用的关系...
在本文中,我们将探讨如何使用NIFI实现离线同步MySQL数据库中的数据到HDFS(Hadoop分布式文件系统)中。这个过程对于大数据分析和处理至关重要,因为它允许将结构化数据集成到大数据平台中。 首先,确保你已经准备...
基于Flinkx,将mysql数据同步到Hive
一、问题发现与分析 ...经过对比:sqoop在转换MySQL的datatime字段类型为hive的string时会出现问题:默认先转为对应时间戳,再转换为北京市区时间,就会使时间多8小时。 解决办法有两个: 1、在sql里将时间字段转换为
【sqoop将MySQL数据导入Hbase2.1.6】是一项常见的大数据操作,用于整合不同数据存储系统。在这个过程中,我们需要使用Apache Sqoop工具,它是一个用于在Hadoop和传统数据库间进行数据迁移的工具。在本文中,我们将...