背景:
Hadoop在执行MR job的时候有时候需要访问一些资源,比如配置,共享数据文件等,那么实现的方案有如下几种:
第一种:基于三方数据源
1.存储在sql或者nosql(包括自身的hdfs)中然后在job的m或者r时根据需要读取相应的资源2.存储在某网络处,基于tcp方式在需要的时候获取
第二种通过自身机制
1.org.apache.hadoop.conf.Configuration进行传输1.1 conf.set(name, value) 1.2 其他conf.set*()2.DistributedCache,为分布式缓存DistributedCache.addCacheFile(uri, conf)DistributedCache.addCacheArchive(uri, conf)
数据量适中的情况下建议采用2,一次读多次用