2016-08-03 4 views
0
testdb=# CREATE EXTERNAL TABLE sales_fact_1997 (                                                 product_id int,                                                        time_id int,                                                        customer_id int,                                                       promotion_id int,                                                       store_id int,                                                        store_sales decimal,                                                      store_cost decimal,                                                       unit_sales decimal                                                       )                                                          LOCATION ('gphdfs://hz-cluster2/user/nrpt/hive-server/foodmart.db/sales_fact_1997')                                       FORMAT 'TEXT' (DELIMITER ','); 
CREATE EXTERNAL TABLE 

testdb=# 

testdb=# 

testdb=# 

testdb=# select * from sales_fact_1997 ;                                                  
ERROR: external table gphdfs protocol command ended with error. Error occurred during initialization of VM (seg0 slice1 sdw1:40000 pid=3450) 
DETAIL: 

Could not reserve enough space for object heap 
Could not create the Java virtual machine. 
Command: 'gphdfs://le/user/nrpt/hive-server/foodmart.db/sales_fact_1997' 
External table sales_fact_1997, file gphdfs://hz-cluster2/user/nrpt/hive-server/foodmart.db/sales_fact_1997 

Ich habe den Wert von -Xmx aus der Datei hadoop-2.5.2/etc/hadoop/hadoop-env.sh geändert und sehe, dass der verwendete Speicher ausreichend ist für JVM. aber ich bekomme immer noch diesen Fehler. wie folgtexterne Tabelle gphdfs Protokollbefehl endete mit Fehler. Fehler bei der Initialisierung der VM

@localhost ~]$ free -m 
export GP_JAVA_OPT='-Xms20m -Xmx20m -XX:+DisplayVMOutputToStderr' 


       total  used  free  shared buff/cache available 
Mem:   993   114   393   219   485   518 
Swap:   819   0   819 

, der mir helfen kann, habe ich externe Tabelle gelingen, aber ich kann keine Daten von hdfs lesen.

Antwort

0

Sie haben entweder nicht genügend Speicher auf Ihren Segmenthosts oder Sie müssen mehr Speicher für die JVM reservieren. Hier ist, wie Sie die JVM für gphdfs konfigurieren: http://gpdb.docs.pivotal.io/4380/admin_guide/load/topics/g-gphdfs-jvm.html

+0

danken für Ihre Antwort, änderte ich den GP_JAVA_OPT die xmx 20M ist, aber ich bekomme immer noch den Fehler @ Jon Roberts – wanghao

+0

Die Standard-1000M ist so dass Sie brauchen zu erhöhen , nicht die Speichereinstellung verringern. Sie müssen diese Änderung für alle Segmenthosts vornehmen und sicherstellen, dass Sie über genügend Gesamtspeicher für Ihre Segmente plus gphdfs verfügen. –

+0

Ich denke, der Grund des Fehlers ist nicht genug Speicher für Heap-Space zur Initialisierung. So verringere ich den Speicher von Heap-Speicherplatz. Ich hoffe, die VM kann weniger Zeit zum Starten verwenden. @ Jon Roberts – wanghao

Verwandte Themen