導航:首頁 > 程序命令 > 運行hadoopjar命令

運行hadoopjar命令

發布時間:2022-06-15 12:58:35

java調用Hadoop的jar

你把腳本換成其他可以直觀查看運行結果的腳本,看看能不能運行;同時不在hadoop/bin目錄下執行hadoop jar /usr/local/hadoop-1.2.1/hadoop-examples-1.2.1.jar wordcount input output看看能不能執行

⑵ hadoop如何分發本地的jar文件

一般情況下,我們會使用下面的命令來運行一個hadoop任務:
這個命令實際上是轉化成下面的命令來運行的
在RunJar中,會讀取abc.jar文件,然後嘗試從manifest中提取Main-Class作為mainClass,如果manifest中沒有指定,則把abc.jar之後的下一個參數當成mainClass。
接下來,RunJar會在本地創建一個臨時目錄(下面稱為workDir,類似/tmp/hadoop-unjar...),然後把abc.jar解壓到這個目錄中。然後,把wrokDir、workDir/classes和workDir/lib下的所有文件路徑
添加到一個變數中,然後使用URLClassLoader將這個變數指定的所有路徑載入到當前線程。
最後,使用反射調用mainClass的main函數,進入用戶自己的代碼。
當我們的代碼調用job.waitForCompletion時,會調用JobClient.AndConfigureFiles,把本地的jar文件拷貝到HDFS上面/tmp/hadoop/mapred/staging/<jobid/job.jar/的目錄下。
TaskTracker獲取到一個Task之後,會啟動一個線程TaskLauncher來處理這個Task。在啟動這個Task之前,會調用taskController.initializeJob來初始化Job,把Job相關的內容從HDFS上拷貝到本地(JobLocalizer.localizeJobJarFile負責拷貝jar並解壓到本地workDir中)。
後面TaskRunner.getClassPaths把
wrokDir、workDir/classes和workDir/lib下的所有文件路徑
添加到一個變數中,然後使用這個變數構造啟動JVM的參數,最後啟動一個新的JVM來運行Job。
從這個流程可以看出,我們jar中的
根目錄,classes目錄,和lib下的所有文件
都被添加到了執行環境(另外還有系統自身的環境變數CLASSPATH和Hadoop自身依賴的庫)中。
因此,如果我們想要在我們的hadoop中添加一個外部的庫,可以有兩種方法:
1.把外部的jar解壓了,然後將所有的.class與我們自己的代碼打包在一起(maven-shade-plugin可以很輕松地幫我們做這件事);
2.創建一個lib目錄,把依賴的jar文件放在裡面,然後把lib目錄和我們的代碼打包在一起。
最後,提一下-libjars參數。如果我們使用ToolRunner.run來啟動我們的Job,那麼可以使用-libjars來指定依賴的外部jar。
不過-libjars有一定的局限性,由於-libjars來指定依賴的外部jar是在ToolRunner.run中使用GenericOptionsParser來載入的,因此在調用ToolRunner.run之前,外部jar還沒有載入,不能使用這些類,甚至import(直接或間接)也不行(JVM載入一個類時會先檢查這個類所引用的其他類型是否都可以找得到)。如果搞不清楚外部jar在何時可以用,不建議使用-libjars。
當然在Map和Rece階段時,-libjars來指定依賴的外部jar就完全可以無限制地使用了。Hadoop會自動把-libjars來指定依賴的外部jar上傳到HDFS上,每個Job在執行之前,這些jar會自動被拷貝到本地,並設置到classpath中。

⑶ Hadoop集群運行JNI程序

要在Hadoop集群運行上運行JNI程序,首先要在單機上調試程序直到可以正確運行JNI程序,之後移植到Hadoop集群就是水到渠成的事情。
Hadoop運行程序的方式是通過jar包,所以我們需要將所有的class文件打包成jar包。在打包的過程中,無需將動態鏈接庫包含進去。
在集群中運行程序之前,Hadoop會首先將jar包傳遞到所有的節點,然後啟動運行。我們可以在這個階段將動態鏈接庫作為附件和jar包同時傳遞到所有的節點。方法就是給jar命令指定-files參數。命令如下:
hadoop
jarSegment.jar
Segment
-files
./bin/lib***.so
input
output
通過該命令,jar包和動態鏈接庫都會傳遞到所有節點,然後啟動maprece任務。

⑷ eclipse下怎麼打包java代碼成jar到hadoop下運行

(1)首先將好的Hadoop源碼解壓,將解壓後頂級目錄和lib中的壓縮文件載入到你的工程中(他們包括了hadoop源碼和一些需要的第三方源碼),然後就可以編寫hadoop程序了。
(2)編寫好hadoop程序,調試沒有錯誤後,就可以通過(jar -cvf yourname.jar -C bin/ .),將工程中bin目錄下編譯好的.class文件打包成你想要的.jar壓縮文件包。
(3)將yourname.jar壓縮包復制到你的hadoop目錄下,通過命令hadoop jar yourname.jar yourMainClass /data/inputfile /data/outputfile。如果是在完全分布式的hadoop配置環境下,需要通過hadoop命令在hadoop的hdfs系統中創建文件目錄然後將本地的輸入數據復制到hdfs系統中,命令有:
hadoop fs -mkdir data:創建一個名問data的文件夾
hadoop fs -ls :查看hdfs文件系統中的文件目錄
hadoop fs -FromLocal /data/input /user/data :將本地文件input復制到hdfs系統的/user/data目錄下
hadoop fs -ToLocal /user/data/output/ /data/ :將hdfs系統中的output文件夾復制到本地系統中。

⑸ 如何在百度雲平台上執行Hadoop MapRece程序

發現網路雲平台,可以在線執行hadoop MapRece程序,很欣喜,摸索了一下,可以使用。大概想這才叫做雲計算啊,我把計算任務給你,你把計算結果還給我。
首先要有網路賬號。
從平台入口進入:。




不僅如此,還可以綁定網盤,從網盤直接復制文件過來。這一切都是免費的!

⑹ hadoop/hama中的jar包調用命令的正確格式是什麼樣的

#bin/hadoop jar xxx.jar main函數所在的class -參數

⑺ 執行hadoop jar 命令後沒反應了,有人幫看看么

hadoop 中運行jar文件,可執行map/rece 效果,你的jar文件確保已經拷貝到hadoop中,

由hadoop能夠進行訪問?
/home/tina/TestHadoop.jar 這樣的目錄結構感覺你沒有拷貝進hadoop

如果我的回答沒幫助到您,請繼續追問。
​希望以上信息可以幫到您!

⑻ 如何運行jar包中的hadoop程序

首先我們要打包程序,,打包完畢,我們該如何運行
首先顯示一個比較簡單的:

上面命令:hadoop jar x.jar 是運行包的一種方式,完成的方式為
hadoop jar x.jar ×××.MainClassName inputPath outputPath
同時解釋一下:
x.jar為包的名稱,包括路徑,直接寫包名稱,則為默認路徑
×××.MainClassName為運行的類名稱
inputPath為輸入路徑
outputPath為輸出路徑。

⑼ hadoop 怎麼分布式運行jar

Hadoop完全分布式配置
環境:CentOs5、hadoop0.20.203、jdk1.6.0_29
namenode:centos1(ip:192.168.1.101)
datanode:centos2(ip:192.168.1.103)、centos3(ip:192.168.1.104)
配置步驟:
(1)配置NameNode和DataNode
修改每台機器的/etc/hosts(包括namenode和datanode)
127.0.0.1 localhost.localdomain localhost
192.168.1.101 centos1
192.168.1.103 centos2
192.168.1.104 centos3
::1 localhost6.localdomain6 localhost6

(2)在所有的機器上建立相同的用戶
useradd grid
passwd grid
成功建立grid用戶後,輸入用戶密碼就是該用戶密碼

(3)SSH設置
使用grid用戶登錄
在所有機器/home/grid下

mkdir .ssh
在namenode上生成密鑰對

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
注意點:
不進行以下步驟SSH免密碼登錄設置會不成功

.ssh目錄要設成700 有執行許可權
authorized_keys要設成600 否則會出錯
還有ssh 登陸要加入用戶名的 比如
ssh root@localhost
這時從centos1向其他機器發起SSH連接,只有第一次登錄時需要輸入密碼,以後則不需要

(4)在所有機器上安裝JDK
下載jdk-6u29-linux-i586.bin,安裝到/usr/java下,cd到usr/java下
chmod u+x jdk-6u29-linux-i586.bin
./jdk-6u29-linux-i586.bin
接下來要設置java的環境變數輸入命令:

gedit /etc/profile

在文件的最後添加以下語句:

JAVA_HOME=/usr/java/jdk1.6.0_29

export JRE_HOME=/usr/java/jdk1.6.0_29/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存退出,然後執行source /etc/profile即可。
輸入java -version 命令,出現如下信息就表示配置成功

java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) Server VM (build 20.4-b02, mixed mode)
(5)在所有機器上安裝配置Hadoop
首先在namenode上配置,配置後在分發到datanode上
在這里,下載hadoop-0.20.203.tar.gz,然後解壓到/home/grid/下即可

tar -zxvf hadoop-0.20.203.tar.gz
接下來需要修改hadoop的conf文件夾下的配置信息:
修改hadoop-env.sh,加入如下語句,使得hadoop能夠找到java的路徑。:
export JAVA_HOME=/usr/java/jdk1.6.0_29
修改core-site.xml,如下:

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://centos1:9000</value>
</property><property>
<name>hadoop.tmp.dir</name>
<value>/home/grid/tmp</value>
</property>
</configuration>

注意:hadoop.tmp.dir是hadoop文件系統依賴的基礎配置,很多路徑都依賴它。它默認的位置是在/tmp/{$user}下面,在local和hdfs都會建有相同的目錄,但是在/tmp路徑下的存儲是不安全的,因為linux一次重啟,文件就可能被刪除。導致namenode啟動不起來。

修改hdfs-site.xml,如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改mapred-site.xml,如下:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.101:9001</value>
</property>
</configuration>
保險起見這里寫centos1對應的IP地址
masters里寫入作為namenode節點機器的IP
192.168.1.101
slaves里寫入作為datanode節點的機器的IP
192.168.1.103
192.168.1.104
注意點:
修改hadoop-0.20.203.0/bin下的hadoop.
vi hadoop
查找 –jvm . vi 下的命令模式: :/-jvm
將-jvm server改成 –server .
因為JDK1.6已經廢除了一個參數-jvm,如果不修改的話,無法啟動數據節點。

到此,hadoop的有關配置已經完成,namenode端通過如下命令把配置好的hadoop發送到各個datanode處:
scp -r hadoop-0.20.2 centos2:/home/grid
scp -r hadoop-0.20.2 centos3:/home/grid

閱讀全文

與運行hadoopjar命令相關的資料

熱點內容
白盤怎麼解壓 瀏覽:472
辰語程序員學習筆記 瀏覽:47
程序員被公司勸退 瀏覽:523
java三子棋 瀏覽:690
加密空間怎麼強制進入 瀏覽:343
ug分割曲線命令 瀏覽:209
學碼思程序員 瀏覽:609
自考雲學習app為什麼登不上 瀏覽:406
domcer伺服器晝夜更替怎麼搞 瀏覽:434
plc和單片機哪個好 瀏覽:535
帝國神話組建雲伺服器 瀏覽:827
鄧散木pdf 瀏覽:199
方舟怎麼直連伺服器圖片教程 瀏覽:563
假相pdf 瀏覽:336
找對象找程序員怎麼找 瀏覽:976
怎麼投訴蘋果商店app 瀏覽:470
華為手機如何看有多少個app 瀏覽:734
btr如何管理別的伺服器 瀏覽:410
spwm軟體演算法 瀏覽:184
70多歲單身程序員 瀏覽:221