如何在 shell 脚本中读取所需文件
how to read required file in shell script
抱歉问题不清楚,我是Hadoop学习的新手。
我再次编辑了问题。
我在 Python 中编写了两个 Hadoop MapReduce 程序:map.py 和 red.py。
然后在HDFS上写了run.sh来进行MapReduce使用Hadoop streaming。
需要读取HDFS上半年的数据,文件named:20170101-20170630.
文件在 HDFS 中的路径:
/user/name/20161231
/user/name/20170101
/user/name/20170102
.....
/user/name/20170630
/user/name/20170701
如何写入run.sh来读取需要的文件?
run.sh中的脚本部分:
#! /bin/bash
HPHOME=/opt/cloudera/parcels/CDH
JAR_PACKAGE=/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar
#it dosen't work, how to read selected file:20170101-20170630
IN_PATH=/user/name/20170[101-630]
OUT_PATH=/user/out
MAP_FILE=/home/map.py
RED_FILE=/home/red.py
非常感谢!
不确定,您是要读取 local
个文件还是 hdfs
个文件。但是会提出两种方案。
从本地 unix 系统读取 6 个月的文件。
local_files=`ls /user/name/2017[0][1-6][0-9][0-9]`
for IN_PATH in `echo $local_files`;
do
echo "LOCAL FILE IS: $IN_PATH"
done
从 hdfs 系统读取 6 个月的文件。
hdfs_files=`hdfs dfs -ls /user/hduser/|grep /user/hduser/2016[0][1]|awk '{print }'`
for IN_PATH in `echo $hdfs_files`;
do
echo "HDFS FILE IS: $IN_PATH"
done
抱歉问题不清楚,我是Hadoop学习的新手。 我再次编辑了问题。
我在 Python 中编写了两个 Hadoop MapReduce 程序:map.py 和 red.py。 然后在HDFS上写了run.sh来进行MapReduce使用Hadoop streaming。
需要读取HDFS上半年的数据,文件named:20170101-20170630.
文件在 HDFS 中的路径:
/user/name/20161231
/user/name/20170101
/user/name/20170102
.....
/user/name/20170630
/user/name/20170701
如何写入run.sh来读取需要的文件?
run.sh中的脚本部分:
#! /bin/bash
HPHOME=/opt/cloudera/parcels/CDH
JAR_PACKAGE=/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-streaming.jar
#it dosen't work, how to read selected file:20170101-20170630
IN_PATH=/user/name/20170[101-630]
OUT_PATH=/user/out
MAP_FILE=/home/map.py
RED_FILE=/home/red.py
非常感谢!
不确定,您是要读取 local
个文件还是 hdfs
个文件。但是会提出两种方案。
从本地 unix 系统读取 6 个月的文件。
local_files=`ls /user/name/2017[0][1-6][0-9][0-9]`
for IN_PATH in `echo $local_files`;
do
echo "LOCAL FILE IS: $IN_PATH"
done
从 hdfs 系统读取 6 个月的文件。
hdfs_files=`hdfs dfs -ls /user/hduser/|grep /user/hduser/2016[0][1]|awk '{print }'`
for IN_PATH in `echo $hdfs_files`;
do
echo "HDFS FILE IS: $IN_PATH"
done