hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ser...@apache.org
Subject [02/46] hive git commit: HIVE-16122: NPE Hive Druid split introduced by HIVE-15928 (Slim Bouguerra, reviewed by Jesus Camacho Rodriguez)
Date Mon, 13 Mar 2017 19:42:03 GMT
HIVE-16122: NPE Hive Druid split introduced by HIVE-15928 (Slim Bouguerra, reviewed by Jesus
Camacho Rodriguez)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/1d159ffd
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/1d159ffd
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/1d159ffd

Branch: refs/heads/hive-14535
Commit: 1d159ffd3c5016b78ca2814b837c02ab3f4be1de
Parents: 7f4a3e1
Author: Slim Bouguerra <slim.bouguerra@gmail.com>
Authored: Wed Mar 8 10:49:42 2017 +0000
Committer: Jesus Camacho Rodriguez <jcamacho@apache.org>
Committed: Wed Mar 8 10:49:42 2017 +0000

----------------------------------------------------------------------
 .../hadoop/hive/druid/io/HiveDruidSplit.java    | 19 +++++++-
 .../hive/druid/io/TestHiveDruidSplit.java       | 46 ++++++++++++++++++++
 2 files changed, 63 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/1d159ffd/druid-handler/src/java/org/apache/hadoop/hive/druid/io/HiveDruidSplit.java
----------------------------------------------------------------------
diff --git a/druid-handler/src/java/org/apache/hadoop/hive/druid/io/HiveDruidSplit.java b/druid-handler/src/java/org/apache/hadoop/hive/druid/io/HiveDruidSplit.java
index 58cb47a..5159b42 100644
--- a/druid-handler/src/java/org/apache/hadoop/hive/druid/io/HiveDruidSplit.java
+++ b/druid-handler/src/java/org/apache/hadoop/hive/druid/io/HiveDruidSplit.java
@@ -49,12 +49,22 @@ public class HiveDruidSplit extends FileSplit implements org.apache.hadoop.mapre
   public void write(DataOutput out) throws IOException {
     super.write(out);
     out.writeUTF(druidQuery);
+    out.writeInt(hosts.length);
+    for (String host : hosts) {
+      out.writeUTF(host);
+    }
   }
 
   @Override
   public void readFields(DataInput in) throws IOException {
     super.readFields(in);
     druidQuery = in.readUTF();
+    int length = in.readInt();
+    String[] listHosts = new String[length];
+    for (int i = 0; i < length; i++) {
+      listHosts[i] = in.readUTF();
+    }
+    hosts = listHosts;
   }
 
   public String getDruidQuery() {
@@ -62,9 +72,14 @@ public class HiveDruidSplit extends FileSplit implements org.apache.hadoop.mapre
   }
 
   @Override
+  public String[] getLocations() throws IOException {
+    return hosts;
+  }
+
+  @Override
   public String toString() {
-    return "HiveDruidSplit{" + druidQuery + ", " 
-            + (hosts == null ? "empty hosts" : Arrays.toString(hosts))  + "}";
+    return "HiveDruidSplit{" + druidQuery + ", "
+            + (hosts == null ? "empty hosts" : Arrays.toString(hosts)) + "}";
   }
 
 }

http://git-wip-us.apache.org/repos/asf/hive/blob/1d159ffd/druid-handler/src/test/org/apache/hadoop/hive/druid/io/TestHiveDruidSplit.java
----------------------------------------------------------------------
diff --git a/druid-handler/src/test/org/apache/hadoop/hive/druid/io/TestHiveDruidSplit.java
b/druid-handler/src/test/org/apache/hadoop/hive/druid/io/TestHiveDruidSplit.java
new file mode 100644
index 0000000..234c783
--- /dev/null
+++ b/druid-handler/src/test/org/apache/hadoop/hive/druid/io/TestHiveDruidSplit.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.druid.io;
+
+import org.apache.hadoop.fs.Path;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutput;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+public class TestHiveDruidSplit {
+  @Test
+  public void testSerDeser() throws IOException {
+    HiveDruidSplit hiveDruidSplit = new HiveDruidSplit("query string", new Path("test-path"),
new String []{"host:8080", "host2:8090"});
+    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+    DataOutput dataOutput = new DataOutputStream(byteArrayOutputStream);
+    hiveDruidSplit.write(dataOutput);
+    ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+    HiveDruidSplit actualHiveDruidSplit = new HiveDruidSplit();
+    actualHiveDruidSplit.readFields(new DataInputStream(byteArrayInputStream));
+    Assert.assertEquals(actualHiveDruidSplit.getDruidQuery(), "query string");
+    Assert.assertArrayEquals(actualHiveDruidSplit.getLocations(),  new String []{"host:8080",
"host2:8090"});
+  }
+
+}
\ No newline at end of file


Mime
View raw message