在Hadoop環境下執行MapReduce自帶的wordCount示例
阿新 • • 發佈:2020-08-22
首先先建立一個目標檔案words,將其儲存至/home/hadoop目錄下:
cd /home/hadoop
vim words
# 向新檔案中新增內容,例如:data mining on data warehouse
# 在HDFS建立一個目錄
hdfs dfs -mkdir /user/hadoop/input
# 將剛建立的words檔案上傳到剛建立的HDFS目錄中
hdfs dfs -put /home/hadoop/words /user/hadoop/input
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /user/hadoop/input /user/hadoop/output
注:1表示的是測試用例名;
2表示的是輸入的檔案;
3表示的是輸出目錄;
4表示的是程式所在位置(Hadoop安裝目錄下的share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar);
# 檢視執行結果
hdfs dfs -cat /user/hadoop/output/part-r-00000
結果示例如下:
注:
若在此過程中遇到了Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster這樣的錯誤,
解法的方法是找到hadoop安裝目錄下的etc/hadoop/mapred-site.xml,增加以下程式碼:
<property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property>