(一)使用IDEA編寫Mapper在Hadoop上執行

 

 

 

 

1.在項目上鼠標右鍵 --> Open Module Settingsbash

 

 

 

2.Artifacts --> + --> JAR --> From modules with dependencies...服務器

 

 

3.Main Class是你這個項目(腳本)的主方法,就是要運行的類,選一個app

 

 

4.以下圖,設置 META-INF/MANIFEST.MFoop

!!!!!切記,不能用默認的(起碼我用默認的是不成功的)!!!!!ui

 

5.選中你這個項目的根目錄,必定要放在根目錄下spa

 

 

6.設置完是這樣子的,關於 JAR files from libraries的兩個選項:code

選中第一個的話,打完包後是一個jar包blog

選中第二個的話,打完包後是一個jar包,外帶你項目所用的jar包,我的推薦第二個hadoop

 

 

7.設置完後就能夠點OK了ci

8.這個頁面, Build on make打上勾,其餘的不同也沒事

 

 

9.最後一步, Build Artifacts... --> XXX.jar --> Build 

 

10.複製這裏的路徑去找jar包就行

 

11.編輯sh啓動腳本

vi  data-clean.sh

插入文本

#!/bin/bash
#當前時間減去一天  處理上一天的數據
day_str=`date -d '-1 day' +'%Y-%m-%d'`

#輸入文件
inpath=/app-log-data/data/$day_str
#輸出文件
outpath=/app-log-data/clean/$day_str

echo "準備清洗$day_str 的數據......"

#執行mapper清洗數據   
#若是打jar未指定主方法  須要在下面jar後面加上主方法的路徑
/home/hadoop/apps/hadoop-2.7.5/bin/hadoop jar /root/hadoop.jar  $inpath $outpath

#判斷上一條命令是否執行成功   不等於0就是執行失敗
if [[ $? -ne 0 ]]; then
    echo "failed"
else
    echo "succeed"
fi

 

12.將未清洗的數據上傳到HDFS上

建立目錄未清洗數據目錄:

 hadoop fs -mkdir /app-log-data/data

 

建立目錄清洗完成數據目錄

hadoop fs -mkdir /app-log-data/clean

 

 

 

13.執行jar

sh data-clean.sh

 

 

 

錯誤總結:

1.8032端口拒絕鏈接

解決:1.start-yarn.sh     啓動yarn  服務器:hadoop4        2.yarn-daemon.sh start resourcemanager   啓動備用yarn    服務器:hadoop3

 

2.提示輸入或者輸出路徑不存在

解決:在HDFS上建立輸入和輸出目錄

相關文章
相關標籤/搜索