From 7423837303e20260b3da2a1ba3f9a4e8162f4c2a Mon Sep 17 00:00:00 2001 From: tqchen Date: Fri, 13 Mar 2015 21:36:08 -0700 Subject: [PATCH] fix more --- yarn/run_hdfs_prog.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 yarn/run_hdfs_prog.py diff --git a/yarn/run_hdfs_prog.py b/yarn/run_hdfs_prog.py new file mode 100755 index 000000000..515e0cbbe --- /dev/null +++ b/yarn/run_hdfs_prog.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +""" +this script helps setup classpath env for HDFS, before running the program +""" +import glob +import sys +import os +import subprocess + +if len(sys.argv) < 2: + print 'Usage: the command you want to run' + +hadoop_home = os.getenv('HADOOP_HOME') +hdfs_home = os.getenv('HADOOP_HDFS_HOME') +java_home = os.getenv('JAVA_HOME') +if hadoop_home is None: + hadoop_home = os.getenv('HADOOP_PREFIX') +assert hadoop_home is not None, 'need to set HADOOP_HOME' +assert hdfs_home is not None, 'need to set HADOOP_HDFS_HOME' +assert java_home is not None, 'need to set JAVA_HOME' + +(classpath, err) = subprocess.Popen('%s/bin/hadoop classpath' % hadoop_home, + stdout=subprocess.PIPE, shell = True, + env = os.environ).communicate() +cpath = [] +for f in classpath.split(':'): + cpath += glob.glob(f) + +lpath = [] +lpath.append('%s/lib/native' % hdfs_home) +lpath.append('%s/jre/lib/amd64/server' % java_home) + +env = os.environ.copy() +env['CLASSPATH'] = '${CLASSPATH}:' + (':'.join(cpath)) +env['LD_LIBRARY_PATH'] = '${LD_LIBRARY_PATH}:' + (':'.join(lpath)) +ret = subprocess.call(args = sys.argv[1:], env = env) +sys.exit(ret)