You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by as...@apache.org on 2022/08/18 21:25:34 UTC

[impala] branch master updated (62e20d1ba -> 9518ee290)

This is an automated email from the ASF dual-hosted git repository.

asherman pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git


    from 62e20d1ba IMPALA-11494: Don't always produce Ranger audit log for authorized query
     new c1610a163 IMPALA-11469: (Addendum) Initialize BackendConfig
     new 9518ee290 IMPALA-10800: Tidy up the be/src/exec directory

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 be/CMakeLists.txt                                  | 15 +++++++++
 be/src/codegen/impala-ir.cc                        |  4 +--
 be/src/common/init.cc                              |  2 +-
 be/src/exec/CMakeLists.txt                         | 29 ++++-------------
 be/src/exec/avro/CMakeLists.txt                    | 38 ++++++++++++++++++++++
 be/src/exec/{ => avro}/hdfs-avro-scanner-ir.cc     |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner-test.cc   |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner.cc        |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner.h         |  0
 be/src/exec/data-sink.cc                           |  6 ++--
 be/src/exec/exec-node.cc                           |  8 ++---
 be/src/exec/hbase/CMakeLists.txt                   | 33 +++++++++++++++++++
 be/src/exec/{ => hbase}/hbase-scan-node.cc         |  2 +-
 be/src/exec/{ => hbase}/hbase-scan-node.h          |  2 +-
 be/src/exec/{ => hbase}/hbase-table-scanner.cc     |  4 +--
 be/src/exec/{ => hbase}/hbase-table-scanner.h      |  0
 be/src/exec/{ => hbase}/hbase-table-sink.cc        |  2 +-
 be/src/exec/{ => hbase}/hbase-table-sink.h         |  2 +-
 be/src/exec/{ => hbase}/hbase-table-writer.cc      |  2 +-
 be/src/exec/{ => hbase}/hbase-table-writer.h       |  0
 be/src/exec/hdfs-scan-node-base.cc                 | 13 ++++----
 be/src/exec/kudu/CMakeLists.txt                    | 36 ++++++++++++++++++++
 be/src/exec/{ => kudu}/kudu-scan-node-base.cc      |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node-base.h       |  0
 be/src/exec/{ => kudu}/kudu-scan-node-mt.cc        |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node-mt.h         |  2 +-
 be/src/exec/{ => kudu}/kudu-scan-node.cc           |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node.h            |  2 +-
 be/src/exec/{ => kudu}/kudu-scanner.cc             |  4 +--
 be/src/exec/{ => kudu}/kudu-scanner.h              |  2 +-
 be/src/exec/{ => kudu}/kudu-table-sink.cc          |  4 +--
 be/src/exec/{ => kudu}/kudu-table-sink.h           |  2 +-
 be/src/exec/{ => kudu}/kudu-util-ir.cc             |  2 +-
 be/src/exec/{ => kudu}/kudu-util.cc                |  2 +-
 be/src/exec/{ => kudu}/kudu-util.h                 |  0
 be/src/exec/orc/CMakeLists.txt                     | 32 ++++++++++++++++++
 be/src/exec/{ => orc}/hdfs-orc-scanner.cc          |  4 +--
 be/src/exec/{ => orc}/hdfs-orc-scanner.h           |  2 +-
 be/src/exec/{ => orc}/orc-column-readers.cc        |  2 +-
 be/src/exec/{ => orc}/orc-column-readers.h         |  2 +-
 be/src/exec/{ => orc}/orc-metadata-utils.cc        |  2 +-
 be/src/exec/{ => orc}/orc-metadata-utils.h         |  0
 be/src/exec/rcfile/CMakeLists.txt                  | 30 +++++++++++++++++
 be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.cc    |  4 +--
 be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.h     |  0
 be/src/exec/scan-node.cc                           |  6 ++--
 be/src/exec/sequence/CMakeLists.txt                | 30 +++++++++++++++++
 .../exec/{ => sequence}/hdfs-sequence-scanner.cc   |  2 +-
 be/src/exec/{ => sequence}/hdfs-sequence-scanner.h |  0
 be/src/exec/text/CMakeLists.txt                    | 31 ++++++++++++++++++
 be/src/exec/{ => text}/hdfs-plugin-text-scanner.cc |  2 +-
 be/src/exec/{ => text}/hdfs-plugin-text-scanner.h  |  0
 be/src/exec/{ => text}/hdfs-text-scanner.cc        |  4 +--
 be/src/exec/{ => text}/hdfs-text-scanner.h         |  0
 be/src/exprs/kudu-partition-expr.cc                |  2 +-
 be/src/rpc/authentication.cc                       |  2 +-
 be/src/rpc/impala-service-pool.cc                  |  2 +-
 be/src/rpc/rpc-mgr-kerberized-test.cc              |  2 +-
 be/src/rpc/rpc-mgr-test.h                          |  2 +-
 be/src/rpc/rpc-mgr.cc                              |  2 +-
 be/src/rpc/rpc-mgr.inline.h                        |  2 +-
 be/src/runtime/coordinator-backend-state.cc        |  2 +-
 be/src/runtime/exec-env.cc                         |  2 +-
 be/src/runtime/io/data-cache.cc                    |  2 +-
 be/src/runtime/krpc-data-stream-mgr.cc             |  2 +-
 be/src/runtime/krpc-data-stream-recvr.cc           |  2 +-
 be/src/runtime/krpc-data-stream-sender.cc          |  2 +-
 be/src/runtime/query-state.cc                      |  2 +-
 be/src/service/client-request-state.cc             |  2 +-
 be/src/service/control-service.cc                  |  2 +-
 be/src/service/data-stream-service.cc              |  2 +-
 be/src/service/impalad-main.cc                     |  4 +--
 be/src/testutil/mini-kdc-wrapper.cc                |  2 +-
 be/src/util/network-util.cc                        |  2 +-
 .../impala/catalog/FileMetadataLoaderTest.java     |  3 +-
 .../apache/impala/common/FileSystemUtilTest.java   | 12 ++-----
 76 files changed, 338 insertions(+), 114 deletions(-)
 create mode 100644 be/src/exec/avro/CMakeLists.txt
 rename be/src/exec/{ => avro}/hdfs-avro-scanner-ir.cc (99%)
 rename be/src/exec/{ => avro}/hdfs-avro-scanner-test.cc (99%)
 rename be/src/exec/{ => avro}/hdfs-avro-scanner.cc (99%)
 rename be/src/exec/{ => avro}/hdfs-avro-scanner.h (100%)
 create mode 100644 be/src/exec/hbase/CMakeLists.txt
 rename be/src/exec/{ => hbase}/hbase-scan-node.cc (99%)
 rename be/src/exec/{ => hbase}/hbase-scan-node.h (99%)
 rename be/src/exec/{ => hbase}/hbase-table-scanner.cc (99%)
 rename be/src/exec/{ => hbase}/hbase-table-scanner.h (100%)
 rename be/src/exec/{ => hbase}/hbase-table-sink.cc (98%)
 rename be/src/exec/{ => hbase}/hbase-table-sink.h (98%)
 rename be/src/exec/{ => hbase}/hbase-table-writer.cc (99%)
 rename be/src/exec/{ => hbase}/hbase-table-writer.h (100%)
 create mode 100644 be/src/exec/kudu/CMakeLists.txt
 rename be/src/exec/{ => kudu}/kudu-scan-node-base.cc (97%)
 rename be/src/exec/{ => kudu}/kudu-scan-node-base.h (100%)
 rename be/src/exec/{ => kudu}/kudu-scan-node-mt.cc (96%)
 rename be/src/exec/{ => kudu}/kudu-scan-node-mt.h (97%)
 rename be/src/exec/{ => kudu}/kudu-scan-node.cc (98%)
 rename be/src/exec/{ => kudu}/kudu-scan-node.h (98%)
 rename be/src/exec/{ => kudu}/kudu-scanner.cc (99%)
 rename be/src/exec/{ => kudu}/kudu-scanner.h (99%)
 rename be/src/exec/{ => kudu}/kudu-table-sink.cc (99%)
 rename be/src/exec/{ => kudu}/kudu-table-sink.h (99%)
 rename be/src/exec/{ => kudu}/kudu-util-ir.cc (99%)
 rename be/src/exec/{ => kudu}/kudu-util.cc (99%)
 rename be/src/exec/{ => kudu}/kudu-util.h (100%)
 create mode 100644 be/src/exec/orc/CMakeLists.txt
 rename be/src/exec/{ => orc}/hdfs-orc-scanner.cc (99%)
 rename be/src/exec/{ => orc}/hdfs-orc-scanner.h (99%)
 rename be/src/exec/{ => orc}/orc-column-readers.cc (99%)
 rename be/src/exec/{ => orc}/orc-column-readers.h (99%)
 rename be/src/exec/{ => orc}/orc-metadata-utils.cc (99%)
 rename be/src/exec/{ => orc}/orc-metadata-utils.h (100%)
 create mode 100644 be/src/exec/rcfile/CMakeLists.txt
 rename be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.cc (99%)
 rename be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.h (100%)
 create mode 100644 be/src/exec/sequence/CMakeLists.txt
 rename be/src/exec/{ => sequence}/hdfs-sequence-scanner.cc (99%)
 rename be/src/exec/{ => sequence}/hdfs-sequence-scanner.h (100%)
 create mode 100644 be/src/exec/text/CMakeLists.txt
 rename be/src/exec/{ => text}/hdfs-plugin-text-scanner.cc (99%)
 rename be/src/exec/{ => text}/hdfs-plugin-text-scanner.h (100%)
 rename be/src/exec/{ => text}/hdfs-text-scanner.cc (99%)
 rename be/src/exec/{ => text}/hdfs-text-scanner.h (100%)


[impala] 02/02: IMPALA-10800: Tidy up the be/src/exec directory

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

asherman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 9518ee2907f3c34721c33968acb117a9a1300320
Author: Peter Rozsa <pr...@cloudera.com>
AuthorDate: Wed Aug 3 13:03:27 2022 +0000

    IMPALA-10800: Tidy up the be/src/exec directory
    
    This change separates the scanner implementations
    to different folders to make the exec directory clearer.
    
    Change-Id: Ie936c400ea8b112073bba892497ab8a1498c418d
    Reviewed-on: http://gerrit.cloudera.org:8080/18815
    Reviewed-by: Csaba Ringhofer <cs...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 be/CMakeLists.txt                                  | 15 +++++++++
 be/src/codegen/impala-ir.cc                        |  4 +--
 be/src/common/init.cc                              |  2 +-
 be/src/exec/CMakeLists.txt                         | 29 ++++-------------
 be/src/exec/avro/CMakeLists.txt                    | 38 ++++++++++++++++++++++
 be/src/exec/{ => avro}/hdfs-avro-scanner-ir.cc     |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner-test.cc   |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner.cc        |  2 +-
 be/src/exec/{ => avro}/hdfs-avro-scanner.h         |  0
 be/src/exec/data-sink.cc                           |  6 ++--
 be/src/exec/exec-node.cc                           |  8 ++---
 be/src/exec/hbase/CMakeLists.txt                   | 33 +++++++++++++++++++
 be/src/exec/{ => hbase}/hbase-scan-node.cc         |  2 +-
 be/src/exec/{ => hbase}/hbase-scan-node.h          |  2 +-
 be/src/exec/{ => hbase}/hbase-table-scanner.cc     |  4 +--
 be/src/exec/{ => hbase}/hbase-table-scanner.h      |  0
 be/src/exec/{ => hbase}/hbase-table-sink.cc        |  2 +-
 be/src/exec/{ => hbase}/hbase-table-sink.h         |  2 +-
 be/src/exec/{ => hbase}/hbase-table-writer.cc      |  2 +-
 be/src/exec/{ => hbase}/hbase-table-writer.h       |  0
 be/src/exec/hdfs-scan-node-base.cc                 | 13 ++++----
 be/src/exec/kudu/CMakeLists.txt                    | 36 ++++++++++++++++++++
 be/src/exec/{ => kudu}/kudu-scan-node-base.cc      |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node-base.h       |  0
 be/src/exec/{ => kudu}/kudu-scan-node-mt.cc        |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node-mt.h         |  2 +-
 be/src/exec/{ => kudu}/kudu-scan-node.cc           |  6 ++--
 be/src/exec/{ => kudu}/kudu-scan-node.h            |  2 +-
 be/src/exec/{ => kudu}/kudu-scanner.cc             |  4 +--
 be/src/exec/{ => kudu}/kudu-scanner.h              |  2 +-
 be/src/exec/{ => kudu}/kudu-table-sink.cc          |  4 +--
 be/src/exec/{ => kudu}/kudu-table-sink.h           |  2 +-
 be/src/exec/{ => kudu}/kudu-util-ir.cc             |  2 +-
 be/src/exec/{ => kudu}/kudu-util.cc                |  2 +-
 be/src/exec/{ => kudu}/kudu-util.h                 |  0
 be/src/exec/orc/CMakeLists.txt                     | 32 ++++++++++++++++++
 be/src/exec/{ => orc}/hdfs-orc-scanner.cc          |  4 +--
 be/src/exec/{ => orc}/hdfs-orc-scanner.h           |  2 +-
 be/src/exec/{ => orc}/orc-column-readers.cc        |  2 +-
 be/src/exec/{ => orc}/orc-column-readers.h         |  2 +-
 be/src/exec/{ => orc}/orc-metadata-utils.cc        |  2 +-
 be/src/exec/{ => orc}/orc-metadata-utils.h         |  0
 be/src/exec/rcfile/CMakeLists.txt                  | 30 +++++++++++++++++
 be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.cc    |  4 +--
 be/src/exec/{ => rcfile}/hdfs-rcfile-scanner.h     |  0
 be/src/exec/scan-node.cc                           |  6 ++--
 be/src/exec/sequence/CMakeLists.txt                | 30 +++++++++++++++++
 .../exec/{ => sequence}/hdfs-sequence-scanner.cc   |  2 +-
 be/src/exec/{ => sequence}/hdfs-sequence-scanner.h |  0
 be/src/exec/text/CMakeLists.txt                    | 31 ++++++++++++++++++
 be/src/exec/{ => text}/hdfs-plugin-text-scanner.cc |  2 +-
 be/src/exec/{ => text}/hdfs-plugin-text-scanner.h  |  0
 be/src/exec/{ => text}/hdfs-text-scanner.cc        |  4 +--
 be/src/exec/{ => text}/hdfs-text-scanner.h         |  0
 be/src/exprs/kudu-partition-expr.cc                |  2 +-
 be/src/rpc/authentication.cc                       |  2 +-
 be/src/rpc/impala-service-pool.cc                  |  2 +-
 be/src/rpc/rpc-mgr-kerberized-test.cc              |  2 +-
 be/src/rpc/rpc-mgr-test.h                          |  2 +-
 be/src/rpc/rpc-mgr.cc                              |  2 +-
 be/src/rpc/rpc-mgr.inline.h                        |  2 +-
 be/src/runtime/coordinator-backend-state.cc        |  2 +-
 be/src/runtime/exec-env.cc                         |  2 +-
 be/src/runtime/io/data-cache.cc                    |  2 +-
 be/src/runtime/krpc-data-stream-mgr.cc             |  2 +-
 be/src/runtime/krpc-data-stream-recvr.cc           |  2 +-
 be/src/runtime/krpc-data-stream-sender.cc          |  2 +-
 be/src/runtime/query-state.cc                      |  2 +-
 be/src/service/client-request-state.cc             |  2 +-
 be/src/service/control-service.cc                  |  2 +-
 be/src/service/data-stream-service.cc              |  2 +-
 be/src/service/impalad-main.cc                     |  4 +--
 be/src/testutil/mini-kdc-wrapper.cc                |  2 +-
 be/src/util/network-util.cc                        |  2 +-
 74 files changed, 334 insertions(+), 103 deletions(-)

diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index 83a658c00..953ee9331 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -432,7 +432,14 @@ set (IMPALA_LIBS
   Catalog
   CodeGen
   Common
+  Avro
+  HBase
+  Kudu
+  Orc
   Parquet
+  Rcfile
+  Sequence
+  Text
   Exec
   Exprs
   GlobalFlags
@@ -486,6 +493,7 @@ set (UNIFIED_TEST_LIBS
   CodeGenTests
   CommonTests
   ExecTests
+  AvroTests
   ExprsTests
   GUtilTests
   IoTests
@@ -514,7 +522,14 @@ if (BUILD_SHARED_LIBS)
     BufferPool
     Io
     Runtime
+    Avro
+    HBase
+    Kudu
+    Orc
     Parquet
+    Rcfile
+    Sequence
+    Text
     Exec
     CodeGen
     Exprs
diff --git a/be/src/codegen/impala-ir.cc b/be/src/codegen/impala-ir.cc
index 8e21c3fcb..4aae36534 100644
--- a/be/src/codegen/impala-ir.cc
+++ b/be/src/codegen/impala-ir.cc
@@ -28,10 +28,10 @@
 #include "codegen/codegen-anyval-ir.cc"
 #include "exec/grouping-aggregator-ir.cc"
 #include "exec/hash-table-ir.cc"
-#include "exec/hdfs-avro-scanner-ir.cc"
+#include "exec/avro/hdfs-avro-scanner-ir.cc"
 #include "exec/hdfs-columnar-scanner-ir.cc"
 #include "exec/hdfs-scanner-ir.cc"
-#include "exec/kudu-util-ir.cc"
+#include "exec/kudu/kudu-util-ir.cc"
 #include "exec/non-grouping-aggregator-ir.cc"
 #include "exec/partitioned-hash-join-builder-ir.cc"
 #include "exec/partitioned-hash-join-node-ir.cc"
diff --git a/be/src/common/init.cc b/be/src/common/init.cc
index fdeb2a835..776076eb6 100644
--- a/be/src/common/init.cc
+++ b/be/src/common/init.cc
@@ -24,7 +24,7 @@
 #include "common/global-flags.h"
 #include "common/logging.h"
 #include "common/status.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "exprs/string-functions.h"
 #include "exprs/timezone_db.h"
diff --git a/be/src/exec/CMakeLists.txt b/be/src/exec/CMakeLists.txt
index 6e6c88986..ce0b2e8e1 100644
--- a/be/src/exec/CMakeLists.txt
+++ b/be/src/exec/CMakeLists.txt
@@ -15,7 +15,14 @@
 # specific language governing permissions and limitations
 # under the License.
 
+add_subdirectory(avro)
+add_subdirectory(hbase)
+add_subdirectory(kudu)
+add_subdirectory(orc)
 add_subdirectory(parquet)
+add_subdirectory(rcfile)
+add_subdirectory(sequence)
+add_subdirectory(text)
 
 # where to put generated libraries
 set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec")
@@ -48,8 +55,6 @@ add_library(Exec
   grouping-aggregator-ir.cc
   grouping-aggregator-partition.cc
   hash-table.cc
-  hbase-table-sink.cc
-  hbase-table-writer.cc
   hdfs-columnar-scanner.cc
   hdfs-columnar-scanner-ir.cc
   hdfs-scan-node.cc
@@ -59,37 +64,19 @@ add_library(Exec
   hdfs-scanner-ir.cc
   hdfs-table-sink.cc
   hdfs-table-writer.cc
-  hdfs-rcfile-scanner.cc
-  hdfs-sequence-scanner.cc
-  hdfs-avro-scanner.cc
-  hdfs-avro-scanner-ir.cc
-  hdfs-plugin-text-scanner.cc
-  hdfs-text-scanner.cc
   hdfs-text-table-writer.cc
-  hdfs-orc-scanner.cc
-  hbase-scan-node.cc
-  hbase-table-scanner.cc
   incr-stats-util.cc
   join-builder.cc
   nested-loop-join-builder.cc
   nested-loop-join-node.cc
   non-grouping-aggregator.cc
   non-grouping-aggregator-ir.cc
-  orc-column-readers.cc
-  orc-metadata-utils.cc
   partial-sort-node.cc
   partitioned-hash-join-builder.cc
   partitioned-hash-join-builder-ir.cc
   partitioned-hash-join-node.cc
   partitioned-hash-join-node-ir.cc
   plan-root-sink.cc
-  kudu-scanner.cc
-  kudu-scan-node.cc
-  kudu-scan-node-base.cc
-  kudu-scan-node-mt.cc
-  kudu-table-sink.cc
-  kudu-util.cc
-  kudu-util-ir.cc
   read-write-util.cc
   scan-node.cc
   scanner-context.cc
@@ -113,7 +100,6 @@ add_library(ExecTests STATIC
   acid-metadata-utils-test.cc
   delimited-text-parser-test.cc
   hash-table-test.cc
-  hdfs-avro-scanner-test.cc
   incr-stats-util-test.cc
   read-write-util-test.cc
   zigzag-test.cc
@@ -129,4 +115,3 @@ ADD_UNIFIED_BE_LSAN_TEST(read-write-util-test ReadWriteUtil.*)
 ADD_BE_LSAN_TEST(row-batch-list-test)
 ADD_BE_LSAN_TEST(scratch-tuple-batch-test)
 ADD_UNIFIED_BE_LSAN_TEST(incr-stats-util-test IncrStatsUtilTest.*)
-ADD_UNIFIED_BE_LSAN_TEST(hdfs-avro-scanner-test HdfsAvroScannerTest.*)
diff --git a/be/src/exec/avro/CMakeLists.txt b/be/src/exec/avro/CMakeLists.txt
new file mode 100644
index 000000000..02e253a24
--- /dev/null
+++ b/be/src/exec/avro/CMakeLists.txt
@@ -0,0 +1,38 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/avro")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/avro")
+
+add_library(Avro
+  hdfs-avro-scanner.cc
+  hdfs-avro-scanner-ir.cc
+)
+
+add_dependencies(Avro gen-deps)
+
+add_library(AvroTests STATIC
+  hdfs-avro-scanner-test.cc
+)
+add_dependencies(AvroTests gen-deps)
+
+ADD_UNIFIED_BE_LSAN_TEST(hdfs-avro-scanner-test HdfsAvroScannerTest.*)
\ No newline at end of file
diff --git a/be/src/exec/hdfs-avro-scanner-ir.cc b/be/src/exec/avro/hdfs-avro-scanner-ir.cc
similarity index 99%
rename from be/src/exec/hdfs-avro-scanner-ir.cc
rename to be/src/exec/avro/hdfs-avro-scanner-ir.cc
index d61e1351a..1a81ff386 100644
--- a/be/src/exec/hdfs-avro-scanner-ir.cc
+++ b/be/src/exec/avro/hdfs-avro-scanner-ir.cc
@@ -19,7 +19,7 @@
 #include <limits>
 
 #include "exec/exec-node.inline.h"
-#include "exec/hdfs-avro-scanner.h"
+#include "exec/avro/hdfs-avro-scanner.h"
 #include "exec/read-write-util.h"
 #include "runtime/date-value.h"
 #include "runtime/mem-tracker.h"
diff --git a/be/src/exec/hdfs-avro-scanner-test.cc b/be/src/exec/avro/hdfs-avro-scanner-test.cc
similarity index 99%
rename from be/src/exec/hdfs-avro-scanner-test.cc
rename to be/src/exec/avro/hdfs-avro-scanner-test.cc
index e7086c87d..b652ed101 100644
--- a/be/src/exec/hdfs-avro-scanner-test.cc
+++ b/be/src/exec/avro/hdfs-avro-scanner-test.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-avro-scanner.h"
+#include "exec/avro/hdfs-avro-scanner.h"
 
 #include <algorithm>
 #include <limits.h>
diff --git a/be/src/exec/hdfs-avro-scanner.cc b/be/src/exec/avro/hdfs-avro-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-avro-scanner.cc
rename to be/src/exec/avro/hdfs-avro-scanner.cc
index 3cd20ba6e..8a67f266d 100644
--- a/be/src/exec/hdfs-avro-scanner.cc
+++ b/be/src/exec/avro/hdfs-avro-scanner.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-avro-scanner.h"
+#include "exec/avro/hdfs-avro-scanner.h"
 
 #include <avro/errors.h>
 #include <algorithm>    // std::min
diff --git a/be/src/exec/hdfs-avro-scanner.h b/be/src/exec/avro/hdfs-avro-scanner.h
similarity index 100%
rename from be/src/exec/hdfs-avro-scanner.h
rename to be/src/exec/avro/hdfs-avro-scanner.h
diff --git a/be/src/exec/data-sink.cc b/be/src/exec/data-sink.cc
index 30e120192..ed43ef4ce 100644
--- a/be/src/exec/data-sink.cc
+++ b/be/src/exec/data-sink.cc
@@ -22,10 +22,10 @@
 
 #include "common/logging.h"
 #include "exec/exec-node.h"
-#include "exec/hbase-table-sink.h"
+#include "exec/hbase/hbase-table-sink.h"
 #include "exec/hdfs-table-sink.h"
-#include "exec/kudu-table-sink.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-table-sink.h"
+#include "exec/kudu/kudu-util.h"
 #include "exec/blocking-plan-root-sink.h"
 #include "exec/buffered-plan-root-sink.h"
 #include "exec/nested-loop-join-builder.h"
diff --git a/be/src/exec/exec-node.cc b/be/src/exec/exec-node.cc
index 1d56e5f27..5f2ff77e3 100644
--- a/be/src/exec/exec-node.cc
+++ b/be/src/exec/exec-node.cc
@@ -34,12 +34,12 @@
 #include "exec/empty-set-node.h"
 #include "exec/exchange-node.h"
 #include "exec/exec-node-util.h"
-#include "exec/hbase-scan-node.h"
+#include "exec/hbase/hbase-scan-node.h"
 #include "exec/hdfs-scan-node-mt.h"
 #include "exec/hdfs-scan-node.h"
-#include "exec/kudu-scan-node-mt.h"
-#include "exec/kudu-scan-node.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-scan-node-mt.h"
+#include "exec/kudu/kudu-scan-node.h"
+#include "exec/kudu/kudu-util.h"
 #include "exec/nested-loop-join-node.h"
 #include "exec/partial-sort-node.h"
 #include "exec/partitioned-hash-join-node.h"
diff --git a/be/src/exec/hbase/CMakeLists.txt b/be/src/exec/hbase/CMakeLists.txt
new file mode 100644
index 000000000..c2e8dc939
--- /dev/null
+++ b/be/src/exec/hbase/CMakeLists.txt
@@ -0,0 +1,33 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/hbase")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/hbase")
+
+add_library(HBase
+  hbase-scan-node.cc
+  hbase-table-scanner.cc
+  hbase-table-sink.cc
+  hbase-table-writer.cc
+)
+
+add_dependencies(HBase gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/hbase-scan-node.cc b/be/src/exec/hbase/hbase-scan-node.cc
similarity index 99%
rename from be/src/exec/hbase-scan-node.cc
rename to be/src/exec/hbase/hbase-scan-node.cc
index 244fd0af0..986968507 100644
--- a/be/src/exec/hbase-scan-node.cc
+++ b/be/src/exec/hbase/hbase-scan-node.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "hbase-scan-node.h"
+#include "exec/hbase/hbase-scan-node.h"
 
 #include <algorithm>
 
diff --git a/be/src/exec/hbase-scan-node.h b/be/src/exec/hbase/hbase-scan-node.h
similarity index 99%
rename from be/src/exec/hbase-scan-node.h
rename to be/src/exec/hbase/hbase-scan-node.h
index a1d020272..88f6b9c74 100644
--- a/be/src/exec/hbase-scan-node.h
+++ b/be/src/exec/hbase/hbase-scan-node.h
@@ -21,7 +21,7 @@
 
 #include <boost/scoped_ptr.hpp>
 #include "runtime/descriptors.h"
-#include "exec/hbase-table-scanner.h"
+#include "exec/hbase/hbase-table-scanner.h"
 #include "exec/scan-node.h"
 
 namespace impala {
diff --git a/be/src/exec/hbase-table-scanner.cc b/be/src/exec/hbase/hbase-table-scanner.cc
similarity index 99%
rename from be/src/exec/hbase-table-scanner.cc
rename to be/src/exec/hbase/hbase-table-scanner.cc
index 8913af457..3b4fbf979 100644
--- a/be/src/exec/hbase-table-scanner.cc
+++ b/be/src/exec/hbase/hbase-table-scanner.cc
@@ -15,8 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hbase-table-scanner.h"
-#include "exec/hbase-scan-node.h"
+#include "exec/hbase/hbase-table-scanner.h"
+#include "exec/hbase/hbase-scan-node.h"
 
 #include <cstring>
 #include <algorithm>
diff --git a/be/src/exec/hbase-table-scanner.h b/be/src/exec/hbase/hbase-table-scanner.h
similarity index 100%
rename from be/src/exec/hbase-table-scanner.h
rename to be/src/exec/hbase/hbase-table-scanner.h
diff --git a/be/src/exec/hbase-table-sink.cc b/be/src/exec/hbase/hbase-table-sink.cc
similarity index 98%
rename from be/src/exec/hbase-table-sink.cc
rename to be/src/exec/hbase/hbase-table-sink.cc
index f87c9680f..d0f7c316e 100644
--- a/be/src/exec/hbase-table-sink.cc
+++ b/be/src/exec/hbase/hbase-table-sink.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hbase-table-sink.h"
+#include "exec/hbase/hbase-table-sink.h"
 
 #include <vector>
 
diff --git a/be/src/exec/hbase-table-sink.h b/be/src/exec/hbase/hbase-table-sink.h
similarity index 98%
rename from be/src/exec/hbase-table-sink.h
rename to be/src/exec/hbase/hbase-table-sink.h
index 60268d413..3da68f607 100644
--- a/be/src/exec/hbase-table-sink.h
+++ b/be/src/exec/hbase/hbase-table-sink.h
@@ -25,7 +25,7 @@
 #include "runtime/row-batch.h"
 #include "runtime/descriptors.h"
 #include "exec/data-sink.h"
-#include "exec/hbase-table-writer.h"
+#include "exec/hbase/hbase-table-writer.h"
 #include "gen-cpp/Data_types.h"
 #include "gen-cpp/Exprs_types.h"
 
diff --git a/be/src/exec/hbase-table-writer.cc b/be/src/exec/hbase/hbase-table-writer.cc
similarity index 99%
rename from be/src/exec/hbase-table-writer.cc
rename to be/src/exec/hbase/hbase-table-writer.cc
index 9d75b7c3c..71f0f0fb0 100644
--- a/be/src/exec/hbase-table-writer.cc
+++ b/be/src/exec/hbase/hbase-table-writer.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hbase-table-writer.h"
+#include "exec/hbase/hbase-table-writer.h"
 
 #include <boost/scoped_array.hpp>
 #include <sstream>
diff --git a/be/src/exec/hbase-table-writer.h b/be/src/exec/hbase/hbase-table-writer.h
similarity index 100%
rename from be/src/exec/hbase-table-writer.h
rename to be/src/exec/hbase/hbase-table-writer.h
diff --git a/be/src/exec/hdfs-scan-node-base.cc b/be/src/exec/hdfs-scan-node-base.cc
index 8d36019b0..8d3f95a47 100644
--- a/be/src/exec/hdfs-scan-node-base.cc
+++ b/be/src/exec/hdfs-scan-node-base.cc
@@ -18,16 +18,17 @@
 #include "exec/hdfs-scan-node-base.h"
 
 #include "exec/base-sequence-scanner.h"
-#include "exec/hdfs-avro-scanner.h"
 #include "exec/hdfs-columnar-scanner.h"
-#include "exec/hdfs-orc-scanner.h"
-#include "exec/hdfs-plugin-text-scanner.h"
-#include "exec/hdfs-rcfile-scanner.h"
 #include "exec/hdfs-scan-node-mt.h"
 #include "exec/hdfs-scan-node.h"
-#include "exec/hdfs-sequence-scanner.h"
-#include "exec/hdfs-text-scanner.h"
+#include "exec/avro/hdfs-avro-scanner.h"
+#include "exec/orc/hdfs-orc-scanner.h"
 #include "exec/parquet/hdfs-parquet-scanner.h"
+#include "exec/rcfile/hdfs-rcfile-scanner.h"
+#include "exec/sequence/hdfs-sequence-scanner.h"
+#include "exec/text/hdfs-text-scanner.h"
+#include "exec/text/hdfs-plugin-text-scanner.h"
+
 
 #include <avro/errors.h>
 #include <avro/schema.h>
diff --git a/be/src/exec/kudu/CMakeLists.txt b/be/src/exec/kudu/CMakeLists.txt
new file mode 100644
index 000000000..728922c71
--- /dev/null
+++ b/be/src/exec/kudu/CMakeLists.txt
@@ -0,0 +1,36 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/kudu")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/kudu")
+
+add_library(Kudu
+  kudu-scanner.cc
+  kudu-scan-node.cc
+  kudu-scan-node-base.cc
+  kudu-scan-node-mt.cc
+  kudu-table-sink.cc
+  kudu-util.cc
+  kudu-util-ir.cc
+)
+
+add_dependencies(Kudu gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/kudu-scan-node-base.cc b/be/src/exec/kudu/kudu-scan-node-base.cc
similarity index 97%
rename from be/src/exec/kudu-scan-node-base.cc
rename to be/src/exec/kudu/kudu-scan-node-base.cc
index 2f82200e8..8bc1e9761 100644
--- a/be/src/exec/kudu-scan-node-base.cc
+++ b/be/src/exec/kudu/kudu-scan-node-base.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-scan-node-base.h"
+#include "exec/kudu/kudu-scan-node-base.h"
 
 #include <boost/algorithm/string.hpp>
 #include <kudu/client/row_result.h>
@@ -24,8 +24,8 @@
 #include <thrift/protocol/TDebugProtocol.h>
 #include <vector>
 
-#include "exec/kudu-scanner.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-scanner.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/expr.h"
 #include "runtime/exec-env.h"
 #include "runtime/mem-pool.h"
diff --git a/be/src/exec/kudu-scan-node-base.h b/be/src/exec/kudu/kudu-scan-node-base.h
similarity index 100%
rename from be/src/exec/kudu-scan-node-base.h
rename to be/src/exec/kudu/kudu-scan-node-base.h
diff --git a/be/src/exec/kudu-scan-node-mt.cc b/be/src/exec/kudu/kudu-scan-node-mt.cc
similarity index 96%
rename from be/src/exec/kudu-scan-node-mt.cc
rename to be/src/exec/kudu/kudu-scan-node-mt.cc
index 412e66aac..5ce336079 100644
--- a/be/src/exec/kudu-scan-node-mt.cc
+++ b/be/src/exec/kudu/kudu-scan-node-mt.cc
@@ -15,13 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-scan-node-mt.h"
+#include "exec/kudu/kudu-scan-node-mt.h"
 
 #include <thrift/protocol/TDebugProtocol.h>
 #include <vector>
 
-#include "exec/kudu-scanner.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-scanner.h"
+#include "exec/kudu/kudu-util.h"
 
 #include "runtime/runtime-state.h"
 #include "runtime/row-batch.h"
diff --git a/be/src/exec/kudu-scan-node-mt.h b/be/src/exec/kudu/kudu-scan-node-mt.h
similarity index 97%
rename from be/src/exec/kudu-scan-node-mt.h
rename to be/src/exec/kudu/kudu-scan-node-mt.h
index dff99ca76..7f7381da5 100644
--- a/be/src/exec/kudu-scan-node-mt.h
+++ b/be/src/exec/kudu/kudu-scan-node-mt.h
@@ -18,7 +18,7 @@
 #ifndef IMPALA_EXEC_KUDU_SCAN_NODE_MT_H_
 #define IMPALA_EXEC_KUDU_SCAN_NODE_MT_H_
 
-#include "exec/kudu-scan-node-base.h"
+#include "exec/kudu/kudu-scan-node-base.h"
 
 namespace impala {
 
diff --git a/be/src/exec/kudu-scan-node.cc b/be/src/exec/kudu/kudu-scan-node.cc
similarity index 98%
rename from be/src/exec/kudu-scan-node.cc
rename to be/src/exec/kudu/kudu-scan-node.cc
index ad31a5e88..9c18da8fd 100644
--- a/be/src/exec/kudu-scan-node.cc
+++ b/be/src/exec/kudu/kudu-scan-node.cc
@@ -15,13 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-scan-node.h"
+#include "exec/kudu/kudu-scan-node.h"
 
 #include <thrift/protocol/TDebugProtocol.h>
 
 #include "exec/exec-node-util.h"
-#include "exec/kudu-scanner.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-scanner.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr.h"
 #include "gutil/gscoped_ptr.h"
 #include "runtime/blocking-row-batch-queue.h"
diff --git a/be/src/exec/kudu-scan-node.h b/be/src/exec/kudu/kudu-scan-node.h
similarity index 98%
rename from be/src/exec/kudu-scan-node.h
rename to be/src/exec/kudu/kudu-scan-node.h
index b4ed12189..9ef695923 100644
--- a/be/src/exec/kudu-scan-node.h
+++ b/be/src/exec/kudu/kudu-scan-node.h
@@ -22,7 +22,7 @@
 #include <kudu/client/client.h>
 
 #include "common/atomic.h"
-#include "exec/kudu-scan-node-base.h"
+#include "exec/kudu/kudu-scan-node-base.h"
 #include "gutil/gscoped_ptr.h"
 
 namespace impala {
diff --git a/be/src/exec/kudu-scanner.cc b/be/src/exec/kudu/kudu-scanner.cc
similarity index 99%
rename from be/src/exec/kudu-scanner.cc
rename to be/src/exec/kudu/kudu-scanner.cc
index ff6b94e7b..7f510bac5 100644
--- a/be/src/exec/kudu-scanner.cc
+++ b/be/src/exec/kudu/kudu-scanner.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-scanner.h"
+#include "exec/kudu/kudu-scanner.h"
 
 #include <string>
 #include <vector>
@@ -24,7 +24,7 @@
 #include <thrift/protocol/TDebugProtocol.h>
 
 #include "exec/exec-node.inline.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "exprs/scalar-expr.h"
 #include "exprs/slot-ref.h"
diff --git a/be/src/exec/kudu-scanner.h b/be/src/exec/kudu/kudu-scanner.h
similarity index 99%
rename from be/src/exec/kudu-scanner.h
rename to be/src/exec/kudu/kudu-scanner.h
index 04528d958..0fcce2e83 100644
--- a/be/src/exec/kudu-scanner.h
+++ b/be/src/exec/kudu/kudu-scanner.h
@@ -22,7 +22,7 @@
 #include <kudu/client/client.h>
 
 #include "common/object-pool.h"
-#include "exec/kudu-scan-node-base.h"
+#include "exec/kudu/kudu-scan-node-base.h"
 #include "runtime/descriptors.h"
 
 namespace impala {
diff --git a/be/src/exec/kudu-table-sink.cc b/be/src/exec/kudu/kudu-table-sink.cc
similarity index 99%
rename from be/src/exec/kudu-table-sink.cc
rename to be/src/exec/kudu/kudu-table-sink.cc
index 1ba1ba986..d65cc40e1 100644
--- a/be/src/exec/kudu-table-sink.cc
+++ b/be/src/exec/kudu/kudu-table-sink.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-table-sink.h"
+#include "exec/kudu/kudu-table-sink.h"
 
 #include <sstream>
 
@@ -25,7 +25,7 @@
 #include <kudu/client/write_op.h>
 #include <thrift/protocol/TDebugProtocol.h>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "exprs/scalar-expr.h"
 #include "gen-cpp/ImpalaInternalService_constants.h"
diff --git a/be/src/exec/kudu-table-sink.h b/be/src/exec/kudu/kudu-table-sink.h
similarity index 99%
rename from be/src/exec/kudu-table-sink.h
rename to be/src/exec/kudu/kudu-table-sink.h
index 7b77ead4c..d571f8763 100644
--- a/be/src/exec/kudu-table-sink.h
+++ b/be/src/exec/kudu/kudu-table-sink.h
@@ -23,7 +23,7 @@
 
 #include "gen-cpp/ImpalaInternalService_constants.h"
 #include "common/status.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exec/data-sink.h"
 
 namespace impala {
diff --git a/be/src/exec/kudu-util-ir.cc b/be/src/exec/kudu/kudu-util-ir.cc
similarity index 99%
rename from be/src/exec/kudu-util-ir.cc
rename to be/src/exec/kudu/kudu-util-ir.cc
index 1994302f7..d2dcb73af 100644
--- a/be/src/exec/kudu-util-ir.cc
+++ b/be/src/exec/kudu/kudu-util-ir.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include <kudu/common/partial_row.h>
 #include "runtime/decimal-value.h"
 
diff --git a/be/src/exec/kudu-util.cc b/be/src/exec/kudu/kudu-util.cc
similarity index 99%
rename from be/src/exec/kudu-util.cc
rename to be/src/exec/kudu/kudu-util.cc
index b2d536863..048256729 100644
--- a/be/src/exec/kudu-util.cc
+++ b/be/src/exec/kudu/kudu-util.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 
 #include <algorithm>
 #include <string>
diff --git a/be/src/exec/kudu-util.h b/be/src/exec/kudu/kudu-util.h
similarity index 100%
rename from be/src/exec/kudu-util.h
rename to be/src/exec/kudu/kudu-util.h
diff --git a/be/src/exec/orc/CMakeLists.txt b/be/src/exec/orc/CMakeLists.txt
new file mode 100644
index 000000000..5a3a4580d
--- /dev/null
+++ b/be/src/exec/orc/CMakeLists.txt
@@ -0,0 +1,32 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/orc")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/orc")
+
+add_library(Orc
+  orc-column-readers.cc
+  orc-metadata-utils.cc
+  hdfs-orc-scanner.cc
+)
+
+add_dependencies(Orc gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/hdfs-orc-scanner.cc b/be/src/exec/orc/hdfs-orc-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-orc-scanner.cc
rename to be/src/exec/orc/hdfs-orc-scanner.cc
index 0f9d23b64..ca62de143 100644
--- a/be/src/exec/hdfs-orc-scanner.cc
+++ b/be/src/exec/orc/hdfs-orc-scanner.cc
@@ -15,13 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-orc-scanner.h"
+#include "exec/orc/hdfs-orc-scanner.h"
 
 #include <queue>
 #include <set>
 
 #include "exec/exec-node.inline.h"
-#include "exec/orc-column-readers.h"
+#include "exec/orc/orc-column-readers.h"
 #include "exec/scanner-context.inline.h"
 #include "exprs/expr.h"
 #include "exprs/scalar-expr.h"
diff --git a/be/src/exec/hdfs-orc-scanner.h b/be/src/exec/orc/hdfs-orc-scanner.h
similarity index 99%
rename from be/src/exec/hdfs-orc-scanner.h
rename to be/src/exec/orc/hdfs-orc-scanner.h
index 5e2f72226..33ce0f875 100644
--- a/be/src/exec/hdfs-orc-scanner.h
+++ b/be/src/exec/orc/hdfs-orc-scanner.h
@@ -29,7 +29,7 @@
 #include "exec/acid-metadata-utils.h"
 #include "exec/hdfs-columnar-scanner.h"
 #include "exec/hdfs-scan-node.h"
-#include "exec/orc-metadata-utils.h"
+#include "exec/orc/orc-metadata-utils.h"
 #include "util/runtime-profile-counters.h"
 
 namespace impala {
diff --git a/be/src/exec/orc-column-readers.cc b/be/src/exec/orc/orc-column-readers.cc
similarity index 99%
rename from be/src/exec/orc-column-readers.cc
rename to be/src/exec/orc/orc-column-readers.cc
index b08ccecb8..5dfbb4f7c 100644
--- a/be/src/exec/orc-column-readers.cc
+++ b/be/src/exec/orc/orc-column-readers.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/orc-column-readers.h"
+#include "exec/orc/orc-column-readers.h"
 
 #include <queue>
 
diff --git a/be/src/exec/orc-column-readers.h b/be/src/exec/orc/orc-column-readers.h
similarity index 99%
rename from be/src/exec/orc-column-readers.h
rename to be/src/exec/orc/orc-column-readers.h
index 1fa79e592..7dd967a5c 100644
--- a/be/src/exec/orc-column-readers.h
+++ b/be/src/exec/orc/orc-column-readers.h
@@ -21,7 +21,7 @@
 #include <orc/OrcFile.hh>
 #include <queue>
 
-#include "exec/hdfs-orc-scanner.h"
+#include "exec/orc/hdfs-orc-scanner.h"
 #include "exec/scratch-tuple-batch.h"
 
 namespace impala {
diff --git a/be/src/exec/orc-metadata-utils.cc b/be/src/exec/orc/orc-metadata-utils.cc
similarity index 99%
rename from be/src/exec/orc-metadata-utils.cc
rename to be/src/exec/orc/orc-metadata-utils.cc
index a8fbf58c6..95e37f939 100644
--- a/be/src/exec/orc-metadata-utils.cc
+++ b/be/src/exec/orc/orc-metadata-utils.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/orc-metadata-utils.h"
+#include "exec/orc/orc-metadata-utils.h"
 
 #include <stack>
 
diff --git a/be/src/exec/orc-metadata-utils.h b/be/src/exec/orc/orc-metadata-utils.h
similarity index 100%
rename from be/src/exec/orc-metadata-utils.h
rename to be/src/exec/orc/orc-metadata-utils.h
diff --git a/be/src/exec/rcfile/CMakeLists.txt b/be/src/exec/rcfile/CMakeLists.txt
new file mode 100644
index 000000000..b64c5c39a
--- /dev/null
+++ b/be/src/exec/rcfile/CMakeLists.txt
@@ -0,0 +1,30 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/rcfile")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/rcfile")
+
+add_library(Rcfile
+  hdfs-rcfile-scanner.cc
+)
+
+add_dependencies(Rcfile gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/hdfs-rcfile-scanner.cc b/be/src/exec/rcfile/hdfs-rcfile-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-rcfile-scanner.cc
rename to be/src/exec/rcfile/hdfs-rcfile-scanner.cc
index b59da3ab3..2776a1db1 100644
--- a/be/src/exec/hdfs-rcfile-scanner.cc
+++ b/be/src/exec/rcfile/hdfs-rcfile-scanner.cc
@@ -15,13 +15,13 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-rcfile-scanner.h"
+#include "exec/rcfile/hdfs-rcfile-scanner.h"
 
 #include <boost/algorithm/string.hpp>
 
 #include "exec/exec-node.inline.h"
 #include "exec/hdfs-scan-node.h"
-#include "exec/hdfs-sequence-scanner.h"
+#include "exec/sequence/hdfs-sequence-scanner.h"
 #include "exec/scanner-context.inline.h"
 #include "exec/text-converter.inline.h"
 #include "runtime/descriptors.h"
diff --git a/be/src/exec/hdfs-rcfile-scanner.h b/be/src/exec/rcfile/hdfs-rcfile-scanner.h
similarity index 100%
rename from be/src/exec/hdfs-rcfile-scanner.h
rename to be/src/exec/rcfile/hdfs-rcfile-scanner.h
diff --git a/be/src/exec/scan-node.cc b/be/src/exec/scan-node.cc
index d036d5b62..fb9042334 100644
--- a/be/src/exec/scan-node.cc
+++ b/be/src/exec/scan-node.cc
@@ -21,9 +21,9 @@
 #include <boost/bind.hpp>
 
 #include "exec/data-source-scan-node.h"
-#include "exec/hbase-scan-node.h"
-#include "exec/kudu-scan-node-mt.h"
-#include "exec/kudu-scan-node.h"
+#include "exec/hbase/hbase-scan-node.h"
+#include "exec/kudu/kudu-scan-node-mt.h"
+#include "exec/kudu/kudu-scan-node.h"
 #include "exprs/scalar-expr.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "runtime/blocking-row-batch-queue.h"
diff --git a/be/src/exec/sequence/CMakeLists.txt b/be/src/exec/sequence/CMakeLists.txt
new file mode 100644
index 000000000..f6f528ab2
--- /dev/null
+++ b/be/src/exec/sequence/CMakeLists.txt
@@ -0,0 +1,30 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/sequence")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/sequence")
+
+add_library(Sequence
+  hdfs-sequence-scanner.cc
+)
+
+add_dependencies(Sequence gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/hdfs-sequence-scanner.cc b/be/src/exec/sequence/hdfs-sequence-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-sequence-scanner.cc
rename to be/src/exec/sequence/hdfs-sequence-scanner.cc
index 002c54da2..2e3268295 100644
--- a/be/src/exec/hdfs-sequence-scanner.cc
+++ b/be/src/exec/sequence/hdfs-sequence-scanner.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-sequence-scanner.h"
+#include "exec/sequence/hdfs-sequence-scanner.h"
 
 #include <string.h>
 #include <algorithm>
diff --git a/be/src/exec/hdfs-sequence-scanner.h b/be/src/exec/sequence/hdfs-sequence-scanner.h
similarity index 100%
rename from be/src/exec/hdfs-sequence-scanner.h
rename to be/src/exec/sequence/hdfs-sequence-scanner.h
diff --git a/be/src/exec/text/CMakeLists.txt b/be/src/exec/text/CMakeLists.txt
new file mode 100644
index 000000000..76ed4fd74
--- /dev/null
+++ b/be/src/exec/text/CMakeLists.txt
@@ -0,0 +1,31 @@
+# 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.
+
+cmake_minimum_required(VERSION 2.6)
+
+# where to put generated libraries
+set(LIBRARY_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/text")
+
+# where to put generated binaries
+set(EXECUTABLE_OUTPUT_PATH "${BUILD_OUTPUT_ROOT_DIRECTORY}/exec/text")
+
+add_library(Text
+  hdfs-text-scanner.cc
+  hdfs-plugin-text-scanner.cc
+)
+
+add_dependencies(Text gen-deps)
\ No newline at end of file
diff --git a/be/src/exec/hdfs-plugin-text-scanner.cc b/be/src/exec/text/hdfs-plugin-text-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-plugin-text-scanner.cc
rename to be/src/exec/text/hdfs-plugin-text-scanner.cc
index 76772f025..23a180e98 100644
--- a/be/src/exec/hdfs-plugin-text-scanner.cc
+++ b/be/src/exec/text/hdfs-plugin-text-scanner.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-plugin-text-scanner.h"
+#include "exec/text/hdfs-plugin-text-scanner.h"
 
 #include <algorithm>
 
diff --git a/be/src/exec/hdfs-plugin-text-scanner.h b/be/src/exec/text/hdfs-plugin-text-scanner.h
similarity index 100%
rename from be/src/exec/hdfs-plugin-text-scanner.h
rename to be/src/exec/text/hdfs-plugin-text-scanner.h
diff --git a/be/src/exec/hdfs-text-scanner.cc b/be/src/exec/text/hdfs-text-scanner.cc
similarity index 99%
rename from be/src/exec/hdfs-text-scanner.cc
rename to be/src/exec/text/hdfs-text-scanner.cc
index 9338662c0..a592ad7c9 100644
--- a/be/src/exec/hdfs-text-scanner.cc
+++ b/be/src/exec/text/hdfs-text-scanner.cc
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-#include "exec/hdfs-text-scanner.h"
+#include "exec/text/hdfs-text-scanner.h"
 
 #include <string.h>
 #include <algorithm>
@@ -32,7 +32,7 @@
 #include "exec/delimited-text-parser.h"
 #include "exec/delimited-text-parser.inline.h"
 #include "exec/exec-node.inline.h"
-#include "exec/hdfs-plugin-text-scanner.h"
+#include "exec/text/hdfs-plugin-text-scanner.h"
 #include "exec/hdfs-scan-node-base.h"
 #include "exec/hdfs-scan-node.h"
 #include "exec/scanner-context.h"
diff --git a/be/src/exec/hdfs-text-scanner.h b/be/src/exec/text/hdfs-text-scanner.h
similarity index 100%
rename from be/src/exec/hdfs-text-scanner.h
rename to be/src/exec/text/hdfs-text-scanner.h
diff --git a/be/src/exprs/kudu-partition-expr.cc b/be/src/exprs/kudu-partition-expr.cc
index bad0011f4..dbde3608a 100644
--- a/be/src/exprs/kudu-partition-expr.cc
+++ b/be/src/exprs/kudu-partition-expr.cc
@@ -21,7 +21,7 @@
 
 #include "codegen/codegen-anyval.h"
 #include "codegen/llvm-codegen.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "gutil/strings/substitute.h"
 #include "runtime/exec-env.h"
diff --git a/be/src/rpc/authentication.cc b/be/src/rpc/authentication.cc
index 9eb643255..bbf99977e 100644
--- a/be/src/rpc/authentication.cc
+++ b/be/src/rpc/authentication.cc
@@ -41,7 +41,7 @@
 
 #include <ldap.h>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/sasl_common.h"
 #include "kudu/security/gssapi.h"
 #include "kudu/security/init.h"
diff --git a/be/src/rpc/impala-service-pool.cc b/be/src/rpc/impala-service-pool.cc
index 2f774bd0e..009df3a9d 100644
--- a/be/src/rpc/impala-service-pool.cc
+++ b/be/src/rpc/impala-service-pool.cc
@@ -23,7 +23,7 @@
 #include <vector>
 #include <glog/logging.h>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "gutil/strings/numbers.h"
 #include "kudu/gutil/gscoped_ptr.h"
 #include "kudu/gutil/ref_counted.h"
diff --git a/be/src/rpc/rpc-mgr-kerberized-test.cc b/be/src/rpc/rpc-mgr-kerberized-test.cc
index 763dbdb9d..b01e81492 100644
--- a/be/src/rpc/rpc-mgr-kerberized-test.cc
+++ b/be/src/rpc/rpc-mgr-kerberized-test.cc
@@ -19,7 +19,7 @@
 
 #include <boost/filesystem/operations.hpp>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "rpc/auth-provider.h"
 #include "service/fe-support.h"
 #include "testutil/mini-kdc-wrapper.h"
diff --git a/be/src/rpc/rpc-mgr-test.h b/be/src/rpc/rpc-mgr-test.h
index 20caceed5..74309543b 100644
--- a/be/src/rpc/rpc-mgr-test.h
+++ b/be/src/rpc/rpc-mgr-test.h
@@ -19,7 +19,7 @@
 #define IMPALA_RPC_RPC_MGR_TEST_H
 
 #include "common/init.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/rpc/rpc_controller.h"
diff --git a/be/src/rpc/rpc-mgr.cc b/be/src/rpc/rpc-mgr.cc
index 74795a487..926739519 100644
--- a/be/src/rpc/rpc-mgr.cc
+++ b/be/src/rpc/rpc-mgr.cc
@@ -21,7 +21,7 @@
 #include <google/protobuf/descriptor.pb.h>
 #include <google/protobuf/message.h>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/acceptor_pool.h"
 #include "kudu/rpc/remote_user.h"
 #include "kudu/rpc/rpc_context.h"
diff --git a/be/src/rpc/rpc-mgr.inline.h b/be/src/rpc/rpc-mgr.inline.h
index dd7d31720..8f819d0d9 100644
--- a/be/src/rpc/rpc-mgr.inline.h
+++ b/be/src/rpc/rpc-mgr.inline.h
@@ -22,7 +22,7 @@
 
 #include <gflags/gflags.h>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/messenger.h"
 #include "kudu/rpc/rpc_header.pb.h"
 #include "kudu/rpc/service_pool.h"
diff --git a/be/src/runtime/coordinator-backend-state.cc b/be/src/runtime/coordinator-backend-state.cc
index c376bd7af..2df0626cc 100644
--- a/be/src/runtime/coordinator-backend-state.cc
+++ b/be/src/runtime/coordinator-backend-state.cc
@@ -21,7 +21,7 @@
 
 #include "common/object-pool.h"
 #include "exec/exec-node.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exec/scan-node.h"
 #include "gen-cpp/data_stream_service.proxy.h"
 #include "kudu/rpc/rpc_controller.h"
diff --git a/be/src/runtime/exec-env.cc b/be/src/runtime/exec-env.cc
index f529b6466..dd1bc076c 100644
--- a/be/src/runtime/exec-env.cc
+++ b/be/src/runtime/exec-env.cc
@@ -26,7 +26,7 @@
 #include "catalog/catalog-service-client-wrapper.h"
 #include "common/logging.h"
 #include "common/object-pool.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/service_if.h"
 #include "rpc/rpc-mgr.h"
 #include "runtime/bufferpool/buffer-pool.h"
diff --git a/be/src/runtime/io/data-cache.cc b/be/src/runtime/io/data-cache.cc
index 3457c1b17..71ea2452a 100644
--- a/be/src/runtime/io/data-cache.cc
+++ b/be/src/runtime/io/data-cache.cc
@@ -27,7 +27,7 @@
 #include <glog/logging.h>
 
 #include "common/compiler-util.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/util/env.h"
 #include "kudu/util/locks.h"
 #include "kudu/util/path_util.h"
diff --git a/be/src/runtime/krpc-data-stream-mgr.cc b/be/src/runtime/krpc-data-stream-mgr.cc
index 32a62d03d..42258f31d 100644
--- a/be/src/runtime/krpc-data-stream-mgr.cc
+++ b/be/src/runtime/krpc-data-stream-mgr.cc
@@ -25,7 +25,7 @@
 #include "kudu/util/net/sockaddr.h"
 #include "kudu/util/trace.h"
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "runtime/exec-env.h"
 #include "runtime/krpc-data-stream-recvr.h"
 #include "runtime/mem-tracker.h"
diff --git a/be/src/runtime/krpc-data-stream-recvr.cc b/be/src/runtime/krpc-data-stream-recvr.cc
index 97aa406b2..6fd42236f 100644
--- a/be/src/runtime/krpc-data-stream-recvr.cc
+++ b/be/src/runtime/krpc-data-stream-recvr.cc
@@ -21,7 +21,7 @@
 #include <mutex>
 #include <queue>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/util/monotime.h"
 #include "kudu/util/trace.h"
diff --git a/be/src/runtime/krpc-data-stream-sender.cc b/be/src/runtime/krpc-data-stream-sender.cc
index 3f278af52..6b724abf2 100644
--- a/be/src/runtime/krpc-data-stream-sender.cc
+++ b/be/src/runtime/krpc-data-stream-sender.cc
@@ -27,7 +27,7 @@
 #include "common/logging.h"
 #include "codegen/codegen-anyval.h"
 #include "codegen/llvm-codegen.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/scalar-expr.h"
 #include "exprs/scalar-expr-evaluator.h"
 #include "gutil/strings/substitute.h"
diff --git a/be/src/runtime/query-state.cc b/be/src/runtime/query-state.cc
index 733a90b51..25a60d10a 100644
--- a/be/src/runtime/query-state.cc
+++ b/be/src/runtime/query-state.cc
@@ -21,7 +21,7 @@
 
 #include "codegen/llvm-codegen.h"
 #include "common/thread-debug-info.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/expr.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/rpc/rpc_controller.h"
diff --git a/be/src/service/client-request-state.cc b/be/src/service/client-request-state.cc
index 125598661..d552a5012 100644
--- a/be/src/service/client-request-state.cc
+++ b/be/src/service/client-request-state.cc
@@ -29,7 +29,7 @@
 
 #include "catalog/catalog-service-client-wrapper.h"
 #include "common/status.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "exprs/timezone_db.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "rpc/rpc-mgr.inline.h"
diff --git a/be/src/service/control-service.cc b/be/src/service/control-service.cc
index 8e1dd2d19..c046520e3 100644
--- a/be/src/service/control-service.cc
+++ b/be/src/service/control-service.cc
@@ -19,7 +19,7 @@
 
 #include "common/constant-strings.h"
 #include "common/thread-debug-info.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/rpc/rpc_controller.h"
 #include "rpc/rpc-mgr.h"
diff --git a/be/src/service/data-stream-service.cc b/be/src/service/data-stream-service.cc
index 4cb863585..bbc8b4196 100644
--- a/be/src/service/data-stream-service.cc
+++ b/be/src/service/data-stream-service.cc
@@ -21,7 +21,7 @@
 
 #include "common/constant-strings.h"
 #include "common/status.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/rpc/rpc_context.h"
 #include "kudu/util/monotime.h"
 #include "rpc/rpc-mgr.h"
diff --git a/be/src/service/impalad-main.cc b/be/src/service/impalad-main.cc
index d65bcc81c..df51e8570 100644
--- a/be/src/service/impalad-main.cc
+++ b/be/src/service/impalad-main.cc
@@ -27,8 +27,8 @@
 #include "common/init.h"
 #include "common/logging.h"
 #include "common/status.h"
-#include "exec/hbase-table-scanner.h"
-#include "exec/hbase-table-writer.h"
+#include "exec/hbase/hbase-table-scanner.h"
+#include "exec/hbase/hbase-table-writer.h"
 #include "exprs/hive-udf-call.h"
 #include "exprs/timezone_db.h"
 #include "gen-cpp/ImpalaService.h"
diff --git a/be/src/testutil/mini-kdc-wrapper.cc b/be/src/testutil/mini-kdc-wrapper.cc
index 11c4d6441..ec019b602 100644
--- a/be/src/testutil/mini-kdc-wrapper.cc
+++ b/be/src/testutil/mini-kdc-wrapper.cc
@@ -20,7 +20,7 @@
 #include <string>
 
 #include "common/names.h"
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "gutil/strings/substitute.h"
 #include "kudu/util/env.h"
 #include "rpc/auth-provider.h"
diff --git a/be/src/util/network-util.cc b/be/src/util/network-util.cc
index 484e1be2b..f0c352abe 100644
--- a/be/src/util/network-util.cc
+++ b/be/src/util/network-util.cc
@@ -30,7 +30,7 @@
 #include <boost/uuid/uuid.hpp>
 #include <boost/uuid/uuid_generators.hpp>
 
-#include "exec/kudu-util.h"
+#include "exec/kudu/kudu-util.h"
 #include "kudu/util/net/sockaddr.h"
 #include "util/debug-util.h"
 #include "util/error-util.h"


[impala] 01/02: IMPALA-11469: (Addendum) Initialize BackendConfig

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

asherman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit c1610a16377ae1254943cf321440060a41531d24
Author: Michael Smith <mi...@cloudera.com>
AuthorDate: Tue Aug 9 15:44:44 2022 -0700

    IMPALA-11469: (Addendum) Initialize BackendConfig
    
    Adds FrontendTestBase base class to FileMetadataLoaderTest to ensure
    BackendConfig is set. Also switches FileSystemUtilTest to use
    FrontendTestBase to be more consistent around initialization.
    
    Failure to initialize BackendConfig meant that test success would depend
    on their order. If FileSystemUtilTest or another test that initialized
    it were the first to use FileSystemUtil, then everything would pass. If
    not, the static declaration in FileSystemUtil would fail, causing the
    class to fail to be loaded. Later tests would fail with NoClassDefFound
    errors.
    
    Testing:
    - Ran frontend tests individually.
    
    Change-Id: Iaefea5ac982e42a8b0f3b693d16a8db10cc7de31
    Reviewed-on: http://gerrit.cloudera.org:8080/18840
    Reviewed-by: Impala Public Jenkins <im...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 .../org/apache/impala/catalog/FileMetadataLoaderTest.java    |  3 ++-
 .../java/org/apache/impala/common/FileSystemUtilTest.java    | 12 ++----------
 2 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/fe/src/test/java/org/apache/impala/catalog/FileMetadataLoaderTest.java b/fe/src/test/java/org/apache/impala/catalog/FileMetadataLoaderTest.java
index 51070e201..a92595464 100644
--- a/fe/src/test/java/org/apache/impala/catalog/FileMetadataLoaderTest.java
+++ b/fe/src/test/java/org/apache/impala/catalog/FileMetadataLoaderTest.java
@@ -32,6 +32,7 @@ import org.apache.hadoop.hive.common.ValidWriteIdList;
 import org.apache.hadoop.hive.metastore.api.MetaException;
 import org.apache.impala.catalog.HdfsPartition.FileDescriptor;
 import org.apache.impala.compat.MetastoreShim;
+import org.apache.impala.common.FrontendTestBase;
 import org.apache.impala.thrift.TNetworkAddress;
 import org.apache.impala.util.ListMap;
 import org.junit.Test;
@@ -39,7 +40,7 @@ import org.junit.Test;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.ImmutableList;
 
-public class FileMetadataLoaderTest {
+public class FileMetadataLoaderTest extends FrontendTestBase {
 
   @Test
   public void testRecursiveLoading() throws IOException, CatalogException {
diff --git a/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java b/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
index dba2bf4c4..c7e339ebc 100644
--- a/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
+++ b/fe/src/test/java/org/apache/impala/common/FileSystemUtilTest.java
@@ -25,9 +25,9 @@ import static org.junit.Assert.assertEquals;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
+import org.apache.impala.common.FrontendTestBase;
 import org.apache.impala.service.BackendConfig;
 import org.apache.impala.thrift.TBackendGflags;
-import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
@@ -39,20 +39,12 @@ import java.util.List;
 /**
  * Tests for the various util methods in FileSystemUtil class
  */
-public class FileSystemUtilTest {
+public class FileSystemUtilTest extends FrontendTestBase {
   private static final String HIVE_TEMP_FILE_PREFIX = "_tmp.";
   private static final String SPARK_TEMP_FILE_PREFIX = "_spark_metadata";
   private static final Path TEST_TABLE_PATH = new Path("/test-warehouse/foo"
       + ".db/filesystem-util-test");
 
-  @Before
-  public void setUp()  {
-    // Make sure BackendConfig is initialized.
-    if (BackendConfig.INSTANCE == null) {
-      BackendConfig.create(new TBackendGflags());
-    }
-  }
-
   @Test
   public void testIsInIgnoredDirectory() {
     // test positive cases