我有我的MapReduce程序(DataProfiler.jar),它通过将表名和列名作为命令行参数来执行一些数据分析。
hadoop -jar DataProfiler.jar -D tableName=MyTable -D columnFamilyName=CF1
有没有办法可以将它包装在另一个java程序中。这样我就可以为所有表执行这个jar(通过连接到数据库并获取所有表和列的列表)。
谢谢!
答案 0 :(得分:0)
我建议,不要从简单的java程序中调用MapReduce
jar,而是可以用一种通用的方式编写逻辑MapReduce
驱动程序类。
我们打电话给这个班级JobRunner
。您可以定义member variables
,其中包含您需要处理的table
和columns
信息。然后,您可以设置MapReduce
配置并启动作业。从技术上讲,你是以相同的方式实现同样的目标。我认为这是一个更好的方法,然后调用一个jar并启动MapReduce
工作。