12. 提交脚本中设置—conf xlearning.input.strategy或—input-strategy 为 PLACEHOLDER策略时,获取Worker角色对应各Container所分配的文件列表信息形式?

PLACEHOLDER输入策略下,各Worker Container所分配到的文件列表信息将以通过环境变量INPUT_FILE_LISTjson格式传给各执行程序,其中,keyinput参数所指定的本地路径,value为所分配的HDFS文件列表(list类型),执行程序可依赖第三方库或框架自身来对HDFS文件直接操作。由于该列表信息通过环境变量进行传递,会出现因环境变量长度过长而造成程序无法启动的错误出现,该情况下会将原环境变量INPUT_FILE_LIST对应写入当前执行目录下的inputFileList.txt文件中,用户可通过类似如下方式获取:

  1. import os
  2. import json
  3. if os.environ.has_key('INPUT_FILE_LIST') :
  4. inputfile = json.loads(os.environ["INPUT_FILE_LIST"])
  5. data_file = inputfile["data"]
  6. else :
  7. with open("inputFileList.txt") as f:
  8. fileStr = f.readline()
  9. inputfile = json.loads(fileStr)