yes, 2 nodes is very few

On Fri, Nov 15, 2019, 16:37 Sai Teja Desu <saiteja.d...@globalfoundries.com>
wrote:

> Thanks for your detailed explanation Pau.  The query actually never
> returned even after 4 hours, I had to cancel the query. The reason might
> be, I have too many small orc files as an input to Hive table.
>
> Also, You are right my Cluster capacity is very less. But, do you suggest
> we should keep on increasing the resources as the data grows.
>
> Thanks,
> Sai.
>
> On Fri, Nov 15, 2019 at 9:41 AM Pau Tallada <tall...@pic.es> wrote:
>
>> Hi Sai,
>>
>> Let me summarize some of your data:
>>
>> You have a 9 billion record table with 4 columns, which should account
>> for a minimum raw size of about 200 GiB (not including string column)
>> You want to select ALL columns from rows with a specific value in a
>> column which is not partitioned, so Hive has to read EVERYTHING in order to
>> deliver the results you request.
>> It does not matter that the number of rows returned are a few, what it
>> matters is that the cost of generating these few rows is high.
>> And finally, your cluster only has 2 nodes and 8 cores in total.
>>
>> If each core is able to process 20 MiB/s of data, the query should take
>> about 20 minutes to complete.
>>
>> You don't say how long is it taking, but you can surely increase the
>> performance adding more resources (cores) to your cluster.
>>
>> Cheers,
>>
>> Pau.
>>
>>
>>
>>
>> Missatge de Sai Teja Desu <saiteja.d...@globalfoundries.com> del dia
>> dv., 15 de nov. 2019 a les 15:21:
>>
>>> Hey Pau,
>>>
>>> Thanks for the clarification. Yes, that helped to start the query,
>>> however the query was taking huge time to retrieve a few records.
>>>
>>> May I know what steps can I take to make this kind of query performance
>>> better? I mean the predicates which does not have partitioning.
>>>
>>> Thanks,
>>> Sai.
>>>
>>> On Thu, Nov 14, 2019 at 12:43 PM Pau Tallada <tall...@pic.es> wrote:
>>>
>>>> Hi,
>>>>
>>>> The error is from the AM (Application Master), because it has soooooooo
>>>> many partitions to orchestrate that needs lots of RAM.
>>>> As Venkat said, try increasing tez.am.resource.memory.mb to 2G, even 4
>>>> or 8 might be needed.
>>>>
>>>> Cheers,
>>>>
>>>> Pau.
>>>>
>>>> Missatge de Sai Teja Desu <saiteja.d...@globalfoundries.com> del dia
>>>> dj., 14 de nov. 2019 a les 18:32:
>>>>
>>>>> Thanks for the reply Venkatesh. I did tried to increase the tez
>>>>> container size to 4GB but still giving me the same error. In addition,
>>>>> below are the settings I have tried:
>>>>>
>>>>> set mapreduce.map.memory.mb=4096;
>>>>> set mapreduce.map.java.opts=-Xmx3686m;
>>>>>
>>>>>
>>>>> set mapreduce.reduce.memory.mb=8192;
>>>>> set mapreduce.reduce.java.opts=-Xmx7372m;
>>>>>
>>>>>
>>>>> set hive.tez.container.size = 4096;
>>>>> set hive.tez.java.opts =-Xmx3686m;
>>>>>
>>>>> Let me know if I'm missing anything or configuring incorrectly.
>>>>>
>>>>> Thanks,
>>>>> Sai.
>>>>>
>>>>> On Thu, Nov 14, 2019 at 10:52 AM Venkatesh Selvaraj <
>>>>> venkateshselva...@pinterest.com> wrote:
>>>>>
>>>>>> Try increasing the AM Container memory. set it to 2 gigs may be.
>>>>>>
>>>>>> Regards,
>>>>>> Venkat
>>>>>>
>>>>>> On Thu, Nov 14, 2019, 6:46 AM Sai Teja Desu <
>>>>>> saiteja.d...@globalfoundries.com> wrote:
>>>>>>
>>>>>>> Hello All,
>>>>>>>
>>>>>>> I'm new to hive development and I'm memory limitation error for
>>>>>>> running a simple query with a predicate which should return only a
>>>>>>> few records. Below are the details of the Hive table, Query and Error.
>>>>>>> Please advise me on how to efficiently query on predicates which does 
>>>>>>> not
>>>>>>> have partitions.
>>>>>>>
>>>>>>> Table Properties:     CREATE EXTERNAL TABLE TEST(location_id double,
>>>>>>>
>>>>>>> longitude double,
>>>>>>>
>>>>>>> latitude double,
>>>>>>>
>>>>>>> state string
>>>>>>>
>>>>>>> )
>>>>>>>
>>>>>>> COMMENT 'This table is created for testing purposes'
>>>>>>>
>>>>>>> PARTITIONED BY(country string, date string)
>>>>>>>
>>>>>>> STORED AS ORC
>>>>>>>
>>>>>>> LOCATION '<S3 Location>'
>>>>>>>
>>>>>>> Total records:  9 Billion Records
>>>>>>>
>>>>>>> Number of partitions: >4k
>>>>>>>
>>>>>>> EMR Cluster Properties:   Total Memory: 48 GB
>>>>>>>
>>>>>>> Number of Nodes: 2
>>>>>>>
>>>>>>> Total vCores: 8
>>>>>>>
>>>>>>> mapreduce.map.memory.mb=3072
>>>>>>>
>>>>>>> mapreduce.map.java.opts=-Xmx2458m
>>>>>>>
>>>>>>>
>>>>>>> Query Executed:  select * from test where location_id = 1234;
>>>>>>>
>>>>>>> Error:Status:  Failed
>>>>>>>
>>>>>>> Application  failed 2 times due to AM Container for exited with
>>>>>>>  exitCode: -104
>>>>>>>
>>>>>>> Failing this attempt.Diagnostics: Container is running beyond
>>>>>>> physical memory limits. Current usage: 1.1 GB of 1 GB physical memory 
>>>>>>> used;
>>>>>>> 2.8 GB of 5 GB virtual memory used. Killing container.
>>>>>>>
>>>>>>> Dump of the process-tree for  :
>>>>>>>
>>>>>>>         |- PID PPID PGRPID SESSID CMD_NAME USER_MODE_TIME(MILLIS)
>>>>>>> SYSTEM_TIME(MILLIS) VMEM_USAGE(BYTES) RSSMEM_USAGE(PAGES) FULL_CMD_LINE
>>>>>>>
>>>>>>>         |- 1253 1234 1234 123 (bash) 0 0 11597648 676 /bin/bash -c
>>>>>>> /usr/lib/jvm/java-openjdk/bin/java  -Xmx819m
>>>>>>> -Djava.io.tmpdir=/mnt/yarn/usercache/hadoop/appcache/app30/container_11/tmp
>>>>>>> -server -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN
>>>>>>> -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA
>>>>>>> -XX:+UseParallelGC
>>>>>>> -Dlog4j.configuratorClass=org.apache.tez.common.TezLog4jConfigurator
>>>>>>> -Dlog4j.configuration=tez-container-log4j.properties
>>>>>>> -Dyarn.app.container.log.dir=/var/log/hadoop-yarn/containers/application_10/container_11
>>>>>>> -Dtez.root.logger=INFO,CLA -Dsun.nio.ch.bugLevel=''
>>>>>>> org.apache.tez.dag.app.DAGAppMaster --session
>>>>>>> 1>/var/log/hadoop-yarn/containers/application_10/container_11/stdout
>>>>>>> 2>/var/log/hadoop-yarn/containers/application_10/container_11/stderr
>>>>>>>
>>>>>>>         |- 1253 1234 1234 123  (java) 1253 1234 1234 123
>>>>>>>  /usr/lib/jvm/java-openjdk/bin/java -Xmx819m
>>>>>>> -Djava.io.tmpdir=/mnt/yarn/usercache/hadoop/appcache/application_10/container_11/tmp
>>>>>>> -server -Djava.net.preferIPv4Stack=true -Dhadoop.metrics.log.level=WARN
>>>>>>> -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseNUMA
>>>>>>> -XX:+UseParallelGC
>>>>>>> -Dlog4j.configuratorClass=org.apache.tez.common.TezLog4jConfigurator
>>>>>>> -Dlog4j.configuration=tez-container-log4j.properties
>>>>>>> -Dyarn.app.container.log.dir=/var/log/hadoop-yarn/containers/application_10/container_11
>>>>>>> -Dtez.root.logger=INFO,CLA -Dsun.nio.ch.bugLevel=
>>>>>>> org.apache.tez.dag.app.DAGAppMaster --session
>>>>>>>
>>>>>>> Container killed on request. Exit code is 143
>>>>>>>
>>>>>>> Container exited with a non-zero exit code 143
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>
>>>> --
>>>> ----------------------------------
>>>> Pau Tallada Crespí
>>>> Dep. d'Astrofísica i Cosmologia
>>>> Port d'Informació Científica (PIC)
>>>> Tel: +34 93 170 2729
>>>> ----------------------------------
>>>>
>>>>
>>
>> --
>> ----------------------------------
>> Pau Tallada Crespí
>> Dep. d'Astrofísica i Cosmologia
>> Port d'Informació Científica (PIC)
>> Tel: +34 93 170 2729
>> ----------------------------------
>>
>>

Reply via email to