powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Hive count(*) from 15Gb parquet on HDFS - OutOfMemoryError
2 сообщений из 2, страница 1 из 1
Hive count(*) from 15Gb parquet on HDFS - OutOfMemoryError
    #39609737
AlexGru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть учебный кластер hadoop 3.0, 1 name node + 3 slaves.
В hdfs загружен paruqet файл, размером 15Гб.

Структурой:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
+-------------------+------+
|               time|carnum|
+-------------------+------+
|2017-09-14 21:50:21|  E5TC|
|2017-09-14 21:50:22|  A9DC|
|2017-09-14 21:50:23|  MU6V|
|2017-09-14 21:50:24|  G19X|
|2017-09-14 21:50:25|  0FNB|
|2017-09-14 21:50:26|  BUUB|
|2017-09-14 21:50:27|  ARTA|



На namenode поднят hive (metastore+hiveserver2)

parquet создан так:
Код: sql
1.
2.
3.
CREATE TABLE avro_cc2 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED AS AVRO TBLPROPERTIES ('avro.schema.url'='/user/data/cc2.avsc');

CREATE EXTERNAL TABLE parquet_test LIKE avro_cc2 STORED AS PARQUET LOCATION 'hdfs://10.242.5.88:9000/user/data/cam_car2.parquet';



К hive подключаюсь через DBeaver и выполняю запрос
Код: sql
1.
SELECT count(*) FROM parquet_test



Запрос падает и в консоли, где запущен hiveserver2
пишет
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Query ID = hadoop_20180302160736_ab3ea221-e35d-4a3e-a52f-d9492db68b84
Total jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
  set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
  set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
  set mapreduce.job.reduces=<number>
Job running in-process (local Hadoop)
2018-03-02 16:07:40,325 Stage-1 map = 0%,  reduce = 0%
Ended Job = job_local1144706347_0008 with errors
Error during job, obtaining debugging information...
Job Tracking URL: http://localhost:8080/
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
MapReduce Jobs Launched:
Stage-Stage-1:  HDFS Read: 0 HDFS Write: 0 FAIL
Total MapReduce CPU Time Spent: 0 msec
OK
Exception in thread "HiveServer2-Handler-Pool: Thread-33" java.lang.OutOfMemoryError: Java heap space




При этом код (Spark локальный, не на сервере) выполняется
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
		String hdfsuri = "hdfs://10.242.5.88:9000";
		String path = "/user/data/";
	        String fileName = "cam_car2.parquet";

		SparkSession spark = SparkSession.builder()
				.appName("Java Spark SQL basic example")
				.config("spark.master", "local[*]")
				.config("spark.sql.crossJoin.enabled", "true").getOrCreate();

		Dataset<Row> sqlLoadedDF = spark.read().load(apploaded_prq_fpath);
		sqlLoadedDF.createOrReplaceTempView("v_cc");
		Dataset<Row> usrs_CntApplod_WeekReg = spark.sql("SELECT count(*) as cnt FROM v_cc "); 
		usrs_CntApplod_WeekReg.show(); 


и позвращает
Код: sql
1.
2.
3.
4.
5.
+----------+
|       cnt|
+----------+
|1000000000|
+----------+



Правильно понимаю, что проблемы в настройках памяти для Hive? по идее же hive разбирает SQL на цепочки MR, которые должны выполниться в Hadoop кластере, почему ему памяти то не хватает.

Или как раз вот это WARNING: Hive-on-MR is deprecated in Hive 2
и говорит о том, это не так.
...
Рейтинг: 0 / 0
Hive count(*) from 15Gb parquet on HDFS - OutOfMemoryError
    #39609983
haXbat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexGru,

Попробуй создать таблицу таким образом:
Код: plsql
1.
2.
3.
create table parquet_test2 stored as parquet as select * from avro_cc2;

select count(1) from parquet_test2;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / NoSQL, Big Data [игнор отключен] [закрыт для гостей] / Hive count(*) from 15Gb parquet on HDFS - OutOfMemoryError
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]