Oozie配合Hive、Sqoop定时导出Hive表数据至RDB

Oozie配合HiveSqoop完成定时导出Hive表数据至RDB

一、整体流程 

Oozie定时启动Hive程序,将Hive表数据根据需求导出至HDFS,而后启动Sqoop,将HDFS数据导入至RDB目标表。

二、HQL数据导出语句(需根据具体需求再行修改)

 略过

三、Sqoop导入数据至RDB

sqoop export --connect jdbc:mysql://moma03:3306/test --username hive --password password --table table --export-dir dir --input-fields-terminated-by '\001'

因所用hive版本过低,无法指定导出数据的column分隔符,只能使用其默认分隔符\x01,所以在使用Sqoop导数据时,需指定--input-fields-terminated-by '\001'

另:在使用load数据至hive表时,如使用默认分隔符,需指定为 \x01而不是 \001

四、注意事项

首先要将HiveMeta数据将Derby修改为Mysql。在这个过程中,需要特别注意配置等host地址需为远程地址,而不是localhost等,因为Oozie会在不定的节点上启动Hive任务,如果host地址不正确,将出现项目时而成功时而失败的现象。

OozieSqoop的执行命令有多种写法,其一较为常见的是将命令传入command标签和标签,如下

     import  --connect jdbc:hsqldb:file:db.hsqldb --table TT --target-dir hdfs://localhost:8020/user/tucu/foo -m 1     

import            
--connect           
jdbc:hsqldb:file:db.hsqldb     
…………………………
 
  

五、xml


	
	
		
			${jobTracker}
			${nameNode}
			/biginsights/oozie/sharedLibraries/hive/conf/hive-site.xml
			
				
					mapred.compress.map.output
					true
				
				
					mapred.job.queue.name
					${queueName}
				
				
					oozie.hive.defaults
					/biginsights/oozie/sharedLibraries/hive/hive-default.xml
					
				
			
			
			SCRIPT=${script1}
		
		
		
	
	
		 
            
            
        
		
		
	
	
		
			${jobTracker}
			${nameNode}
			/biginsights/oozie/sharedLibraries/hive/conf/hive-site.xml
			
				
					mapred.compress.map.output
					true
				
				
					mapred.job.queue.name
					${queueName}
				
				
					oozie.hive.defaults
					/biginsights/oozie/sharedLibraries/hive/hive-default.xml
					
				
			
			
			SCRIPT=${script}
		
		
		
	
	
		
			${jobTracker}
			${nameNode}
			
			
				
					mapred.compress.map.output
					true
				
				
					mapred.job.queue.name
					${queueName}
				
				
					oozie.hive.defaults
					/biginsights/oozie/sharedLibraries/hive/hive-default.xml
					
				
			
			export
			--connect
			${connect}
			--username
			${username}
			--password
			${password}
			--input-fields-terminated-by
			\001
			--table 
			${table}
			--export-dir 
			/user/hive/warehouse/moma.db/t_mart_airqualitystatisticstemp
		
		
		
	
	
		hive failed, error
			message[${wf:errorMessage(wf:lastErrorNode())}]
	
	


 
  


coordinator.xml



        
        
            ${workflowAppUri}
            
                
                    jobTracker
                    ${jobTracker}
                
                
                    nameNode
                    ${nameNode}
                
                
                    queueName
                    ${queueName}
                
            
        
    


 

你可能感兴趣的:(大数据,oozie)