Hadoop-2.8.0實踐——單機模式和偽分佈模式
阿新 • • 發佈:2018-12-21
一、安裝
1.1 環境
- 系統:Ubuntu 16.04 LTS
- 軟體:
- Java 1.7及以上
- ssh 和 sshd
- 安裝ssh:
$ sudo apt-get install ssh
$ sudo apt-get install rsync
1.2 下載 Hadoop 2.8.0
1.3 為 Hadoop 配置 Java 路徑
編輯 etc/hadoop/hadoop-env.sh:
export JAVA_HOME=/path/to/java/root/dir
1.4 啟動 Hadoop
執行命令:
bin/hadoop
若打印出幫助資訊,則表示安裝成功。
二、標準模式(單機模式)操作
預設情況下,Hadoop被配置為以非分散式模式執行,作為一個單一的Java程序。這對於除錯非常有用。
下面的示例複製未打包的conf目錄作為輸入,然後找到並顯示給定正則表示式的每一個匹配項。輸出被寫入到給定的輸出目錄。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*
2.1 偽分佈模式操作
Hadoop還可以在一個偽分佈模式下執行,每個Hadoop守護程序在一個單獨的Java程序中執行。
2.1.1 配置
etc/hadoop/core-site.xml:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
etc/hadoop/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
2.1.2 ssh免密碼連線本地主機
檢查是否可以使用ssh到本地主機,而無需使用密碼:
$ ssh localhost
如果不能在沒有密碼的情況下ssh到localhost,請執行以下命令:
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
2.1.3 執行
格式檔案系統:
$ bin/hdfs namenode -format
啟動NameNode守護程序和DataNode守護程序:
$ sbin/start-dfs.sh
瀏覽NameNode的web介面;預設情況下:
建立執行MapReduce作業所需的HDFS目錄:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
將輸入檔案複製到分散式檔案系統中:
$ bin/hdfs dfs -put etc/hadoop input
執行示例:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar grep input output 'dfs[a-z.]+'
檢查輸出檔案
將輸出檔案從分散式檔案系統複製到本地檔案系統,並檢查它們:
$ bin/hdfs dfs -get output output
$ cat output/*
或者 檢視分散式檔案系統上的輸出檔案:
$ bin/hdfs dfs -cat output/*
當完成這些,可以停止守護程序:
$ sbin/stop-dfs.sh
2.1.4 單節點YARN
可以通過設定一些引數和執行ResourceManager守護程序及NodeManager守護程序,在偽分佈模式下執行MapReduce作業。
(以下操作假設以上說明的前四步均已執行!)
配置
etc/hadoop/mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
啟動ResourceManager守護程序和NodeManager守護程序
$ sbin/start-yarn.sh
瀏覽ResourceManager web介面;預設情況下:
完成後,停止守護程序:
$ sbin/stop-yarn.sh