使用 sqoop 将mysql数据导入到hive表(import)
Sqoop将mysql数据导入到hive表中
先在mysql创建表
CREATE TABLE `sqoop_test` ( `id` int(11) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `age` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1
插入数据
1 fz 13 3 dx 18 2 test 13 4 test_add 15 5 test_add-1 18 6 test_add_2 19
在hive中创建表,表结构和mysql中一样
hive> create external table sqoop_test_table(id int,name string,age int) > ROW FORMAT DELIMITED > FIELDS TERMINATED BY ',' > STORED AS TEXTFILE; OK Time taken: 0.083 seconds
开始导入
sqoop import --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_test
--hive-import --hive-overwrite --hive-table sqoop_test_table --fields-terminated-by ',' -m 1
EFdeMacBook-Pro:jarfile FengZhen$ sqoop import --connect jdbc:mysql://localhost:3306/sqooptest --username root --password 123qwe --table sqoop_test --hive-import --hive-overwrite --hive-table sqoop_test_table --fields-terminated-by ',' -m 1 Warning: /Users/FengZhen/Desktop/Hadoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hcatalog does not exist! HCatalog jobs will fail. Please set $HCAT_HOME to the root of your HCatalog installation. Warning: /Users/FengZhen/Desktop/Hadoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/Users/FengZhen/Desktop/Hadoop/hadoop-2.8.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/Users/FengZhen/Desktop/Hadoop/hbase-1.3.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 17/09/15 09:33:42 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6 17/09/15 09:33:42 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 17/09/15 09:33:42 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. 17/09/15 09:33:42 INFO tool.CodeGenTool: Beginning code generation 17/09/15 09:33:43 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `sqoop_test` AS t LIMIT 1 17/09/15 09:33:43 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `sqoop_test` AS t LIMIT 1 17/09/15 09:33:43 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /Users/FengZhen/Desktop/Hadoop/hadoop-2.8.0 17/09/15 09:33:48 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-FengZhen/compile/241f28a04b0ece18cd4a07bd6939d50a/sqoop_test.jar 17/09/15 09:33:48 WARN manager.MySQLManager: It looks like you are importing from mysql. 17/09/15 09:33:48 WARN manager.MySQLManager: This transfer can be faster! Use the --direct 17/09/15 09:33:48 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path. 17/09/15 09:33:48 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql) 17/09/15 09:33:48 INFO mapreduce.ImportJobBase: Beginning import of sqoop_test 17/09/15 09:33:48 INFO Configuration.deprecation: mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address 17/09/15 09:33:49 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 17/09/15 09:33:49 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 17/09/15 09:33:50 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 17/09/15 09:33:50 INFO client.RMProxy: Connecting to ResourceManager at localhost/127.0.0.1:8032 17/09/15 09:33:52 INFO db.DBInputFormat: Using read commited transaction isolation 17/09/15 09:33:52 INFO mapreduce.JobSubmitter: number of splits:1 17/09/15 09:33:52 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1505439184374_0001 17/09/15 09:33:53 INFO impl.YarnClientImpl: Submitted application application_1505439184374_0001 17/09/15 09:33:53 INFO mapreduce.Job: The url to track the job: http://192.168.1.64:8088/proxy/application_1505439184374_0001/ 17/09/15 09:33:53 INFO mapreduce.Job: Running job: job_1505439184374_0001 17/09/15 09:34:04 INFO mapreduce.Job: Job job_1505439184374_0001 running in uber mode : false 17/09/15 09:34:04 INFO mapreduce.Job: map 0% reduce 0% 17/09/15 09:34:11 INFO mapreduce.Job: map 100% reduce 0% 17/09/15 09:34:11 INFO mapreduce.Job: Job job_1505439184374_0001 completed successfully 17/09/15 09:34:12 INFO mapreduce.Job: Counters: 30 File System Counters FILE: Number of bytes read=0 FILE: Number of bytes written=156812 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of bytes read=87 HDFS: Number of bytes written=72 HDFS: Number of read operations=4 HDFS: Number of large read operations=0 HDFS: Number of write operations=2 Job Counters Launched map tasks=1 Other local map tasks=1 Total time spent by all maps in occupied slots (ms)=4657 Total time spent by all reduces in occupied slots (ms)=0 Total time spent by all map tasks (ms)=4657 Total vcore-milliseconds taken by all map tasks=4657 Total megabyte-milliseconds taken by all map tasks=4768768 Map-Reduce Framework Map input records=6 Map output records=6 Input split bytes=87 Spilled Records=0 Failed Shuffles=0 Merged Map outputs=0 GC time elapsed (ms)=40 CPU time spent (ms)=0 Physical memory (bytes) snapshot=0 Virtual memory (bytes) snapshot=0 Total committed heap usage (bytes)=154140672 File Input Format Counters Bytes Read=0 File Output Format Counters Bytes Written=72 17/09/15 09:34:12 INFO mapreduce.ImportJobBase: Transferred 72 bytes in 22.0614 seconds (3.2636 bytes/sec) 17/09/15 09:34:12 INFO mapreduce.ImportJobBase: Retrieved 6 records. 17/09/15 09:34:12 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `sqoop_test` AS t LIMIT 1 17/09/15 09:34:12 INFO hive.HiveImport: Loading uploaded data into Hive 17/09/15 09:34:19 INFO hive.HiveImport: SLF4J: Class path contains multiple SLF4J bindings. 17/09/15 09:34:19 INFO hive.HiveImport: SLF4J: Found binding in [jar:file:/Users/FengZhen/Desktop/Hadoop/hadoop-2.8.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] 17/09/15 09:34:19 INFO hive.HiveImport: SLF4J: Found binding in [jar:file:/Users/FengZhen/Desktop/Hadoop/hbase-1.3.0/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] 17/09/15 09:34:19 INFO hive.HiveImport: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 17/09/15 09:34:19 INFO hive.HiveImport: SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] 17/09/15 09:34:20 INFO hive.HiveImport: 17/09/15 09:34:20 WARN conf.HiveConf: HiveConf of name hive.metastore.local does not exist 17/09/15 09:34:20 INFO hive.HiveImport: 17/09/15 09:34:20 INFO hive.HiveImport: Logging initialized using configuration in file:/Users/FengZhen/Desktop/Hadoop/hive/apache-hive-1.2.2-bin/conf/hive-log4j.properties 17/09/15 09:34:31 INFO hive.HiveImport: OK 17/09/15 09:34:31 INFO hive.HiveImport: Time taken: 1.502 seconds 17/09/15 09:34:31 INFO hive.HiveImport: Loading data to table default.sqoop_test_table 17/09/15 09:34:31 INFO hive.HiveImport: Table default.sqoop_test_table stats: [numFiles=1, numRows=0, totalSize=72, rawDataSize=0] 17/09/15 09:34:31 INFO hive.HiveImport: OK 17/09/15 09:34:31 INFO hive.HiveImport: Time taken: 0.762 seconds 17/09/15 09:34:32 INFO hive.HiveImport: Hive import complete. 17/09/15 09:34:32 INFO hive.HiveImport: Export directory is contains the _SUCCESS file only, removing the directory.
导入成功后,会在hdfs中产生数据文件
在路径 /user/hive/warehouse/sqoop_test_table 下
EFdeMacBook-Pro:jarfile FengZhen$ hadoop fs -ls /user/hive/warehouse/sqoop_test_table Found 1 items -rwxr-xr-x 1 FengZhen supergroup 72 2017-09-15 09:34 /user/hive/warehouse/sqoop_test_table/part-m-00000 EFdeMacBook-Pro:jarfile FengZhen$ hadoop fs -text /user/hive/warehouse/sqoop_test_table/part-m-00000 1,fz,13 3,dx,18 2,test,13 4,test_add,15 5,test_add-1,18 6,test_add_2,19
hive中查看表数据
hive> select * from sqoop_test_table; OK 1 fz 13 3 dx 18 2 test 13 4 test_add 15 5 test_add-1 18 6 test_add_2 19 Time taken: 0.507 seconds, Fetched: 6 row(s)
完成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示