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.
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
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. –
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