You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hcatalog-commits@incubator.apache.org by ha...@apache.org on 2011/11/01 19:05:33 UTC
svn commit: r1196215 - in /incubator/hcatalog/trunk: CHANGES.txt
src/java/org/apache/hcatalog/listener/NotificationListener.java
Author: hashutosh
Date: Tue Nov 1 19:05:33 2011
New Revision: 1196215
URL: http://svn.apache.org/viewvc?rev=1196215&view=rev
Log:
HCATALOG-148. Meaningful error message on failure to resolve topic name for partition event
Modified:
incubator/hcatalog/trunk/CHANGES.txt
incubator/hcatalog/trunk/src/java/org/apache/hcatalog/listener/NotificationListener.java
Modified: incubator/hcatalog/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/CHANGES.txt?rev=1196215&r1=1196214&r2=1196215&view=diff
==============================================================================
--- incubator/hcatalog/trunk/CHANGES.txt (original)
+++ incubator/hcatalog/trunk/CHANGES.txt Tue Nov 1 19:05:33 2011
@@ -69,6 +69,8 @@ Trunk (unreleased changes)
OPTIMIZATIONS
BUG FIXES
+ HCAT-148. Meaningful error message on failure to resolve topic name for partition event (thw via hashutosh)
+
HCAT-136. Pig storer for export/import does maintain partition order (n_krishna_kumar via khorgath)
HCAT-134. Fix hbase build.xml to not affect root package target (khorgath via hashutosh)
Modified: incubator/hcatalog/trunk/src/java/org/apache/hcatalog/listener/NotificationListener.java
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/java/org/apache/hcatalog/listener/NotificationListener.java?rev=1196215&r1=1196214&r2=1196215&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/java/org/apache/hcatalog/listener/NotificationListener.java (original)
+++ incubator/hcatalog/trunk/src/java/org/apache/hcatalog/listener/NotificationListener.java Tue Nov 1 19:05:33 2011
@@ -52,14 +52,15 @@ import org.apache.hadoop.hive.metastore.
import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.hadoop.hive.metastore.events.AddPartitionEvent;
+import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent;
import org.apache.hadoop.hive.metastore.events.AlterTableEvent;
import org.apache.hadoop.hive.metastore.events.CreateDatabaseEvent;
import org.apache.hadoop.hive.metastore.events.CreateTableEvent;
import org.apache.hadoop.hive.metastore.events.DropDatabaseEvent;
import org.apache.hadoop.hive.metastore.events.DropPartitionEvent;
import org.apache.hadoop.hive.metastore.events.DropTableEvent;
+import org.apache.hadoop.hive.metastore.events.ListenerEvent;
import org.apache.hadoop.hive.metastore.events.LoadPartitionDoneEvent;
-import org.apache.hadoop.hive.metastore.events.AlterPartitionEvent;
import org.apache.hcatalog.common.HCatConstants;
/**
@@ -87,6 +88,24 @@ public class NotificationListener extend
createConnection();
}
+ private static String getTopicName(Partition partition,
+ ListenerEvent partitionEvent) throws MetaException {
+ try {
+ String topicName = partitionEvent.getHandler()
+ .get_table(partition.getDbName(), partition.getTableName())
+ .getParameters().get(HCatConstants.HCAT_MSGBUS_TOPIC_NAME);
+ if (topicName == null) {
+ throw new MetaException(
+ "Topic name not found in metastore. Please do alter table set properties ("
+ + HCatConstants.HCAT_MSGBUS_TOPIC_NAME
+ + "=dbname.tablename) or whatever you want topic name to be.");
+ }
+ return topicName;
+ } catch (NoSuchObjectException e) {
+ throw new MetaException(e.toString());
+ }
+ }
+
@Override
public void onAddPartition(AddPartitionEvent partitionEvent) throws MetaException {
// Subscriber can get notification of newly add partition in a
@@ -95,13 +114,7 @@ public class NotificationListener extend
if(partitionEvent.getStatus()){
Partition partition = partitionEvent.getPartition();
- String topicName;
- try {
- topicName = partitionEvent.getHandler().get_table(
- partition.getDbName(), partition.getTableName()).getParameters().get(HCatConstants.HCAT_MSGBUS_TOPIC_NAME);
- } catch (NoSuchObjectException e) {
- throw new MetaException(e.toString());
- }
+ String topicName = getTopicName(partition, partitionEvent);
send(partition, topicName, HCatConstants.HCAT_ADD_PARTITION_EVENT);
}
@@ -123,13 +136,7 @@ public class NotificationListener extend
sd.setSortCols(new ArrayList<Order>());
sd.setParameters(new HashMap<String, String>());
sd.getSerdeInfo().setParameters(new HashMap<String, String>());
- String topicName;
- try {
- topicName = partitionEvent.getHandler().get_table(
- partition.getDbName(), partition.getTableName()).getParameters().get(HCatConstants.HCAT_MSGBUS_TOPIC_NAME);
- } catch (NoSuchObjectException e) {
- throw new MetaException(e.toString());
- }
+ String topicName = getTopicName(partition, partitionEvent);
send(partition, topicName, HCatConstants.HCAT_DROP_PARTITION_EVENT);
}
}