版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20488317/article/details/59057425
应用场景:
hadoop上的软件环境不能满足自己的需求。比如需要python2.7以上的版本,hadoop环境不支持或者需要安装某插件的python版本,hadoop不支持。这种情况下,需要自己上传python包。
首先,将打包好的python包上传至hadoop
hadoop fs -put ./python2.7.tgz hdfs:///home/my/tool/
然后指定cacheArchive: -cacheArchive hdfs:///home/my/tool/python2.7.tgz#python
指定map或者reduce使用的python位置: python/bin/python
举例:
-mapper "./python/bin/python map.py" \
-reducer "./python/bin/python reduce.py" \
-file map.py \
-file reduce.py \
-cacheArchive hdfs:///home/my/tool/python2.7.tgz#python
其中home/my/tool/python2.7.tgz是压缩包的解压的目录,然后在解压目录前添加#标识的软链名,如下:
python2.7.tgz解压后的目录为./lib与./bin……,则在程序中使用的运行环境目录为./python//lib与./python/bin……
所以:
-mapper "./python/bin/python map.py"