2017-02-17 4 views
0

Так что я пытался импортировать таблицу из Oracle в Hive, используя Sqoop. Вот мой запросSqoop job get Stuck при импорте данных из Oracle в Hive

sqoop-import --hive-import --connect jdbc:oracle:thin:@10.35.10.180:1521:dms 
--table DEFECT 
--hive-database inspex 
--username INSPEX 
--password inspex 

Пряжа, кажется, разделяет работу на 4 части.

17/02/17 15:15:17 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.9.1 
17/02/17 15:15:17 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 
17/02/17 15:15:17 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override 
17/02/17 15:15:17 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc. 
17/02/17 15:15:18 INFO oracle.OraOopManagerFactory: Data Connector for Oracle and Hadoop is disabled. 
17/02/17 15:15:18 INFO manager.SqlManager: Using default fetchSize of 1000 
17/02/17 15:15:18 INFO tool.CodeGenTool: Beginning code generation 
17/02/17 15:15:18 INFO manager.OracleManager: Time zone has been set to GMT 
17/02/17 15:15:18 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM "DEFECT" t WHERE 1=0 
17/02/17 15:15:18 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce 
Note: /tmp/sqoop-root/compile/72422bf2a67c745893ae440ad77e3049/DEFECT.java uses or overrides a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
17/02/17 15:15:20 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-root/compile/72422bf2a67c745893ae440ad77e3049/DEFECT.jar 
17/02/17 15:15:20 INFO manager.OracleManager: Time zone has been set to GMT 
17/02/17 15:15:20 INFO manager.OracleManager: Time zone has been set to GMT 
17/02/17 15:15:20 INFO mapreduce.ImportJobBase: Beginning import of DEFECT 
17/02/17 15:15:20 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
17/02/17 15:15:20 INFO manager.OracleManager: Time zone has been set to GMT 
17/02/17 15:15:21 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
17/02/17 15:15:21 INFO client.RMProxy: Connecting to ResourceManager at vn1.localdomain/10.35.10.17:8032 
17/02/17 15:15:23 INFO db.DBInputFormat: Using read commited transaction isolation 
17/02/17 15:15:23 INFO db.DataDrivenDBInputFormat: BoundingValsQuery: SELECT MIN("DEFECT_INDEX"), MAX("DEFECT_INDEX") FROM "DEFECT" 
17/02/17 15:15:45 INFO mapreduce.JobSubmitter: number of splits:4 
17/02/17 15:15:45 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1487360998088_0003 
17/02/17 15:15:45 INFO impl.YarnClientImpl: Submitted application application_1487360998088_0003 
17/02/17 15:15:45 INFO mapreduce.Job: The url to track the job: http://vn1.localdomain:8088/proxy/application_1487360998088_0003/ 
17/02/17 15:15:45 INFO mapreduce.Job: Running job: job_1487360998088_0003 
17/02/17 15:15:51 INFO mapreduce.Job: Job job_1487360998088_0003 running in uber mode : false 
17/02/17 15:15:51 INFO mapreduce.Job: map 0% reduce 0% 
17/02/17 15:15:57 INFO mapreduce.Job: map 50% reduce 0% 
17/02/17 15:16:35 INFO mapreduce.Job: map 75% reduce 0% 

Тогда он застрял на 75% и бежит навсегда. Я замечаю, что 3 из 4 рабочих мест закончены довольно быстро. За исключением одного: enter image description here

Кажется, что эта работа не имеет никакого прогресса и просто остается на уровне 0%. Я проверил syslog:

2017-02-17 15:15:53,795 INFO [main] org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties 
2017-02-17 15:15:53,851 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s). 
2017-02-17 15:15:53,851 INFO [main] org.apache.hadoop.metrics2.impl.MetricsSystemImpl: MapTask metrics system started 
2017-02-17 15:15:53,859 INFO [main] org.apache.hadoop.mapred.YarnChild: Executing with tokens: 
2017-02-17 15:15:53,859 INFO [main] org.apache.hadoop.mapred.YarnChild: Kind: mapreduce.job, Service: job_1487360998088_0003, Ident: ([email protected]480ec1) 
2017-02-17 15:15:53,948 INFO [main] org.apache.hadoop.mapred.YarnChild: Sleeping for 0ms before retrying again. Got null now. 
2017-02-17 15:15:54,426 INFO [main] org.apache.hadoop.mapred.YarnChild: mapreduce.cluster.local.dir for child: /yarn/nm/usercache/root/appcache/application_1487360998088_0003 
2017-02-17 15:15:55,409 INFO [main] org.apache.hadoop.conf.Configuration.deprecation: session.id is deprecated. Instead, use dfs.metrics.session-id 
2017-02-17 15:15:55,813 INFO [main] org.apache.hadoop.mapreduce.lib.output.FileOutputCommitter: File Output Committer Algorithm version is 1 
2017-02-17 15:15:55,822 INFO [main] org.apache.hadoop.mapred.Task: Using ResourceCalculatorProcessTree : [ ] 
2017-02-17 15:15:56,278 INFO [main] org.apache.sqoop.mapreduce.db.DBInputFormat: Using read commited transaction isolation 
2017-02-17 15:15:56,411 INFO [main] org.apache.hadoop.mapred.MapTask: Processing split: "DEFECT_INDEX" >= 1 AND "DEFECT_INDEX" < 545225318 
2017-02-17 15:15:56,491 INFO [main] org.apache.sqoop.mapreduce.db.OracleDBRecordReader: Time zone has been set to GMT 
2017-02-17 15:15:56,564 INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Working on split: "DEFECT_INDEX" >= 1 AND "DEFECT_INDEX" < 545225318 
2017-02-17 15:15:56,610 INFO [main] org.apache.sqoop.mapreduce.db.DBRecordReader: Executing query: SELECT "DEFECT_INDEX", "LAYER_SCAN_INDEX", "DEFECT_SITE_ID", "CLUSTER_ID", "CARRY_OVER", "VERIFIED_ADDER", "REPEATING_DEFECT", "TEST_NUMBER", "X_DIE_COORDINATE", "Y_DIE_COORDINATE", "X_COORDINATE", "Y_COORDINATE", "X_DEFECT_SIZE", "Y_DEFECT_SIZE", "D_SIZE", "INSPECT_INTENSITY", "PATTERN_ID", "SURFACE", "ANGLE", "HOT_SPOT", "ASPECT_RATIO", "GRAY_SCALE", "MACROSIGID", "REGIONID", "SEMREVSAMPLE", "POLARITY", "DBGROUP", "CAREAREAGROUPCODE", "VENNID", "SEGMENTID", "MDAT_OFFSET", "DESIGNFILEFLOORPLANID", "DBSCRITICALITYINDEX", "CELLSIZE", "PCI", "LINECOMPLEXITY", "DCIRANGE", "GDSX", "GDSY" FROM "DEFECT" WHERE ("DEFECT_INDEX" >= 1) AND ("DEFECT_INDEX" < 545225318) 

Журнал заканчивается при запуске запроса. Я жду 10 часов и до сих пор не обновляется. Который не должен быть прав, потому что это не так уж и больно.

В журнале не было ошибок. До этого я успешно импортировал несколько таблиц из oracle в hive. Поэтому я думаю, что моя конфигурация в порядке.

Я попытался установить mapper от 1 до 100 и все еще не работал. И я замечаю, что задача, которую PK начинается с 1 ~ somenumber, всегда показывает 0% прогресса, а другая работает просто отлично.

Я ищу любые предложения или помощь. Благодарю.

+0

Привет @Jesse, вы убедились, что вы «поддерживаете соединение живым» от Oracle? – dbustosp

+0

Привет @dbustosp Что значит «поддерживать связь живым»? У моей базы данных и кластера есть стабильное соединение, если это то, что вы говорите. – Jesse

ответ

0

по умолчанию, sqoop aplit ваша работа в 4 картографах на основе ПК вашей таблицы, однако в зависимости от распределения ваших данных это может быть очень неэффективным. Вы не говорили о размере своего кластера или ваших данных, но я хотел бы узнать, как распределяется ваши данные и пытаться установить большее количество карт (опция -m), используя другой столбец для разделения нагрузки (опция разделения). ваша работа использует столбец defect_index, чтобы разделить работу.

+0

Это определенно не ответ. Вот почему у нас есть комментарии по поводу вопроса. –

+0

Спасибо за ответ. Я попытался установить mapper от 1 до 100 и все еще не работал. И я замечаю, что задача, которую PK начинается с 1 ~ somenumber, всегда показывает 0% прогресса, а другая работает просто отлично. – Jesse

+0

Возможно, это связано с тем, что распределение данных. Не могли бы вы поделиться своими столбцами таблицы? – hlagos

Смежные вопросы