編譯mahout使之適合hadoop2

在mahout父類maven工程中,將pom.xml的<hadoop.version>1.2.1</hadoop.version>修改成<hadoop.version>2.6.0</hadoop.version>apache

去掉hadoop-core這個依賴替換成hadoop-hdfsmaven

<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>${hadoop.version}</version>oop

</dependency>scala

一個完整的hadoop程序依賴應該包括:hadoop-core(1.x版本)或者hadoop-hdfs(2.x版本),hadoop-common,hadoop-mapreduce-client-core,>hadoop-mapreduce-client-common.xml

替換以後會發現報錯,錯誤信息是jdk mising這樣的信息,這個時候只要加入jdk依賴便可hadoop

<dependency>  
   <groupId>jdk.tools</groupId>  
   <artifactId>jdk.tools</artifactId>  
   <version>1.6</version>  
   <scope>system</scope>  
   <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>  
</dependency>  ci

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-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-core</artifactId>
        </dependency>
           <dependency>
          <groupId>org.apache.hadoop</groupId>
          <artifactId>hadoop-mapreduce-client-common</artifactId>
        </dependency>
  </dependencies>
    </profile>
  </profiles>io

export JAVA_HOME=/root/soft/jdk1.7.0_79
export MAHOUT_HOME=/root/soft/mahout-distribution-0.9
export HADOOP_HOME=/root/soft/hadoop-2.6.0
export SCALA=/root/soft/scala-2.11.0
export  HADOOP_CONF_DIR=/root/soft/hadoop-2.6.0/etc/hadoop
export M2HOME=/etc/maven/apache-maven-3.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$MAHOUT_HOME/bin:$SCALA/bin:$M2HOME/bincli

相關文章
相關標籤/搜索