當前位置:首頁 » 編程軟體 » machadoop編譯

machadoop編譯

發布時間: 2022-08-04 17:14:40

『壹』 Hadoop 執行mvn編譯時候報錯。求解。。。在線等急

這個文件解析失敗了,可能是意外改動到了
109行左右,</pluginManagement>這個tag不匹配,估計沒有開始的<pluginManagement>

重新網上下載一個,或者手動修復一下

『貳』 macos編譯的hadoop插件能在linux上用嗎

在Linux上安裝Hadoop之前,需要先安裝兩個程序:
1. JDK 1.6或更高版本;
2. SSH(安全外殼協議),推薦安裝OpenSSH。
下面簡述一下安裝這兩個程序的原因:
1. Hadoop是用java開發的,Hadoop的編譯及MapRece的運行都需要使用JDK。
2. Hadoop需要通過SSH來啟動salve列表中各台主機的守護進程,因此SSH也是必須安裝的,即使是安裝偽分布式版本(因為Hadoop並沒有區分集群式和偽分布式)。對於偽分布式,Hadoop會採用與集群相同的處理方式,即依次序啟動文件conf/slaves中記載的主機上的進程,只不過偽分布式中salve為localhost(即為自身),所以對於偽分布式Hadoop,SSH一樣是必須的。
一、安裝JDK 1.6
安裝JDK的過程很簡單,下面以Ubuntu為例。
(1)下載和安裝JDK
確保可以連接到互聯網,輸入命令:
sudo apt-get install sun-java6-jdk
輸入密碼,確認,然後就可以安裝JDK了。
這里先解釋一下sudo與apt這兩個命令,sudo這個命令允許普通用戶執行某些或全部需要root許可權命令,它提供了詳盡的日誌,可以記錄下每個用戶使用這個命令做了些什麼操作;同時sudo也提供了靈活的管理方式,可以限制用戶使用命令。sudo的配置文件為/etc/sudoers。
apt的全稱為the Advanced Packaging Tool,是Debian計劃的一部分,是Ubuntu的軟體包管理軟體,通過apt安裝軟體無須考慮軟體的依賴關系,可以直接安裝所需要的軟體,apt會自動下載有依賴關系的包,並按順序安裝,在Ubuntu中安裝有apt的一個圖形化界面程序synaptic(中文譯名為「新立得」),大家如果有興趣也可以使用這個程序來安裝所需要的軟體。(如果大家想了解更多,可以查看一下關於Debian計劃的資料。)
(2)配置環境變數
輸入命令:
sudo gedit /etc/profile
輸入密碼,打開profile文件。
在文件的最下面輸入如下內容:
#set Java Environment
export JAVA_HOME= (你的JDK安裝位置,一般為/usr/lib/jvm/java-6-sun)
export CLASSPATH=".:$JAVA_HOME/lib:$CLASSPATH"
export PATH="$JAVA_HOME/:$PATH"
這一步的意義是配置環境變數,使你的系統可以找到JDK。
(3)驗證JDK是否安裝成功
輸入命令:
java -version
查看信息:
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)
二、配置SSH免密碼登錄
同樣以Ubuntu為例,假設用戶名為u。
1)確認已經連接上互聯網,輸入命令
sudo apt-get install ssh
2)配置為可以無密碼登錄本機。
首先查看在u用戶下是否存在.ssh文件夾(注意ssh前面有「.」,這是一個隱藏文件夾),輸入命令:
ls -a /home/u
一般來說,安裝SSH時會自動在當前用戶下創建這個隱藏文件夾,如果沒有,可以手動創建一個。
接下來,輸入命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
解釋一下,ssh-keygen代表生成密鑰;-t(注意區分大小寫)表示指定生成的密鑰類型;dsa是dsa密鑰認證的意思,即密鑰類型;-P用於提供密語;-f指定生成的密鑰文件。(關於密鑰密語的相關知識這里就不詳細介紹了,裡面會涉及SSH的一些知識,如果讀者有興趣,可以自行查閱資料。)
在Ubuntu中,~代表當前用戶文件夾,這里即/home/u。
這個命令會在.ssh文件夾下創建兩個文件id_dsa及id_dsa.pub,這是SSH的一對私鑰和公鑰,類似於鑰匙及鎖,把id_dsa.pub(公鑰)追加到授權的key裡面去。
輸入命令:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
這段話的意思是把公鑰加到用於認證的公鑰文件中,這里的authorized_keys是用於認證的公鑰文件。
至此無密碼登錄本機已設置完畢。

『叄』 Hadoop用控制台編譯執行自帶程序WordCount.java錯誤,請問如何改正

classpath不止這么點吧,你可以看看~/hadoop-0.20.2/bin/hadoop-config文件,其中的$CLASSPATH就是運行hadoop程序時需要的classpath。
裡麵包含了
$HADOOP_COMMON_HOME/build/classes
:$HADOOP_COMMON_HOME/build
$HADOOP_COMMON_HOME/build/test/classes
$HADOOP_COMMON_HOME/build/test/core/classes
:$HADOOP_COMMON_HOME

『肆』 hadoop編譯時出現javac: file not found: 求助!!!!!

有 種可能
1、linux的classpath設置有問題,沒有加上"."。
2、你的javac後的classpath設置也不對,wordCount的編譯不只是需這一個包,我記得還有別的相關的jar包,只有都加到你的classpath中才能正常編譯。

3、這種編譯明顯是不太合適,在windows上編譯好後再導入linux運行比較簡單直接一些。
試下看吧。

『伍』 為什麼要編譯 hadoop 源碼 怎麼在eclipse里寫hadoop程序啊~ 上不了外網,hadoop源碼編譯不了,該怎麼

1:編譯了hadoop,可以方便的查看某個函數的實現。如果不編譯就只是自己去翻源代碼了。更重要的是如果你編譯了hadoop,你可以根據自己的需要改動hadoop的某些實現機制。(hadoop開源的好處).
2:編程hadoop程序是不需要編譯hadoop源碼的。你可以參看網上hadoop安裝教程。
關於hadoop編程,歡迎訪問我的博客:http://blog.csdn.net/jackydai987

『陸』 如何在hadoop-2.6.0上編譯運行自己編寫的java代碼

在不使用eclipse情況使java程序在hadoop 2.2中運行的完整過程。整個過程中其實分為java程序的編譯,生成jar包,運行測試。
這三個步驟運用的命令都比較簡單,主要的還是如何找到hadoop 2.2提供給java程序用來編譯的jar包。具體可以查看:
HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目錄
下面會通過一個在hadoop中創建一個目錄的JAVA例子來進行演示
具體代碼如下:

package com.wan.demo;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HADemo {

public static void main(String[] args) {
// TODO Auto-generated method stub
mkdir(args[0]);
}

public static void mkdir(String dir){
Configuration configuration=new Configuration();
FileSystem fs;
try {
fs = FileSystem.get(configuration);
fs.mkdirs(new Path(dir));
fs.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

把HADemo.java文件拷貝到linux環境中
配置HADOOP_HOME/bin到環境中,啟動集群,進入HADemo.java文件目錄中
注:下面的lib目錄裡面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目錄中獲取,下面做的目的是為了縮減命令長度
1.編譯java
# mkdir class
#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.java
2.生成jar包
#jar -cvf hademo.jar -C class/ .
added manifest
adding: com/(in = 0) (out= 0)(stored 0%)
adding: com/wan/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/(in = 0) (out= 0)(stored 0%)
adding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)
3.測試運行
#hadoop jar hademo.jar com.wan.demo.HADemo /test
檢測:
#hadoop fs -ls /

結束!

『柒』 如何在Mac使用Intellij idea搭建遠程Hadoop開發環境

(1)准備工作
1)
安裝JDK
6或者JDK
7
2)
安裝scala
2.10.x
(注意版本)
2)下載Intellij
IDEA最新版(本文以IntelliJ
IDEA
Community
Edition
13.1.1為例說明,不同版本,界面布局可能不同)
3)將下載的Intellij
IDEA解壓後,安裝scala插件,流程如下:
依次選擇「Configure」–>
「Plugins」–>
「Browse
repositories」,輸入scala,然後安裝即可
(2)搭建Spark源碼閱讀環境(需要聯網)
一種方法是直接依次選擇「import
project」–>
選擇spark所在目錄
–>
「SBT」,之後intellij會自動識別SBT文件,並下載依賴的外部jar包,整個流程用時非常長,取決於機器的網路環境(不建議在windows
下操作,可能遇到各種問題),一般需花費幾十分鍾到幾個小時。注意,下載過程會用到git,因此應該事先安裝了git。
第二種方法是首先在linux操作系統上生成intellij項目文件,然後在intellij
IDEA中直接通過「Open
Project」打開項目即可。在linux上生成intellij項目文件的方法(需要安裝git,不需要安裝scala,sbt會自動下載)是:在
spark源代碼根目錄下,輸入sbt/sbt
gen-idea
註:如果你在windows下閱讀源代碼,建議先在linux下生成項目文件,然後導入到windows中的intellij
IDEA中。
(3)搭建Spark開發環境
在intellij
IDEA中創建scala
project,並依次選擇「File」–>
「project
structure」
–>
「Libraries」,選擇「+」,將spark-hadoop
對應的包導入,比如導入spark-assembly_2.10-0.9.0-incubating-hadoop2.2.0.jar(只需導入該jar
包,其他不需要),如果IDE沒有識別scala
庫,則需要以同樣方式將scala庫導入。之後開發scala程序即可:
編寫完scala程序後,可以直接在intellij中,以local模式運行,方法如下:
點擊「Run」–>
「Run
Configurations」,在彈出的框中對應欄中填寫「local」,表示將該參數傳遞給main函數,如下圖所示,之後點擊「Run」–>
「Run」運行程序即可。
如果想把程序打成jar包,通過命令行的形式運行在spark
集群中,可以按照以下步驟操作:
依次選擇「File」–>
「Project
Structure」
–>
「Artifact」,選擇「+」–>
「Jar」
–>
「From
Moles
with
dependencies」,選擇main函數,並在彈出框中選擇輸出jar位置,並選擇「OK」。
最後依次選擇「Build」–>
「Build
Artifact」編譯生成jar包。

『捌』 hadoop源碼修改了,編譯成功後,將編譯後的hadoop文件直接拿來搭建么,還是需要經過什麼處理呢

把你編譯後的hadoop源碼丟到原來的hadoop集群環境中去 即覆蓋hadoop安裝目錄下的原hadoop-core-xxx.jar 同樣的所有節點都需要更新 然後重啟集群

『玖』 怎麼使用eclipse編譯hadoop源碼

使用eclipse編譯hadoop源碼

1,建立一個Hadoop源碼文件夾。
2、svn 檢出hadoop1.0.4的源碼。svn checkout http://svn.apache.org/repos/asf/hadoop/common/tags/release-1.0.4
注意:如果在ubuntu下直接上面語句報錯,可能需要執行下面的語句
sudo apt-get install autoconf
sudo apt-get install libtool
3、在檢出完成後的目錄下執行
ant eclipse.然後將源碼導入到eclipse中。
4、修改 release-1.0.4/src/contrib/gridmix/src/Java/org/apache/hadoop/mapred/gridmix/Gridmix.java
將兩處的 Enum<? extends T> 改成 Enum<?>

5、編譯器設置及編譯。
右擊工程名,Properties-->Builders-->New--->Ant Builder
New_Builder --> Edit: Name: hadoop-Builder.Main:Builderfile(builder.xml的位置):/home/nacey/workspace/source-workspace/hadoop-1.0.4;Targets—>Manual Build: jar
然後選擇菜單Project-->Build Project

在/home/nacey/workspace/source-workspace/hadoop-1.0.4/build文件夾下會生成三個開發 jar 包:

hadoop-client-1.0.4-SNAPSHOT.jar
hadoop-core-1.0.4-SNAPSHOT.jar
hadoop-minicluster-1.0.4-SNAPSHOT.jar

去掉"-SNAPSHOT"即可替換hadoop-1.0.4 下的同名 jar 包.

注意如果要在集群中使用自己編譯的jar,則需要替換集群中的所有機器。不然會出現版本不匹配。

『拾』 如何在hadoop2.5.2使用命令行編譯打包運行自己的maprece程序

網上的 MapRece WordCount 教程對於如何編譯 WordCount.Java 幾乎是一筆帶過… 而有寫到的,大多又是 0.20 等舊版本版本的做法,即 javac -classpath /usr/local/Hadoop/hadoop-1.0.1/hadoop-core-1.0.1.jar WordCount.java,但較新的 2.X 版本中,已經沒有 hadoop-core*.jar 這個文件,因此編輯和打包自己的 MapRece 程序與舊版本有所不同。
本文以 Hadoop 2.7.2 環境下的 WordCount 實例來介紹 2.x 版本中如何編輯自己的 MapRece 程序。

編譯、打包 Hadoop MapRece 程序
我們將 Hadoop 的 classhpath 信息添加到 CLASSPATH 變數中,在 ~/.bashrc 中增加如下幾行:

[html] view plain
export HADOOP_HOME=/usr/local/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

別忘了執行 source ~/.bashrc 使變數生效,接著就可以通過 javac 命令編譯 WordCount.java 了(使用的是 Hadoop 源碼中的 WordCount.java,源碼在文本最後面):javac WordCount.java

編譯時會有警告,可以忽略。編譯後可以看到生成了幾個 .class 文件。

接著把 .class 文件打包成 jar,才能在 Hadoop 中運行:

[html] view plain
jar -cvf WordCount.jar ./WordCount*.class

開始運行:
[html] view plain
hadoop jar WordCount.jar WordCount input output//hdfs上的input文件夾,命令執行所在位置為WordCount.jar同一目錄

因為程序中聲明了
package ,所以在命令中也要 org.apache.hadoop.examples 寫完整:

[html] view plain
hadoop jar WordCount.jar org.apache.hadoop.examples.WordCount input output

查看:
[html] view plain
hadoop fs -cat /output/part-r-00000
WordCount.java 源碼

package org.apache.hadoop.examples;

import java.io.IOException;
import java.util.StringTokenizer;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.maprece.Job;
import org.apache.hadoop.maprece.Mapper;
import org.apache.hadoop.maprece.Recer;
import org.apache.hadoop.maprece.lib.input.FileInputFormat;
import org.apache.hadoop.maprece.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {

public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{

private final static IntWritable one = new IntWritable(1);
private Text word = new Text();

public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}

public static class IntSumRecer
extends Recer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();

public void rece(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}

public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println("Usage: wordcount <in> <out>");
System.exit(2);
}
Job job = new Job(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumRecer.class);
job.setRecerClass(IntSumRecer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}

熱點內容
安卓手機如何有蘋果的emoji 發布:2025-02-09 02:11:02 瀏覽:807
編譯原理已知語言求文法習題 發布:2025-02-09 02:05:15 瀏覽:131
中國首個具有世界影響力的編譯器 發布:2025-02-09 01:56:21 瀏覽:719
tomcat上傳超時 發布:2025-02-09 01:41:42 瀏覽:483
androidactivity豎屏 發布:2025-02-09 01:41:40 瀏覽:377
家庭配置怎麼合理 發布:2025-02-09 01:36:14 瀏覽:807
頭條軍事源碼 發布:2025-02-09 01:31:53 瀏覽:997
androidintent視頻 發布:2025-02-09 01:31:43 瀏覽:858
歐姆龍plc密碼如何設置 發布:2025-02-09 01:24:31 瀏覽:687
php支持jpeg 發布:2025-02-09 01:24:22 瀏覽:803