test-libhdfs.sh
上传用户:quxuerui
上传日期:2018-01-08
资源大小:41811k
文件大小:4k
源码类别:

网格计算

开发平台:

Java

  1. #
  2. # Copyright 2005 The Apache Software Foundation
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. #     http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. #
  16. #
  17. # Note: This script depends on 5 environment variables to function correctly:
  18. # a) CLASSPATH
  19. # b) HADOOP_HOME
  20. # c) HADOOP_CONF_DIR 
  21. # d) HADOOP_LOG_DIR 
  22. # e) LIBHDFS_BUILD_DIR
  23. # f) LIBHDFS_INSTALL_DIR
  24. # g) OS_NAME
  25. # All these are passed by build.xml.
  26. #
  27. HDFS_TEST=hdfs_test
  28. HADOOP_LIB_DIR=$HADOOP_HOME/lib
  29. HADOOP_BIN_DIR=$HADOOP_HOME/bin
  30. # Manipulate HADOOP_CONF_DIR too
  31. # which is necessary to circumvent bin/hadoop
  32. HADOOP_CONF_DIR=$HADOOP_CONF_DIR:$HADOOP_HOME/conf
  33. # set pid file dir so they are not written to /tmp
  34. export HADOOP_PID_DIR=$HADOOP_LOG_DIR
  35. # CLASSPATH initially contains $HADOOP_CONF_DIR
  36. CLASSPATH="${HADOOP_CONF_DIR}"
  37. CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar
  38. # for developers, add Hadoop classes to CLASSPATH
  39. if [ -d "$HADOOP_HOME/build/classes" ]; then
  40.   CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/classes
  41. fi
  42. if [ -d "$HADOOP_HOME/build/webapps" ]; then
  43.   CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build
  44. fi
  45. if [ -d "$HADOOP_HOME/build/test/classes" ]; then
  46.   CLASSPATH=${CLASSPATH}:$HADOOP_HOME/build/test/classes
  47. fi
  48. # so that filenames w/ spaces are handled correctly in loops below
  49. IFS=
  50. # add libs to CLASSPATH
  51. for f in $HADOOP_HOME/lib/*.jar; do
  52.   CLASSPATH=${CLASSPATH}:$f;
  53. done
  54. for ff in $HADOOP_HOME/*.jar; do 
  55.   CLASSPATH=${CLASSPATH}:$ff
  56. done
  57. for f in $HADOOP_HOME/lib/jsp-2.0/*.jar; do
  58.   CLASSPATH=${CLASSPATH}:$f;
  59. done
  60. if [ -d "$HADOOP_HOME/build/ivy/lib/Hadoop/common" ]; then
  61. for f in $HADOOP_HOME/build/ivy/lib/Hadoop/common/*.jar; do
  62.   CLASSPATH=${CLASSPATH}:$f;
  63. done
  64. fi
  65. # restore ordinary behaviour
  66. unset IFS
  67. findlibjvm () {
  68. javabasedir=$JAVA_HOME
  69. case $OS_NAME in
  70.     cygwin* | mingw* | pw23* )
  71.     lib_jvm_dir=`find $javabasedir -follow ( 
  72.         ( -name client -type d -prune ) -o 
  73.         ( -name "jvm.dll" -exec dirname {} ; ) ) 2> /dev/null | tr "n" " "`
  74.     ;;
  75.     aix*)
  76.     lib_jvm_dir=`find $javabasedir ( 
  77.         ( -name client -type d -prune ) -o 
  78.         ( -name "libjvm.*" -exec dirname {} ; ) ) 2> /dev/null | tr "n" " "`
  79.     if test -z "$lib_jvm_dir"; then
  80.        lib_jvm_dir=`find $javabasedir ( 
  81.        ( -name client -type d -prune ) -o 
  82.        ( -name "libkaffevm.*" -exec dirname {} ; ) ) 2> /dev/null | tr "n" " "`
  83.     fi
  84.     ;;
  85.     *)
  86.     lib_jvm_dir=`find $javabasedir -follow ( 
  87.        ( -name client -type d -prune ) -o 
  88.        ( -name "libjvm.*" -exec dirname {} ; ) ) 2> /dev/null | tr "n" " "`
  89.     if test -z "$lib_jvm_dir"; then
  90.        lib_jvm_dir=`find $javabasedir -follow ( 
  91.        ( -name client -type d -prune ) -o 
  92.        ( -name "libkaffevm.*" -exec dirname {} ; ) ) 2> /dev/null | tr "n" " "`
  93.     fi
  94.     ;;
  95.   esac
  96.   echo $lib_jvm_dir
  97. }
  98. LIB_JVM_DIR=`findlibjvm`
  99. echo  "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  100. echo  LIB_JVM_DIR = $LIB_JVM_DIR
  101. echo  "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
  102. # Put delays to ensure hdfs is up and running and also shuts down 
  103. # after the tests are complete
  104. cd $HADOOP_HOME
  105. echo Y | $HADOOP_BIN_DIR/hadoop namenode -format &&
  106. $HADOOP_BIN_DIR/hadoop-daemon.sh start namenode && sleep 2 && 
  107. $HADOOP_BIN_DIR/hadoop-daemon.sh start datanode && sleep 2 && 
  108. sleep 20
  109. echo CLASSPATH=$HADOOP_CONF_DIR:$CLASSPATH LD_PRELOAD="$LIBHDFS_INSTALL_DIR/libhdfs.so:$LIB_JVM_DIR/libjvm.so" $LIBHDFS_BUILD_DIR/$HDFS_TEST && 
  110. CLASSPATH=$HADOOP_CONF_DIR:$CLASSPATH LD_PRELOAD="$LIB_JVM_DIR/libjvm.so:$LIBHDFS_INSTALL_DIR/libhdfs.so:" $LIBHDFS_BUILD_DIR/$HDFS_TEST
  111. BUILD_STATUS=$?
  112. sleep 3
  113. $HADOOP_BIN_DIR/hadoop-daemon.sh stop datanode && sleep 2 && 
  114. $HADOOP_BIN_DIR/hadoop-daemon.sh stop namenode && sleep 2 
  115. echo exiting with $BUILD_STATUS
  116. exit $BUILD_STATUS