您好,登錄后才能下訂單哦!
這篇文章主要介紹了windows上如何配置hadoop,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.1 程序文件
上篇文章已經編譯了hadoop,并拿到一個targz的包,后來發現這個壓縮包只是hadoop-common\hadoop-dist\target\hadoop-3.0.0-SNAPSHOT的壓縮版本而已,編譯好的全部文件就是這個文件夾,所以把這個目錄拷貝到你想要的目錄,下面稱這個程序目錄為 %HADOOP_PERFIX% (這個環境變量下面要配置,所以這里先用上)。
1.2 配置文件
下面的配置文件均位于 %HADOOP_PERFIX%\etc 目錄,所以只標志文件名
1.2.1 hadoop-env.cmd
在這個文件夾里設置幾個環境變量(這里需要改的就是 HADOOP_PERFIX,改成自己本機的目錄)
set HADOOP_PREFIX=**你的程序目錄** set HADOOP_CONF_DIR=%HADOOP_PREFIX%\etc\hadoop set YARN_CONF_DIR=%HADOOP_CONF_DIR% set PATH=%PATH%;%HADOOP_PREFIX%\bin
1.2.2 core-site.xml
這個文件默認只有configuratiion節,因為我們部署的是單機節點,直接把wiki上的復制過來就行了。
<configuration> <property> <name>fs.default.name</name> <value>hdfs://0.0.0.0:19000</value> </property> </configuration>
1.2.3 hdfs-site.xml
同上直接復制到對應文件里。
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
1.2.4 slaves
用記事本打開這個文件,看一下里面是不是有一行
localhost
1.2.5 mapred-site.xml
這是對 mapReduce nextGen,也就是 YARN 的配置。我們既然學習,自然要學習最新的 ^_^ 。直接復制到文件中即可(如果沒有文件,則直接創建)
<configuration> <property> <name>mapreduce.job.user.name</name> <value>%USERNAME%</value> </property> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>yarn.apps.stagingDir</name> <value>/user/%USERNAME%/staging</value> </property> <property> <name>mapreduce.jobtracker.address</name> <value>local</value> </property> </configuration>
1.2.6 yarn-site.xml
同上,是yarn的配置文件,如果沒有,則創建。
<configuration> <property> <name>yarn.server.resourcemanager.address</name> <value>0.0.0.0:8020</value> </property> <property> <name>yarn.server.resourcemanager.application.expiry.interval</name> <value>60000</value> </property> <property> <name>yarn.server.nodemanager.address</name> <value>0.0.0.0:45454</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.server.nodemanager.remote-app-log-dir</name> <value>/app-logs</value> </property> <property> <name>yarn.nodemanager.log-dirs</name> <value>/dep/logs/userlogs</value> </property> <property> <name>yarn.server.mapreduce-appmanager.attempt-listener.bindAddress</name> <value>0.0.0.0</value> </property> <property> <name>yarn.server.mapreduce-appmanager.client-service.bindAddress</name> <value>0.0.0.0</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>-1</value> </property> <property> <name>yarn.application.classpath</name> <value>%HADOOP_CONF_DIR%,%HADOOP_COMMON_HOME%/share/hadoop/common/*,%HADOOP_COMMON_HOME%/share/hadoop/common/lib/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/*,%HADOOP_HDFS_HOME%/share/hadoop/hdfs/lib/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/*,%HADOOP_MAPRED_HOME%/share/hadoop/mapreduce/lib/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/*,%HADOOP_YARN_HOME%/share/hadoop/yarn/lib/*</value> </property> </configuration>
用管理員模式打開一個cmd窗口,切換到 %HADOOP_PERFIX% 目錄(不用管理員模式的cmd窗口容易出現讀取文件的權限問題)。
運行 etc\hadoop\hadoop-env.cmd 進行環境變量的設置。 因為cmd中的set只對本次cmd有效,所以接下來都在這同一個cmd中操作。
運行 bin\hdfs namenode -format 命令,初始化一個hdfs文件系統。默認初始化的目錄為 當前盤符:\tmp 也就是我在P盤下,會自動創建一個 P:\tmp 目錄。
運行 sbin\start-dfs.cmd
如果正常,會彈出兩個cmd窗口千萬不要關@_@
打開一個cmd,或者回到最開始的cmd也可以。 先輸入hdfs 命令試一下。 如果提示不是內部或外部命令,則重新運行 etc\hadoop\hadoop-env.cmd 如果正常,則會提示一些hdfs的相關命令。 cd到一個目錄,往hdfs里放個文件試一下。
cd P:\java\apache-tomcat-8.0.35\logs hdfs dfs -put localhot.2016-06-10.log /
就是把 .log 這個文件放到 hdfs的 / 下面。 如果有什么奇怪的提示,先不管。如果報錯,額... 博主沒遇到問題,根據錯誤信息自行搜索一下。不過我想首先,確保不要手賤的把剛才的兩個服務的cmd關了。。 然后看一下文件是不是放到dfs中了。
hdfs dfs -ls /
好了,dfs 測試成功!
下面就是測試一下mapreduce了。
2.2.1 運行yarn
如果剛才測試dfs的時候你cd到了其他目錄,現在需要先cd回到 %HADOOP_PERFIX% 然后運行
sbin\start-yarn.cmd
不出意外的話,又是兩個cmd彈了出來,好了,現在yarn就在運行中了。 然后測試一下yarn,運行:
bin\yarn jar %HADOOP_PREFIX%\share\hadoop\mapreduce\hadoop-mapreduce-examples-2.5.0.jar wordcount /localhot.2016-06-10.log /out
簡單分析一下這個命令,執行某jar包中的wordcount任務(這個任務是做啥的,等等下面看一下輸出)。輸出到hdfs的out目錄下。不出意外的話,你會拿到這么一個輸出。
當然,為了驗證是否真的正確,我們得看一下結果。 繼續在cmd中輸入命令:
hdfs dfs -get /out P:\
把out目錄從hdfs中復制到P盤下。 好了,現在打開P:\out 文件夾。發現一個0k的 _SUCCESS 看來只是標志任務成功的文件。還有一個 10k的part-r-00000,打開之后發現:
原來,這個任務是統計文件中各詞出現的次數,另外,中文在文件里面亂碼了。看來hadoop的編碼問題還要解決一下,這個之后再解決吧。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“windows上如何配置hadoop”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。