hadoop程序由1.X升级至2.x
来源:互联网 发布:淘宝卖家购物车营销 编辑:程序博客网 时间:2024/05/16 13:46
最近我们的平台环境需要进行升级,这里我们的源程序是MAHOUT0.9版本的(直接改的源代码),而计算平台的环境之前是1.2.1的,目前要升级至2.6.0,因此直接将Mahout程序放在上面是执行不了的。
1.首先修改mahout父类maven工程的依赖的HADOOP jar包
在mahout父类maven工程中,将pom.xml的<hadoop.version>1.2.1</hadoop.version>修改为<hadoop.version>2.6.0</hadoop.version>
去掉hadoop-core这个依赖替换成hadoop-hdfs
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>
</dependency>
一个完整的hadoop程序依赖应该包括:hadoop-core(1.x版本)或者hadoop-hdfs(2.x版本),hadoop-common,hadoop-mapreduce-client-core,>hadoop-mapreduce-client-common.
替换之后会发现报错,错误信息是jdk mising这样的信息,这个时候只要加入jdk依赖即可
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.6</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
2.修改其子工程mahout-core,将pom.xml的
<profiles>
<profile>
<id>hadoop-0.20</id>
<activation>
<property>
<name>!hadoop.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</dependency>
</dependencies>
</profile>
<profile>
<id>hadoop-0.23</id>
<activation>
<property>
<name>hadoop.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
修改为
<profiles>
<profile>
<id>hadoop-0.20</id>
<activation>
<property>
<name>!hadoop.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
</dependency>
</dependencies>
</profile>
<profile>
<id>hadoop-0.23</id>
<activation>
<property>
<name>hadoop.version</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
</dependency>
</dependencies>
</profile>
</profiles>
目的就是为了替换依赖jar,为什么要这么改呢,当然我们也可以重新建一个profile,这个主要是上因为mahout工程默认的用的是这个profile,如下图
所以我们最好是建立自己的profile,然后把对应的依赖加进去,我为了省事直接改的0.20的。最后我们在编译mahout源码时候,也是可以指定profile的,最后终于测试通过
- hadoop程序由1.X升级至2.x
- Hadoop如何升级版本_Hadoop1.x升级到2.x
- 从Hadoop 1.x升级到Yarn
- Jenkins升级:1.x到2.x
- ElementUI 1.X升级到2.X
- cocos2d-x 1.x 升级到 2.x 修改
- 由HttpClient_3 升级到 HttpClient_4.3.x
- Hadoop-2.2.0中文文档—— 从Hadoop 1.x 迁移至 Hadoop 2.x
- Hadoop 2.x hdfs(热/冷)升级步骤
- Hadoop 1.X & Hadoop 2.X 默认端口对比
- Hadoop 1.X & Hadoop 2.X 默认端口对比
- Hadoop 1.x 和Hadoop 2.x的区别
- cocos2d 1.x升级到2.x遇到error
- 从 vue 1.x 升级到 vue 2.x 常见问题
- compatibility between hadoop 1.x and hadoop 2.x(hadoop 1.x和2.x的兼容性)
- cocos2d-x 2.x升级变化
- hadoop 2.x 配置
- hadoop 2.x 编译
- C++中new是否进行初始化的问题
- HDU 1024 Max Sum Plus Plus【DP】
- ashx一般处理程序接收ajax传回的json字符串,并写入到数据库
- hdu 1241 AC广搜
- 并查集 Ⅲ
- hadoop程序由1.X升级至2.x
- CSDN学院 免费技术答疑公开课,本周四场即将开播~~~
- 代码静态检查-cppcheck
- java IO流(properties)
- 前端框架技术
- 如何判断Fragment是否展示
- 1513 Palindrome【lcs】
- iOS二维码的使用
- 线程私有数据实现的原理