前段时间因为要求系统改造,需要把hadoop程序内置的数据库密码等敏感和易变化的数据脱离出来作为配置文件,然后程序读取。开始改的时候把配置文件保存到Linux服务器上让程序来读取,但在改造的过程中出现了一个问题:file not exist或者是file not found。程序在main方法开始执行处还能读到Linux上的配置文件,但是在执行Reducer任务的时候就读不到了,file not exist了,然后感到很奇怪。
尝试把配置文件读取类搞成单例的,保存已加载的数据,通过这种缓存的方式把数据传递过去,发现这种方法不太行,依然是file not exist。
搞了两天之后,快崩溃了。。。,去了趟厕所,在上完厕所回来的路上,想明白了,这个Reducer是运行在hadoop集群环境下,hdfs上根本就没这个文件,所以就报file not exist的错。把文件传到hdfs上一份,在跑hadoop程序就行了。。。。。
非专业大数据人士搞的真痛苦。。。