前期準備
操做系統
hadoop目前對linux操做系統支持是最好的,能夠部署2000個節點的服務器集羣;在hadoop2.2之後,開始支持windows操做系統,可是兼容性沒有linux好。所以,建議在MAC OS或者linux(CentOS或者Unbuntu)操做系統上安裝。
安裝java
hadoop2.6之前的版本,須要jdk1.6以上的版本;從hadoop2.7開始,則須要jdk1.7以上的版本。
對於linux操做系統用戶
tar zxvf jdk-8u161-linux-x64.tar.gz -C /opt
接着就須要配置環境變量
編輯環境變量文件,添加以下代碼
$ vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
對於MacOS操做系統用戶
接着就須要配置環境變量
編輯環境變量文件,添加以下代碼
$ vim /etc/profile
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
檢查java是否安裝成功
$ java -version
輸入上面的命令後,會輸出java的基本信息
安裝Hadoop
hadoop的安裝方式有三種,本地模式、僞分佈模式和徹底分佈模式。三種模式安裝步驟有少量區別,本文介紹僞分佈模式,也是開發環境最經常使用的方式。
經過
官方網站下載hadoop版本,建議安裝2.6版本,此版本相對更穩定,也是使用最爲普遍的版本。
$ tar zxvf hadoop-2.6.0.tar.gz -C /opt
配置環境變量
$vim /etc/profile
export HADOOP_HOME=/opt/hadoop-2.6.0
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
hadoop配置文件
/opt/hadoop-2.6.0/hadoop-env.sh:
export JAVA_HOME=使用你上面配置的java_home路徑
export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true
/opt/hadoop-2.6.0/core-site.xml:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.6.0/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>1440</value>
<!--垃圾保存一天-->
</property>
/opt/hadoop-2.6.0/hdfs-site.xml:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
/opt/hadoop-2.6.0/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
/opt/hadoop-2.6.0/yarn-site.xml
<configuration>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://localhost:19888/jobhistory/job/</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 設置HDFS可使用硬盤的百分比,對於硬盤小的人很重要 -->
<name>yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage</name>
<value>99.0</value>
</property>
</configuration>
SSH免密碼登陸
檢查一下,是否能夠對本地進行免密碼登陸
$ ssh localhost
若是你在ssh本地時,須要輸入密碼,那麼按如下步驟,配置免密碼登陸
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
格式化hdfs目錄
$ hdfs namenode -format
該命令執行後,只會格式化你的/opt/hadoop-2.6.0/tmp目錄
啓動HDFS
$ start-dfs.sh
啓動hdfs後,會生成日誌文件,在$HADOOP_HOME/logs目錄下
若是啓動成功,你能夠經過瀏覽器打開http://localhost:50070/,查看hdfs的相關信息
若是你想中止hdfs,請輸入如下命令
$ stop-dfs.sh
啓動yarn
$ start-yarn.sh
啓動yarn後,會生成日誌文件,在$HADOOP_HOME/logs目錄下
若是啓動成功,你能夠經過瀏覽器打開http://localhost:8088/,查看yarn的相關信息
若是你想中止yarn,請輸入如下命令
$ stop-yarn.sh
啓動JobHistory
$ mr-jobhistory-daemon.sh start historyserver
啓動JobHistory後,會生成日誌文件,在$HADOOP_HOME/logs目錄下
若是啓動成功,你能夠經過瀏覽器打開http://localhost:19888/,查看jobhistory的相關信息
若是你想中止JobHistory,請輸入如下命令
$ mr-jobhistory-daemon.sh stop historyserver
測試hadoop
成功安裝完hadoop後,咱們能夠經過一些命令來感覺一下hadoop
建立目錄
$ hdfs dfs -mkdir /tmp/input
上傳本地文件到hdfs $ hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /tmp/input
使用MapReduce來計算咱們剛纔上傳文件的以dfs開頭的單詞個數
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep /tmp/input /tmp/output 'dfs[a-z.]+'
查看MapReduce的結果
能夠把hdfs上的結果文件下載到本地後查看
$ hdfs dfs -get /tmp/output output $ cat output/*
也能夠經過hdfs查看命令直接查看
$ hdfs dfs -cat /tmp/output/part-r-00000
經過查詢http://localhost:8088/,你會發現剛纔執行MapReduce任務的歷史記錄