Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Could not allocate enough memory #7

Closed
dimon777 opened this issue Jan 9, 2017 · 8 comments
Closed

Could not allocate enough memory #7

dimon777 opened this issue Jan 9, 2017 · 8 comments

Comments

@dimon777
Copy link

dimon777 commented Jan 9, 2017

I got this error when running rollout.sh:

Started gpfdist on port 9005
executing on hadoop01.home.net ./start_gpfdist.sh 9006 /data/hawq/segmentdd/pivotalguru_6
Started gpfdist on port 9006
psql -v ON_ERROR_STOP=ON -f /home/hawq/TPC-DS/04_load/051.insert.call_center.sql | grep INSERT | awk -F ' ' '{print $3}'
psql:/home/hawq/TPC-DS/04_load/051.insert.call_center.sql:1: ERROR:  Could not allocate enough memory! bucket number of result hash table and external table should match each other (cdbdatalocality.c:4203)

I am using latest hawq repository code. CentOS 7, 8 node CDH Hadoop distribution. Everything seems to run just fine, including Hawq itself.
Please advise.

@RunningJon
Copy link
Owner

RunningJon commented Jan 9, 2017 via email

@dimon777
Copy link
Author

dimon777 commented Jan 9, 2017

How many nodes? 6 datanodes, 8 nodes total
How much RAM per node? 8GB
How much swap per node? 16GB
How much RAM is being used by other processes? 1.3GB is used by CDH processes on each node. 6.5GB is free.
Are you using using YARN or the default resource manager? For Hawq the default RM is used.
Are you using randomly distributed tables? I am not sure about this, since it is TPC-DS generated tables
What are the values for these GUCs?
hawq_rm_stmt_vseg_memory 128mb
hawq_rm_memory_limit_perseg 4GB
default_hash_table_bucket_number 24
hawq_rm_nvseg_perquery_perseg_limit 6

OS settings:
vm.overcommit_ratio = 50
vm.overcommit = this parameter doesn't exist in CentOS7.1

Thank you.

@dimon777
Copy link
Author

dimon777 commented Jan 9, 2017

I see the code says this:

if ((context.resultRelationHashSegNum < context.externTableForceSegNum
		&& context.externTableForceSegNum != 0)
		|| (context.resultRelationHashSegNum < context.externTableLocationSegNum)) {
	elog(ERROR, "Could not allocate enough memory! "
		"bucket number of result hash table and external table should match each other");
}

What should I adjust to avoid this assertion? I don't know how to translate these context parameters to GUCs (if my case is indeed a misconfiguration).

@RunningJon
Copy link
Owner

RunningJon commented Jan 9, 2017 via email

@dimon777
Copy link
Author

dimon777 commented Jan 9, 2017

Thank you,

I will try these. Unfortunately I have no control to use CDH or Horton or CentOS version (v7 seems to be supported: https://cwiki.apache.org/confluence/display/HAWQ/Build+and+Install) . In my tests I have not seen any issues with this configuration. My goal is to test HAWQ on the available Hadoop platform and compare it with Impala.

@RunningJon
Copy link
Owner

RunningJon commented Jan 9, 2017 via email

@dimon777
Copy link
Author

dimon777 commented Jan 9, 2017

Yes, I am aware of Cloudera queries adjustment for Impala tpc-ds test. I also read Pivotal article on this. And I fully agree: the way Cloudera did this is unacceptable and misleading for those who rely on TPC-DS benchmark to make the judgment about the platform.

@dimon777
Copy link
Author

dimon777 commented Jan 10, 2017

The issue was in my environment .bashrc didn't have GREENPLUM_PATH variable set. After adding this:
export GREENPLUM_PATH=/usr/local/hawq/greenplum_path.sh
and changing RANDOM_DISTRIBUTION flag to true in ./rollout.sh call test started working fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants