2015-05-31 4 views
1

Я использую версию Hive 1.0.0 и Hadoop 2.6.0 и драйвер ODBC Cloudera. Я пытаюсь обновить и удалить данные в базе данных hive из драйвера Cloudera HiveOdbc, это порождает ошибку. Вот моя ошибка.Обновление и удаление ульев

Что я сделал?

СОЗДАТЬ:

create database geometry; 

create table odbctest (EmployeeID Int,FirstName String,Designation String, Salary Int,Department String) 
clustered by (department) 
into 3 buckets 
stored as orcfile 
TBLPROPERTIES ('transactional'='true'); 

Table created.

ВСТАВИТЬ:

insert into table geometry.odbctest values(10,'Hive','Hive',0,'B'); 

Пропустив выше запрос данные вставки в базу данных.

UPDATE:

Когда я пытаюсь обновить следующее сообщение об ошибке получает

update geometry.odbctest set salary = 50000 where employeeid = 10; 

SQL> update geometry.odbctest set salary = 50000 where employeeid = 10;

[S1000][Cloudera][HiveODBC] (55) Insert operation is not support for table: HIVE.geometry.odbctest

[ISQL]ERROR: Could not SQLPrepare

УДАЛЕНИЕ:

Когда я пытаюсь удалить следующее сообщение об ошибке получает

delete from geometry.odbctest where employeeid=10; 

SQL> delete from geometry.odbctest where employeeid=10;

[S1000][Cloudera][HiveODBC] (55) Insert operation is not support for table: HIVE.geometry.odbctest

[ISQL]ERROR: Could not SQLPrepare

Может кто-нибудь помочь мне,

ответ

3

Вы сделали несколько необходимых шагов правильно:

  • формат ORC
  • Bucketed стол

Возможной причиной будет: один или несколько из следующих настроек улья не были включены:

These configuration parameters must be set appropriately to turn on transaction support in Hive:

hive.support.concurrency – true 
hive.enforce.bucketing – true 
hive.exec.dynamic.partition.mode – nonstrict 
hive.txn.manager – org.apache.hadoop.hive.ql.lockmgr.DbTxnManager 
hive.compactor.initiator.on – true (for exactly one instance of the Thrift metastore service) 
hive.compactor.worker.threads – a positive number on at least one instance of the Thrift metastore service 

всех требований для поддержки транзакций здесь: https://cwiki.apache.org/confluence/display/Hive/Hive+Transactions

Если вы проверили вышеуказанные параметры находятся в месте, то сделать

describe extended odbctest; 

Для оценки своих операций, связанных с характеристиками ,

+0

Я имел обновление все кислотные свойства в улье site.xml, когда я работаю над ульем он работает прекрасный –

+0

@SreeEedupuganti Так что Вы нашли мое сообщение полезными и/или правильно? То есть вы использовали какие-либо свойства, показанные здесь в вашем решении? – javadba

+0

У меня такая же проблема. У меня есть все свойства, которые вы указали, а таблица - orc, транзакционная и ведра. Любая идея, что может быть причиной этого? – craigtb

-1

На данный момент Hive не поддерживает операции обновления и удаления данных в HDFS.

+0

Это было изменено в Hive 1.0 –

1

Я столкнулся с той же проблемой при подключении к Hive 1.2 с помощью драйвера Simba ODBC, распространяемого Cloudera (v 2.5.12.1005 64-bit). После проверки всего сообщения Javadba я сделал несколько дополнительных копаний и нашел проблему ошибкой в ​​драйвере ODBC.

Мне удалось решить проблему с помощью драйвера Progress DataDirect, и похоже, что работает версия драйвера, распространяемая hortonworks (ссылки на оба решения ниже).

https://www.progress.com/data-sources/apache-hive-drivers-for-odbc-and-jdbc http://hortonworks.com/hdp/addons/

Надежда, которая помогает всем, кто еще может быть борется!

0

Вы не должны думать о Hive как о регулярной РСУБД, Hive лучше подходит для пакетной обработки на очень больших наборах неизменных данных.

Вот что вы можете найти enter link description here

Hadoop is a batch processing system and Hadoop jobs tend to have high latency and incur substantial overheads in job submission and scheduling. As a result - latency for Hive queries is generally very high (minutes) even when data sets involved are very small (say a few hundred megabytes). As a result it cannot be compared with systems such as Oracle where analyses are conducted on a significantly smaller amount of data but the analyses proceed much more iteratively with the response times between iterations being less than a few minutes. Hive aims to provide acceptable (but not optimal) latency for interactive data browsing, queries over small data sets or test queries.

Hive is not designed for online transaction processing and does not offer real-time queries and row level updates. It is best used for batch jobs over large sets of immutable data (like web logs).

Смежные вопросы