[英]Import from MySQL to Hive using Sqoop
我必須通過Sqoop從MySQL表(具有復合主鍵)中導入> 4億行到PARTITIONED Hive表Hive中。 該表包含兩年的數據,列的離開日期為20120605至20140605,一天的數千條記錄。 我需要根據出發日期對數據進行分區。
版本:
Apache Hadoop-1.0.4
Apache Hive-0.9.0
Apache Sqoop-sqoop-1.4.2.bin__hadoop-1.0.0
據我所知,有3種方法:
MySQL->未分區的Hive表-> ALTER未分區的Hive表添加PARTITION
是我目前正在經歷的痛苦
我讀到對此的支持是在Hive和Sqoop的更高版本中添加的,但找不到示例
該語法要求將分區指定為鍵值對-在數百萬條記錄中無法想到所有分區鍵值對的情況下不可行3。
誰能提供方法2和方法3的輸入?
我想您可以創建一個配置單元分區表。
然后為其編寫sqoop導入代碼。
例如:
sqoop import --hive-overwrite --hive-drop-import-delims --warehouse-dir“ / warehouse” --hive-table \\ --connect jdbc <mysql path> / DATABASE = xxxx \\ --table --username xxxx --password xxxx --num-mappers 1 --hive-partition-key --hive-partition-value --hive-import \\ --fields終止於','--lines終止於'\\ n'
您必須先創建分區表結構,然后才能將數據移動到表中。 進行sqoop時,無需指定--hive-partition-key和--hive-partition-value,請使用--hcatalog-table而不是--hive-table。
馬努
如果這仍然是人們想要了解的東西,他們可以使用
sqoop import --driver <driver name> --connect <connection url> --username <user name> -P --table employee --num-mappers <numeral> --warehouse-dir <hdfs dir> --hive-import --hive-table table_name --hive-partition-key departure_date --hive-partition-value $departure_date
補丁說明:
sqoop import [all other normal command line options] --hive-partition-key ds --hive-partition-value "value"
一些限制:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.