Honestly 0.12 is a no go - you miss a lot of performance improvements. Probably your query would execute in less than a minute. If your Hadoop vendor does not support smooth upgrades then change it. Hive 1.2.1 is the absolute minimum including using Orc or parquet as a table format and tez (preferred) or spark as an execution engine.
To your questions: It seems that the logger is configured wrongly that is why you may miss some messages. What is the exact join query. Hive on older version needed a special syntax if you wanted to benefit from partition pruning. Which Hadoop version are you using. > On 11 Mar 2016, at 15:43, Yong Zhang <java8...@hotmail.com> wrote: > > Hi, Hive users: > > Currently our Hadoop vendor comes with Hive 0.12. I know it is a kind of old > version, but upgrade still has some long path to go. > > Right now, we are facing an issue in the Hive 0.12. > > We have one ETL kind of steps implemented in Hive, and due to the data volume > in this step, we know that MAPJOIN is the right way to go, as one side of > data is very small, but the other size is much larger. > > So below is the query example: > > set hive.exec.compress.output=true; > set parquet.compression=snappy; > set mapred.reduce.tasks=1; > set mapred.reduce.child.java.opts=-Xms1560m -Xmx4096m; > set mapred.task.timeout=7200000; > set mapred.map.tasks.speculative.execution=false; > set hive.ignore.mapjoin.hint=false; > set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; > > insert overwrite table a(dt='${hiveconf:run_date}', source='ip') > select > /*+ MAPJOIN(trial_event) */ > xxxx > > The above query can be finished daily around 10 minutes, which we are very > happy about it. But sometimes, the query will be hang hours in the ETL, until > we manually kill it. > > I add the debug info in the Hive, and found the following message: > > 2016-03-11 09:11:52 Starting to launch local task to process map join; > maximum memory = 536870912 > SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further > details. > 16/03/11 09:11:55 DEBUG ipc.Client: IPC Client (-1284813870) connection to > namenode/10.20.95.130:9000 from etl: closed > 16/03/11 09:11:55 DEBUG ipc.Client: IPC Client (-1284813870) connection to > namenode/10.20.95.130:9000 from etl: stopped, remaining connections 0 > > Then there is no more log after that for hours. > > If we don't use MAPJOIN, we won't face this issue, but the query will take > 2.5 hours. > > When this happens, I can see the NameNode works fine, I can run all kinds of > "HDFS" operation without any issue, while this query is hanging. What does > this "IPC Client remaining connections 0" mean? If we cannot upgrade our Hive > version as now, any workaround do we have? > > Thanks > > Yong