diff --git a/asterix-yarn/src/main/assembly/binary-assembly.xml b/asterix-yarn/src/main/assembly/binary-assembly.xml
index 8457c66..c84a51a 100644
--- a/asterix-yarn/src/main/assembly/binary-assembly.xml
+++ b/asterix-yarn/src/main/assembly/binary-assembly.xml
@@ -64,8 +64,8 @@
     <dependencySets>
         <dependencySet>
             <includes>
-                <include>edu.uci.ics.asterix:asterix-yarn</include>
-                <include>edu.uci.ics.asterix:asterix-common</include>
+                <include>org.apache.asterix:asterix-yarn</include>
+                <include>org.apache.asterix:asterix-common</include>
                 <include>log4j:log4j</include>
                 <include>org.slf4j:slf4j-api</include>
                 <include>org.slf4j:slf4j-simple</include>
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AConstants.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AConstants.java
index 587ae80..ca4ad25 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AConstants.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AConstants.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixApplicationMaster.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixApplicationMaster.java
index 1539a34..e84135e 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixApplicationMaster.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixApplicationMaster.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -74,11 +74,11 @@
 import org.apache.hadoop.yarn.util.ConverterUtils;
 import org.apache.hadoop.yarn.util.Records;
 
-import edu.uci.ics.asterix.common.config.GlobalConfig;
-import edu.uci.ics.asterix.common.exceptions.AsterixException;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Cluster;
-import edu.uci.ics.asterix.event.schema.yarnCluster.MasterNode;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Node;
+import org.apache.asterix.common.config.GlobalConfig;
+import org.apache.asterix.common.exceptions.AsterixException;
+import org.apache.asterix.event.schema.yarnCluster.Cluster;
+import org.apache.asterix.event.schema.yarnCluster.MasterNode;
+import org.apache.asterix.event.schema.yarnCluster.Node;
 import org.apache.log4j.ConsoleAppender;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
@@ -102,10 +102,10 @@
     private static final int NC_MEMORY_MBS_DEFAULT = 1536;
     private static final String EXTERNAL_CC_JAVA_OPTS_DEFAULT = "-Xmx" + CC_MEMORY_MBS_DEFAULT + "m";
     private static final String EXTERNAL_NC_JAVA_OPTS_DEFAULT = "-Xmx" + NC_MEMORY_MBS_DEFAULT + "m";
-    private static final String OBLITERATOR_CLASSNAME = "edu.uci.ics.asterix.aoya.Deleter";
-    private static final String HDFS_BACKUP_CLASSNAME = "edu.uci.ics.asterix.aoya.HDFSBackup";
-    private static final String NC_CLASSNAME = "edu.uci.ics.hyracks.control.nc.NCDriver";
-    private static final String CC_CLASSNAME = "edu.uci.ics.hyracks.control.cc.CCDriver";
+    private static final String OBLITERATOR_CLASSNAME = "org.apache.asterix.aoya.Deleter";
+    private static final String HDFS_BACKUP_CLASSNAME = "org.apache.asterix.aoya.HDFSBackup";
+    private static final String NC_CLASSNAME = "org.apache.hyracks.control.nc.NCDriver";
+    private static final String CC_CLASSNAME = "org.apache.hyracks.control.cc.CCDriver";
     private static final String JAVA_HOME = System.getProperty("java.home");
     private boolean doneAllocating = false;
 
@@ -1025,7 +1025,7 @@
                 //get our java opts
                 vargs.add(ccJavaOpts);
                 vargs.add(CC_CLASSNAME);
-                vargs.add("-app-cc-main-class edu.uci.ics.asterix.hyracks.bootstrap.CCApplicationEntryPoint");
+                vargs.add("-app-cc-main-class org.apache.asterix.hyracks.bootstrap.CCApplicationEntryPoint");
                 vargs.add("-cluster-net-ip-address " + cC.getClusterIp());
                 vargs.add("-client-net-ip-address " + cC.getClientIp());
                 ccStarted.set(true);
@@ -1045,7 +1045,7 @@
                     String storagePath = iodevice + File.separator + storageSuffix;
                     vargs.add(ncJavaOpts);
                     vargs.add(NC_CLASSNAME);
-                    vargs.add("-app-nc-main-class edu.uci.ics.asterix.hyracks.bootstrap.NCApplicationEntryPoint");
+                    vargs.add("-app-nc-main-class org.apache.asterix.hyracks.bootstrap.NCApplicationEntryPoint");
                     vargs.add("-node-id " + local.getId());
                     vargs.add("-cc-host " + cC.getClusterIp());
                     vargs.add("-iodevices " + storagePath);
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixYARNClient.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixYARNClient.java
index 63b85e6..dc61506 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixYARNClient.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/AsterixYARNClient.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
@@ -76,12 +76,12 @@
 
 import com.google.common.collect.ImmutableMap;
 
-import edu.uci.ics.asterix.common.configuration.AsterixConfiguration;
-import edu.uci.ics.asterix.common.configuration.Coredump;
-import edu.uci.ics.asterix.common.configuration.Store;
-import edu.uci.ics.asterix.common.configuration.TransactionLogDir;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Cluster;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Node;
+import org.apache.asterix.common.configuration.AsterixConfiguration;
+import org.apache.asterix.common.configuration.Coredump;
+import org.apache.asterix.common.configuration.Store;
+import org.apache.asterix.common.configuration.TransactionLogDir;
+import org.apache.asterix.event.schema.yarnCluster.Cluster;
+import org.apache.asterix.event.schema.yarnCluster.Node;
 
 @InterfaceAudience.Public
 @InterfaceStability.Unstable
@@ -147,7 +147,7 @@
     private int amMemory = 1000;
 
     // Main class to invoke application master
-    private final String appMasterMainClass = "edu.uci.ics.asterix.aoya.AsterixApplicationMaster";
+    private final String appMasterMainClass = "org.apache.asterix.aoya.AsterixApplicationMaster";
 
     //instance name
     private String instanceName = "";
@@ -1301,7 +1301,7 @@
      */
     private void readConfigParams(AsterixConfiguration configuration){
         //this is the "base" config that is inside the zip, we start here
-        for (edu.uci.ics.asterix.common.configuration.Property property : configuration.getProperty()) {
+        for (org.apache.asterix.common.configuration.Property property : configuration.getProperty()) {
             if (property.getName().equalsIgnoreCase(CC_JAVA_OPTS_KEY)) {
                 ccJavaOpts = property.getValue();
             } else if (property.getName().equalsIgnoreCase(NC_JAVA_OPTS_KEY)) {
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/Deleter.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/Deleter.java
index 943b8ec..af72bad 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/Deleter.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/Deleter.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/HDFSBackup.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/HDFSBackup.java
index ff53355..1efc459 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/HDFSBackup.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/HDFSBackup.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/asterix-yarn/src/main/java/org/apache/asterix/aoya/Utils.java b/asterix-yarn/src/main/java/org/apache/asterix/aoya/Utils.java
index af3aebd..4499576 100644
--- a/asterix-yarn/src/main/java/org/apache/asterix/aoya/Utils.java
+++ b/asterix-yarn/src/main/java/org/apache/asterix/aoya/Utils.java
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package edu.uci.ics.asterix.aoya;
+package org.apache.asterix.aoya;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -45,9 +45,9 @@
 import org.apache.hadoop.yarn.client.api.YarnClient;
 import org.apache.hadoop.yarn.exceptions.YarnException;
 
-import edu.uci.ics.asterix.common.configuration.AsterixConfiguration;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Cluster;
-import edu.uci.ics.asterix.event.schema.yarnCluster.Node;
+import org.apache.asterix.common.configuration.AsterixConfiguration;
+import org.apache.asterix.event.schema.yarnCluster.Cluster;
+import org.apache.asterix.event.schema.yarnCluster.Node;
 
 public class Utils {
 
diff --git a/asterix-yarn/src/main/resources/configs/asterix-client-log4j.properties b/asterix-yarn/src/main/resources/configs/asterix-client-log4j.properties
index 4b936b5..0f7f494 100644
--- a/asterix-yarn/src/main/resources/configs/asterix-client-log4j.properties
+++ b/asterix-yarn/src/main/resources/configs/asterix-client-log4j.properties
@@ -19,5 +19,5 @@
 # Print the date in ISO 8601 format
 log4j.appender.A1.layout.ConversionPattern=%-p: %m%n
 
-log4j.logger.edu.uci.ics.asterix.event.management=info
+log4j.logger.org.apache.asterix.event.management=info
 log4j.logger.org.apache.zookeeper=info
diff --git a/asterix-yarn/src/main/resources/scripts/asterix b/asterix-yarn/src/main/resources/scripts/asterix
index c2fc20f..4acc431 100644
--- a/asterix-yarn/src/main/resources/scripts/asterix
+++ b/asterix-yarn/src/main/resources/scripts/asterix
@@ -21,5 +21,5 @@
 ASTERIX_CLASSPATH=$ASTERIX_CLASSPATH:$YARN_CONF_DIR:$HADOOP_CONF_DIR:$HADOOP_CONF_PATH
 pushd $(dirname $0) > /dev/null
 cd $ASTERIX_HOME
-java $JAVA_OPTS -cp $ASTERIX_CLASSPATH -Dlog4j.configuration=file://$ASTERIX_HOME/conf/asterix-client-log4j.properties edu.uci.ics.asterix.aoya.AsterixYARNClient $@
+java $JAVA_OPTS -cp $ASTERIX_CLASSPATH -Dlog4j.configuration=file://$ASTERIX_HOME/conf/asterix-client-log4j.properties org.apache.asterix.aoya.AsterixYARNClient $@
 popd > /dev/null
diff --git a/asterix-yarn/src/main/resources/scripts/asterix.cmd b/asterix-yarn/src/main/resources/scripts/asterix.cmd
index a85e411..e60e09c 100644
--- a/asterix-yarn/src/main/resources/scripts/asterix.cmd
+++ b/asterix-yarn/src/main/resources/scripts/asterix.cmd
@@ -31,7 +31,7 @@
 
 :main
 
-  set CLASS=edu.uci.ics.asterix.aoya.AsterixYARNClient
+  set CLASS=org.apache.asterix.aoya.AsterixYARNClient
 
   @rem JAVA and JAVA_HEAP_MAX and set in hadoop-config.cmd
 
