FAQ
Author: ekoifman
Date: Mon Apr 20 21:24:51 2015
New Revision: 1674988

URL: http://svn.apache.org/r1674988
Log:
HIVE-7948 - Add an E2E test to verify fix for HIVE-7155 (Aswathy Chellammal Sreekumar via Eugene Koifman)

Added:
     hive/trunk/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml
     hive/trunk/hcatalog/src/test/e2e/templeton/deployers/modify_webhcat_config.sh
     hive/trunk/hcatalog/src/test/e2e/templeton/deployers/restore_webhcat_config.sh
     hive/trunk/hcatalog/src/test/e2e/templeton/tests/modifyConfiguration.conf
Modified:
     hive/trunk/hcatalog/src/test/e2e/templeton/README.txt
     hive/trunk/hcatalog/src/test/e2e/templeton/build.xml
     hive/trunk/hcatalog/src/test/e2e/templeton/deployers/deploy_e2e_artifacts.sh
     hive/trunk/hcatalog/src/test/e2e/templeton/deployers/env.sh

Modified: hive/trunk/hcatalog/src/test/e2e/templeton/README.txt
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/README.txt?rev=1674988&r1=1674987&r2=1674988&view=diff
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/README.txt (original)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/README.txt Mon Apr 20 21:24:51 2015
@@ -205,6 +205,19 @@ Here is the schema of the table writen i
  To prevent primary key violation and sqoop import directory conflict, make sure the "PERSON" table is empty
  and the folder hdfs://hostname:8020/sqoopoutputdir doesn't exist before running the test.

+Running updateConfig tests
+--------------------------
+ant test-updateConfig -Dinpdir.hdfs=<location of inpdir on hdfs> -Dtest.user.name=<user the tests should run as> \
+ -Dsecure.mode=<yes/no> -Dharness.webhdfs.url=<webhdfs url upto port num> -Dharness.templeton.url=<templeton url upto port num>
+
+This test suite is trying to verify the use of property templeton.mapper.memory.mb in webhcat-site.xml.
+For this, an attempt is made to load data of size greater than 100MB, from one hive table to another hive table,
+with the templeton.mapper.memory.mb set to a very low value. This is a negative test case that expects the failure of map job
+due to insufficient memory.
+
+For running this test suite templeton.mapper.memory.mb property should be set to 0.01 in webhcat-site.xml. This could be done by
+running modify_webhcat_config.sh in deployers/. Once the test run finishes, the change could be reverted by running restore_webhcat_config.sh
+
  Notes
  -----
  It's best to set HADOOP_HOME_WARN_SUPPRESS=true everywhere you can.

Modified: hive/trunk/hcatalog/src/test/e2e/templeton/build.xml
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/build.xml?rev=1674988&r1=1674987&r2=1674988&view=diff
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/build.xml (original)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/build.xml Mon Apr 20 21:24:51 2015
@@ -197,6 +197,35 @@
          </exec>
      </target>

+ <target name="test-updateConfig" depends="property-check, init-test">
+ <!-- fork (parallelization) factors for e2e tests execution.
+ Defaults are 1, which means *no* parellelization: -->
+ <property name="fork.factor.group" value="1"/>
+ <property name="fork.factor.conf.file" value="1"/>
+ <property name="e2e.debug" value="false"/>
+ <property name="tests.to.run" value=""/>
+ <exec executable="perl" dir="${test.location}" failonerror="true">
+ <env key="HARNESS_ROOT" value="."/>
+ <env key="TH_WORKING_DIR" value="${test.location}"/>
+ <env key="TH_INPDIR_LOCAL" value="${inpdir.local}"/>
+ <env key="TH_INPDIR_HDFS" value="${inpdir.hdfs}"/>
+ <env key="TH_OUT" value="."/>
+ <env key="TH_ROOT" value="."/>
+ <env key="FORK_FACTOR_GROUP" value="${fork.factor.group}"/>
+ <env key="FORK_FACTOR_FILE" value="${fork.factor.conf.file}"/>
+ <env key="E2E_DEBUG" value="${e2e.debug}"/>
+ <env key="WEBHDFS_URL" value="${harness.webhdfs.url}"/>
+ <env key="TEMPLETON_URL" value="${harness.templeton.url}"/>
+ <env key="USER_NAME" value="${test.user.name}"/>
+ <env key="DOAS_USER" value="${doas.user}"/>
+ <env key="HARNESS_CONF" value="${basedir}/conf/default.conf"/>
+ <env key="SECURE_MODE" value="${secure.mode}"/>
+ <arg value="./test_harness.pl"/>
+ <arg line="${tests.to.run}"/>
+ <arg value="${basedir}/tests/modifyConfiguration.conf"/>
+ </exec>
+ </target>
+
      <target name="clean">
          <delete dir="${test.location}"/>
          <delete file="${tar.name}"/>

Added: hive/trunk/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml?rev=1674988&view=auto
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml (added)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml Mon Apr 20 21:24:51 2015
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<!-- The default settings for Templeton. -->
+<!-- Edit templeton-site.xml to change settings for your local -->
+<!-- install. -->
+
+<configuration>
+<!--TODO:
+1. make pig/hive versions env variables-->
+
+ <property>
+ <name>templeton.hcat</name>
+ <value>${env.HCAT_PREFIX}/bin/hcat</value>
+ <description>The path to the hcatalog executable.</description>
+ </property>
+
+ <property>
+ <name>templeton.libjars</name>
+ <value>${env.TEMPLETON_HOME}/../lib/zookeeper-3.4.5.jar</value>
+ <description>Jars to add to the classpath.</description>
+ </property>
+
+ <property>
+ <name>templeton.pig.archive</name>
+ <value>hdfs:///apps/templeton/pig-${env.PIG_VERSION}.tar.gz</value>
+ <description>The path to the Pig archive.</description>
+ </property>
+ <property>
+ <name>templeton.pig.path</name>
+ <value>pig-${env.PIG_VERSION}.tar.gz/pig-${env.PIG_VERSION}/bin/pig</value>
+ <description>The path to the Pig executable.</description>
+ </property>
+ <property>
+ <name>templeton.hive.archive</name>
+ <value>hdfs:///apps/templeton/apache-hive-${env.HIVE_VERSION}-bin.tar.gz</value>
+ <description>The path to the Hive archive.</description>
+ </property>
+
+ <property>
+ <name>templeton.hive.path</name>
+ <value>apache-hive-${env.HIVE_VERSION}-bin.tar.gz/apache-hive-${env.HIVE_VERSION}-bin/bin/hive</value>
+ <description>The path to the Hive executable.</description>
+ </property>
+
+ <property>
+ <name>templeton.hive.home</name>
+ <value>apache-hive-${env.HIVE_VERSION}-bin.tar.gz/apache-hive-${env.HIVE_VERSION}-bin</value>
+ <description>The path to the Hive home within the tar. This is needed if
+ Hive is not installed on all nodes in the cluster and needs to be
+ shipped to the target node in the cluster to execute Pig job which uses
+ HCat, Hive query, etc.</description>
+ </property>
+ <property>
+ <name>templeton.hcat.home</name>
+ <value>apache-hive-${env.HIVE_VERSION}-bin.tar.gz/apache-hive-${env.HIVE_VERSION}-bin/hcatalog</value>
+ <description>The path to the HCat home within the tar. This is needed if
+ Hive is not installed on all nodes in the cluster and needs to be
+ shipped to the target node in the cluster to execute Pig job which uses
+ HCat, Hive query, etc.</description>
+ </property>
+ <property>
+ <name>templeton.sqoop.archive</name>
+ <value>hdfs:///apps/templeton/sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz</value>
+ <description>This should point to Sqoop tar that will be shipped to target node executing
+ the actual sqoop command. If not set, Sqoop is expected to be installed on every node of the
+ cluster.</description>
+ </property>
+ <property>
+ <name>templeton.sqoop.path</name>
+ <value>sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz/sqoop-1.4.5.bin__hadoop-2.0.4-alpha/bin/sqoop</value>
+ <description>The path to the Sqoop executable.</description>
+ </property>
+ <property>
+ <name>templeton.sqoop.home</name>
+ <value>sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar.gz/sqoop-1.4.5.bin__hadoop-2.0.4-alpha</value>
+ <description>The path to the Sqoop home in the exploded archive.</description>
+ </property>
+
+ <property>
+ <name>templeton.controller.mr.child.opts</name>
+ <value> -Xmx64m -Djava.net.preferIPv4Stack=true</value>
+ </property>
+
+ <property>
+ <!--\,thrift://127.0.0.1:9933-->
+ <name>templeton.hive.properties</name>
+ <value>hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false</value>
+ </property>
+ <property>
+ <name>templeton.mapper.memory.mb</name>
+ <value>0.01</value>
+ <description>Templeton controller job's Launch mapper's memory limit in
+ megabytes. When submitting controller job, Templeton will overwrite
+ mapreduce.map.memory.mb with this value. If empty, Templeton will
+ not set mapreduce.map.memory.mb when submitting the controller job,
+ therefore the configuration in mapred-site.xml will be used.
+ </description>
+ </property>
+</configuration>

Modified: hive/trunk/hcatalog/src/test/e2e/templeton/deployers/deploy_e2e_artifacts.sh
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/deployers/deploy_e2e_artifacts.sh?rev=1674988&r1=1674987&r2=1674988&view=diff
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/deployers/deploy_e2e_artifacts.sh (original)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/deployers/deploy_e2e_artifacts.sh Mon Apr 20 21:24:51 2015
@@ -25,6 +25,9 @@ source ./env.sh

  echo "Deploying artifacts to HDFS..."

+curl -O http://files.grouplens.org/datasets/movielens/ml-1m.zip
+unzip ml-1m.zip
+mv ml-1m/ratings.dat ${PROJ_HOME}/hcatalog/src/test/e2e/templeton/inpdir/ratings.txt
  ${HADOOP_HOME}/bin/hdfs dfs -put ${PROJ_HOME}/hcatalog/src/test/e2e/templeton/inpdir/ webhcate2e
  #For hadoop1 we copy the same file with 2 names
  #$HADOOP_HOME/bin/hadoop fs -put hadoop-examples-1.2.1.jar webhcate2e/hexamples.jar

Modified: hive/trunk/hcatalog/src/test/e2e/templeton/deployers/env.sh
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/deployers/env.sh?rev=1674988&r1=1674987&r2=1674988&view=diff
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/deployers/env.sh (original)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/deployers/env.sh Mon Apr 20 21:24:51 2015
@@ -65,3 +65,4 @@ export WEBHCAT_LOG_DIR=/tmp/webhcat_e2e/
  export WEBHCAT_PID_DIR=${WEBHCAT_LOG_DIR}
  #config/hive/hive-site.xml should match this path - it doesn't understand env vars
  export METASTORE_DB=${WEBHCAT_LOG_DIR}/wehcat_e2e_metastore_db
+export CONF_BACKUP=/Users/${USER}/tmp
\ No newline at end of file

Added: hive/trunk/hcatalog/src/test/e2e/templeton/deployers/modify_webhcat_config.sh
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/deployers/modify_webhcat_config.sh?rev=1674988&view=auto
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/deployers/modify_webhcat_config.sh (added)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/deployers/modify_webhcat_config.sh Mon Apr 20 21:24:51 2015
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+#This script stops webhcat server, copies pre-canned webhcat-site.xml file required for updateConfig test suite to the webhcat config directory,
+#then starts the webhcat server
+
+
+source ./env.sh
+
+echo "Stopping WebHCat...";
+${HIVE_HOME}/hcatalog/sbin/webhcat_server.sh stop;
+
+if [ ${HIVE_HOME}/hcatalog/etc/webhcat/webhcat-site.xml ]; then
+ mkdir -p ${CONF_BACKUP};
+ cp ${HIVE_HOME}/hcatalog/etc/webhcat/webhcat-site.xml ${CONF_BACKUP}/webhcat-site.xml;
+fi
+
+cp ${PROJ_HOME}/hcatalog/src/test/e2e/templeton/deployers/config/webhcat/webhcat-site.updateConfig.xml ${HIVE_HOME}/hcatalog/etc/webhcat/webhcat-site.xml
+
+echo "Starting WebHCat..."
+${HIVE_HOME}/hcatalog/sbin/webhcat_server.sh start
+
+jps;

Added: hive/trunk/hcatalog/src/test/e2e/templeton/deployers/restore_webhcat_config.sh
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/deployers/restore_webhcat_config.sh?rev=1674988&view=auto
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/deployers/restore_webhcat_config.sh (added)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/deployers/restore_webhcat_config.sh Mon Apr 20 21:24:51 2015
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# 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.
+#
+
+#This script stops webhcat server and restores the webhcat server configurations to the one before test run
+
+
+source ./env.sh
+
+echo "Stopping WebHCat...";
+${HIVE_HOME}/hcatalog/sbin/webhcat_server.sh stop;
+
+rm ${HIVE_HOME}/hcatalog/etc/webhcat/webhcat-site.xml
+
+if [ ${CONF_BACKUP}/webhcat-site.xml ]; then
+ cp ${CONF_BACKUP}/webhcat-site.xml ${HIVE_HOME}/hcatalog/etc/webhcat/webhcat-site.xml
+fi
+
+rm -rf ${CONF_BACKUP};
+

Added: hive/trunk/hcatalog/src/test/e2e/templeton/tests/modifyConfiguration.conf
URL: http://svn.apache.org/viewvc/hive/trunk/hcatalog/src/test/e2e/templeton/tests/modifyConfiguration.conf?rev=1674988&view=auto
==============================================================================
--- hive/trunk/hcatalog/src/test/e2e/templeton/tests/modifyConfiguration.conf (added)
+++ hive/trunk/hcatalog/src/test/e2e/templeton/tests/modifyConfiguration.conf Mon Apr 20 21:24:51 2015
@@ -0,0 +1,67 @@
+# 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.
+
+###############################################################################
+# curl command tests for templeton
+#
+#
+
+#use Yahoo::Miners::Test::PigSetup;
+
+#PigSetup::setup();
+
+#my $me = `whoami`;
+#chomp $me;
+$cfg =
+{
+ 'driver' => 'Curl',
+
+ 'groups' =>
+ [
+##=============================================================================================================
+ {
+ 'name' => 'ModifyWebhcatConfig',
+ 'tests' =>
+ [
+ {
+ #test to verify templeton.mapper.memory.mb update
+ 'num' => 1,
+ 'setup' => [
+ {
+ 'method' => 'POST',
+ 'url' => ':TEMPLETON_URL:/templeton/v1/ddl',
+ 'status_code' => 200,
+ 'post_options' => ['user.name=:UNAME:','exec=drop table if exists ratings;CREATE EXTERNAL TABLE ratings(userid INT, movieid INT, ratings FLOAT, unixtime STRING)
+ ROW FORMAT DELIMITED FIELDS TERMINATED BY \':\' location \':INPDIR_HDFS:/ratings/\';drop table if exists testtable;create table testtable
+ (userid INT, movieid INT, ratings FLOAT, unixtime STRING) location \':INPDIR_HDFS:/testtable/\';'],
+ 'json_field_substr_match' => {'stderr' => 'OK'}
+ }
+ ],
+ 'method' => 'POST',
+ 'url' => ':TEMPLETON_URL:/templeton/v1/hive',
+ 'post_options' => ['user.name=:UNAME:','execute=INSERT OVERWRITE TABLE testtable SELECT * from ratings','statusdir=:OUTDIR:/status'],
+ 'json_field_substr_match' => { 'id' => '\d+'},
+ #results
+ 'status_code' => 200,
+ 'check_job_created' => 1,
+ 'check_job_complete' => 'FAILURE',
+ }
+ ]
+ }
+ ]
+},
+ ;
\ No newline at end of file

Search Discussions

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 1 of 1 | next ›
Discussion Overview
groupcommits @
categorieshive, hadoop
postedApr 20, '15 at 9:24p
activeApr 20, '15 at 9:24p
posts1
users1
websitehive.apache.org

1 user in discussion

Ekoifman: 1 post

People

Translate

site design / logo © 2021 Grokbase