1. 程式人生 > >[Hadoop 1] 構建一個單節點叢集

[Hadoop 1] 構建一個單節點叢集

目的

能夠快速的在一單個節點上構建和配置 Hadoop,使用 MapReduce 和 Hadoop Distributed File System(HDFS)來執行簡單的操作。

準備

支援平臺

建議使用 GNU/Linux 作為開發和執行平臺。

所需軟體

Linux 下所需要的軟體是:

  1. 必須安裝 Java TM ,Hadoop 2.7 及以上版本需要 Java 7。
    • linux下配置 Oracle JDK
  2. 必須安裝 ssh,sshd服務必須執行,來使用 Hadoop 指令碼來管理遠端 Hadoop 服務。同時,也建議安裝 pdsh,更好地進行 ssh 資源管理。

下載

Apache 下載映象 下載最近的穩定釋出版。我所下載的是 hadoop-2.9.0.tar.gz

開始 Hadoop 叢集前的準備

將 Hadoop 包解壓到指定目錄下。進入 Hadoop 目錄,編輯 etc/hadoop/hadoop-env.sh,定義以下引數:

# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest

測試以下命令:

$ bin/hadoop

該命令將會顯示 hadoop 指令碼的使用文件。
接下來便能夠選擇以下三種模式中的一種來開始 Hadoop 叢集:

  • 本地(離線)模式
  • 假分佈模式
  • 全分佈模式

離線模式

Hadoop 預設以非分佈模式執行,僅作為單一 Java 程序,這是有利於除錯的。

假分佈模式

Hadoop 也可以在單一結點上以假分佈模式執行,每個 Hadoop服務分別以不同的 Java 程序執行。

配置

使用以下配置:
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>

建立免密碼的 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

執行

格式化檔案系統:

$ bin/hdfs namenode -format

開啟 NameNode 服務和 DataNode服務:

$ sbin/start-dfs.sh

可以通過以下 IP 訪問 NameNode 的 Web 介面:

http://localhost:50070

Hadoop網路介面

Shell操作

將本地原始檔<localsrc>複製到路徑<dst>指定的檔案或資料夾中去:
hadoop fs -copyFromLocal <localsrc> <dst>
hdfs dfs -copyFromLocal <localsrc> <dst>

$ bin/hadoop fs -copyFromLocal /home/bob/tmpfile/* hdfs://127.0.0.1:9000/tmpDir/
$ bin/hdfs dfs -copyFromLocal /home/bob/tmpfile/* /tmpDir/

建立<path>指定的資料夾:
hadoop fs -mkdir <path>
hdfs dfs -mkdir <path>

$ bin/hadoop fs -mkdir hdfs://127.0.0.1:9000/tmpDir
$ bin/hdfs dfs -mkdir /tmpDir

顯示<path>指定目錄的清單:
hadoop fs -ls <path>
hdfs dfs -ls <path>

$ bin/hadoop fs -ls hdfs://127.0.0.1:9000/
$ bin/hdfs dfs -ls /

參考資料

[1] http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html#Standalone_Operation