Hive+Sqoop+Mysql整合 在本文中,LZ随意想到了一个场景: 车,道路,监控,摄像头 即当一辆车在道路上面行驶的时候,道路上面的监控点里面的摄像头就会对车进行数据采集。...配置文件 --配置sqoop:hive数据导入到mysql中 --注意: --export-dir /user/hive/warehouse/t_monitor_camera/ 这里的地址可以在hive...cd /root/vehicle_dir/ vi hive_to_mysql_for_vehicle export --connect jdbc:mysql://node1:3306/sqoop_db...QAZ2wsx3edc use sqoop_db; --如果有则删除 DROP TABLE IF EXISTS t_hive_to_mysql_for_vehicle; CREATE TABLE t_hive_to_mysql_for_vehicle.../hive -f /root/vehicle_dir/hive_vehicle.sql echo 'begin to inport to mysql' sqoop --options-file /root
1、导入到Hive默认数据库 [root@node1 sqoop-1.4.7]# bin/sqoop-import-all-tables --connect jdbc:mysql://node1:3306.../esdb --username root --password 123456 --hive-import --create-hive-table Warning: /opt/sqoop-1.4.7/bin...Time taken: 0.158 seconds hive> [root@node1 sqoop-1.4.7]# bin/sqoop-import-all-tables --connect jdbc...:mysql://node1:3306/esdb --username root --password 123456 --hive-import --hive-database test --create-hive-table...[root@node1 sqoop-1.4.7]# hive> use test; OK Time taken: 0.03 seconds hive> show tables; OK files logs
hdfs到MySQL csv/txt文件到hdfs MySQL到hdfs hive与hdfs的映射: drop table if exists emp; create table emp ( id...利用sqoop将数据传至hdfs sqoop import --connect jdbc:mysql://192.168.5.129:3306/hadoop.../warehouse/test.db sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password...123456 --table person --append --target-dir /user/hive/warehouse/test.db 将hdfs数据保存到MySQL 参考:http://www.cnblogs.com.../qingyunzong/p/8747656.html sqoop export --connect "jdbc:mysql://192.168.5.129/fund?
1.1hive-import参数 使用--hive-import就可以将数据导入到hive中,但是下面这个命令执行后会报错,报错信息如下: sqoop import --connect jdbc:mysql...原因是因为sqoop导数据到hive会先将数据导入到HDFS上,然后再将数据load到hive中,最后吧这个目录再删除掉。当这个目录存在的情况下,就会报错。...1.2target-dir参数来指定临时目录 为了解决上面的问题,可以把person目录删除掉,也可以使用target-dir来指定一个临时目录 sqoop import --connect jdbc:...mysql://localhost:3306/test --username root --password 123456 --table person -m 1 --hive-import --target-dir...temp 1.3hive-overwrite参数 如果上面的语句执行多次,那么会产生这个表数据的多次拷贝 1.4fields-terminated-by 当吧mysql中的数据导入到hdfs中,默认使用的分隔符是空格
使用 sqoop 将 hive 数据导入 mysql 后出现乱码: ? 进入数据库,输入 show variables like 'character%'; 回车 ?...之后再执行命令的时候在mysql数据库名后面加上?useUnicode=true&characterEncoding=utf-8就可以了。...示例:sqoop export --connect "jdbc:mysql://数据库ip:3306/数据库名称?...useUnicode=true&characterEncoding=utf-8" ... sqoop-export \ --connect "jdbc:mysql://localhost:3306/lft...characterEncoding=utf-8" \ --username root \ --password 123456 \ --table test3 \ --export-dir /user/hive
问题是这样的,从Mysql中导入数据到Hive中,Mysql中数据是"T2",到Hive中后,发现变为"54 32",咦,怎么乱码了,感觉这像ASCII编码。 ...现象有了,之前都没遇到过这样,觉得很奇怪,迅速找了下相关资料,再查看Mysql中数据库表字段是text类型。 ...如何解决: 在sqoop导入语句中加入如下的参数,其中xxx是数据库库表中的列名称,即上面出现ASCII的列名称。 List-1 --map-column-java xxx=String
Fayson的github:https://github.com/fayson/cdhproject 1.问题描述 ---- 在CDH集群中我们需要将Hive表的数据导入到RDBMS数据库中,使用Sqoop...工具可以方便的将Hive表数据抽取到RDBMS数据库中,在使用Sqoop抽取Hive Parquet表时作业执行异常。...Sqoop抽数脚本: sqoop export \ --connect jdbc:mysql://localhost:3306/test_db \ --username root \ --password...[w0z1sl65bj.jpeg] 2.解决方法 ---- 1.将Sqoop抽数脚本修改为如下: sqoop export \ --connect jdbc:mysql://ip-172-31-22...[8krr8v2ozq.jpeg] 3.查看MySQL表数据 [j96z8p9fmw.jpeg] 3.总结 ---- 目前通过Sqoop从Hive的parquet抽数到关系型数据库的时候会报kitesdk
,本文将与您一起实践以下内容: 部署Sqoop 用Sqoop将hive表数据导出至MySQL 用Sqoop将MySQL数据导入到hive表 部署 在hadoop账号的家目录下载Sqoop的1.4.7版本...by maugli on Thu Dec 21 15:59:58 STD 2017 sqoop装好之后,接下来体验其功能 MySQL准备 为了接下来的实战,需要把MySQL准备好,这里给出的MySQL...的配置供您参考: MySQL版本:5.7.29 MySQL服务器IP:192.168.50.43 MySQL服务端口:3306 账号:root 密码:123456 数据库名:sqoop 关于MySQL部署...,我这为了省事儿,是用docker部署的,参考《群晖DS218+部署mysql》 从hive导入MySQL(export) 执行以下命令,将hive的数据导入到MySQL: ....表,数据已经导入: 从MySQL导入hive(import) 在hive的命令行模式执行以下语句,新建名为address2的表结构和address一模一样: create table address2
Hadoop、Hive、MySQL安装(略) 2. 下载sqoop http://www.apache.org/dyn/closer.lua/sqoop/1.4.6 3....把MySQL java连接器的jar文件拷贝到sqoop的lib目录下 cp mysql-connector-java-5.1.38-bin.jar /home/grid/sqoop/lib/...useSSL=false --username root --password 123456 (3)将MySQL的test.t1表结构复制到Hive的test库中,表名为mysql_t1 sqoop...(4)将mysql表的数据导入到hive中 # 追加数据 sqoop import --connect jdbc:mysql://192.168.56.104:3306/test?...test.mysql_t1 注:如果MySQL中的表没有主键 ,则需要加--autoreset-to-one-mapper参数 (5)将hive表的数据导入到mysql中 sqoop export
,本文将与您一起实践以下内容: 部署Sqoop 用Sqoop将hive表数据导出至MySQL 用Sqoop将MySQL数据导入到hive表 部署 在hadoop账号的家目录下载Sqoop的1.4.7版本...by maugli on Thu Dec 21 15:59:58 STD 2017 sqoop装好之后,接下来体验其功能 MySQL准备 为了接下来的实战,需要把MySQL准备好,这里给出的MySQL...的配置供您参考: MySQL版本:5.7.29 MySQL服务器IP:192.168.50.43 MySQL服务端口:3306 账号:root 密码:123456 数据库名:sqoop 关于MySQL部署...,我这为了省事儿,是用docker部署的,参考《群晖DS218+部署mysql》 从hive导入MySQL(export) 执行以下命令,将hive的数据导入到MySQL: ....表,数据已经导入: [在这里插入图片描述] 从MySQL导入hive(import) 在hive的命令行模式执行以下语句,新建名为address2的表结构和address一模一样: create table
注意两个地方: 1.时间转换问题:timestamp、date,time 以上时间类型会被sqoop转成int,long型,无法直接转成时间类型 如果要转的有两个办法: 1)转成long型,再用from_unixtime...string 另外: 处理datetime中有null的情况 在sql connnect中加入:zeroDateTimeBehavior=convertToNull 如: --connect jdbc:mysql...zeroDateTimeBehavior=convertToNull 参考:https://avro.apache.org/docs/current/spec.html 2.浮点类型(float,double,decimal) sqoop...parquet中对应的数据类型为decimal(precision,scale),如decimal(19,3) 参考:https://archive.cloudera.com/cdh6/6.2.0/docs/sqoop
/sqoop import \ --connect jdbc:mysql://192.168.9.100:3306/test \ --username root \ --password 123456...把hive表中数据导入到MySQL表中 mysql> create table users_from_hive (id int,name varchar(10),age int,primary key.../sqoop export \ --connect jdbc:mysql://192.168.9.100:3306/test \ --username root \ --password 123456...把sqoop命令写到文件中,sqoop执行时使用这个文件来执行命令 [root@repo myshell]# vim sqoop-options-test --connect jdbc:mysql://.../sqoop import \ --options-file /root/myshell/sqoop-options-test \ --table users_from_hive [root@repo
实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓...
和Sqoop集成 以sqoop-1.4.6.bin__hadoop-2.0.4-alpha为例,支持增量导入,不但可以将数据导入到Hive中,还可以往HBase导数据,也可以将数据从DB导入到HDFS...解压,然后进入Sqoop的conf目录,完成以下修改即可: 11.1. 修改sqoop-env.sh 复制一份sqoop-env-template.sh,命名为sqoop-env.sh。...修改sqoop-site.xml 复制一份sqoop-site-template.xml,命名为sqoop-site.xml,可不做任何修改。 11.3. .../sqoop create-hive-table --connect jdbc:mysql://127.0.0.1:3306/test --username zhangsan --password zhangsan2016...' --table t_test --hive-import -m 6 --hive-table t_test_2016 --direct 注意为运行sqoop的机器授权访问MySQL,可能也需要为运行
Sqoop是一个用来将Hadoop(Hive、HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导入到...将mysql的驱动jar(mysql-connector-java-5.1.34.jar)复制到lib目录下 二、hive导入测试 sqoop ##sqoop命令... --split-by 字段名 2.导入数据到Hive 增加参数 –hive-import sqoop import --connect jdbc:mysql://...mysql并列出数据库中的表 sqoop list-tables --connect jdbc:mysql://192.168.1.93/test --username hive --password...123456 6.将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制 sqoop create-hive-table --connect jdbc:mysql
Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.问题描述 使用Sqoop抽取MySQL数据到Hive表时,...抽取语句正常执行但数据没有写入Hive的表中,执行的Sqoop抽数脚本如下: export HADOOP_USER_NAME=hive sqoop import \ --connect "jdbc:mysql...2.异常处理及分析 1.在Sqoop抽数的脚本中存在target-dir参数,指向的HDFS数据目录,为hive_hosts表的仓库目录,将target-dir参数去掉执行 ? 脚本执行成功 ?...因为在上述异常中我们指定的target-dir目录与Hive表的仓库目录一致,所以会导致Sqoop抽数成功,但对应的Hive表中无数据问题。 ?...3.总结 1.使用Sqoop抽数到Hive表,如果使用target-dir指定HDFS数据抽取目录时不能设置目标目录与hive表的仓库目录一致,否则会导致抽取的数据被Sqoop删除。
'\001' --hive-drop-import-delims -m 4 --hive-overwrite --delete-target-dir Warning: /opt/sqoop-1.4.7...'\001' --hive-drop-import-delims -m 1 --hive-overwrite --delete-target-dir Warning: /opt/sqoop-1.4.7...org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:379) at org.apache.sqoop.hive.HiveImport.executeScript...3、缺少Hive的Jar包 [root@node1 ~]# cd /opt/sqoop-1.4.7/lib/ [root@node1 lib]# ln -s /opt/hive-1.2.2/lib/hive-exec...-1.2.2.jar hive-exec-1.2.2.jar 成功执行 [root@node1 sqoop-1.4.7]# bin/sqoop import --connect jdbc:oracle:
抽取MySQL数据到Hive表时,抽取语句正常执行在数据Load到Hive表时报“Operation category READ is not supported in state standby”,执行的...Sqoop抽数脚本如下: export HADOOP_USER_NAME=hive sqoop import \ --connect "jdbc:mysql://cdh02.fayson.com:3306...test \ --hive-table hive_hosts \ --m 1 (可左右滑动) 在命令行执行上述Sqoop脚本,显示作业正常执行 ?...4.Sqoop命令验证 ---- Sqoop命令正常执行 ?...这里可以看到生成的数据文件为0,数据行数和总条数均为0,这里是一个问题可以参考Fayson前一篇文章《Sqoop抽数到Hive表异常分析》 5.总结 ---- 1.导致该异常的最终原因是由于在HDFS未启用
MySQL表导入到HDFS 导入loudacre数据库中的account表到HDFS sqoop import \ --connect jdbc:mysql://localhost/loudacre \...增量更新导入到HDFS --check-column 检查的增量更新的列 --last-value 检查的列中的上一个导入的值 sqoop...数据导入到Hive中 使用--hive-import 可将表导入到Hive中 sqoop import \ --connect jdbc:mysql://localhost/loudacre \ --username...training --password training \ --fields-terminated-by '\t' \ --table device \ --hive-import 使用avro的格式导入到...HDFS 使用--as-avrodatafile可将导入数据格式化成avro sqoop import \ --connect jdbc:mysql://localhost/loudacre \ --username
cd /apps tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 配置 进入 sqoop 的 conf 目录,复制 sqoop-env-template.sh...为 sqoop-env.sh cd /apps/sqoop-1.4.7.bin__hadoop-2.6.0/conf cp sqoop-env-template.sh sqoop-env.sh 编辑...sqoop.Sqoop: Running Sqoop version: 1.4.7 Sqoop 1.4.7 git commit id 2328971411f57f0cb683dfb79d19d4d19d185dd8...导入数据 在使用Hive前,需要在 sqoop 的根目录下创建一个 hive-exec.jar 的软连接,如下: ln -s /apps/apache-hive-2.3.2-bin/lib/hive-exec...-2.3.2.jar 向 Hive 中导入数据 # 导入数据到 hive 中 (也可以指定 Hive 中的数据库,表和使用增量导入方式) $ bin/sqoop import --connect jdbc
领取专属 10元无门槛券
手把手带您无忧上云