【Hadoop】偽分佈式安裝

  • 2020 年 10 月 6 日
  • 筆記

創建hadoop用戶

創建用戶命令:

sudo useradd -m hadoop -s /bin/bash

創建好後需要更改hadoop用戶的密碼,命令如下:

sudo passwd hadoop

然後給予hadoop用戶sudo權限,方便配置部署。
這裡使用編輯/etc/sudoers文件的方式,來賦權。在文件中添加一行hadoop ALL=(ALL) ALL,保存後完成賦值。

Java安裝

安裝Java的命令如下:

sudo yum install -y java-1.8.0-openjdk-devel

測試Java是否安裝成功的命令:

java -version

結果如圖所示:

Java安裝結果

此方法的JAVA_HOME環境變量為:

export JAVA_HOME=/etc/alternatives/java_sdk_1.8.0

SSH登入權限設置

首先需要安裝SSH server,命令如下:

sudo yum install -y openssh-server

測試安裝成功的命令:

ssh localhost

此時是需要密碼登入的。

免密SSH登入

hadoop用戶下,輸入如下命令:

ssh-keygen -t rsa                      # 會有提示,都按回車就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授權

再次ssh local則不需要密碼了。

Hadoop偽分佈式安裝

下載並解壓

下載Hadoop,這裡下載的版本是2.7.1。

hadoop-2.7.1.tar.gz解壓到/usr/local目錄下。並修改文件名,修改文件權限。

tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop
sudo chown -R hadoop ./hadoop

檢查Hadoop是否可用,在hadoop目錄下輸入下面命令:

./bin/hadoop version

結果如下:

Haddop版本

偽分佈式配置

Hadoop的配置文件位於/usr/local/hadoop/etc/hadoop/中,切換到此目錄下,修改兩個配置文件core-site.xmlhdfs-site.xml

core-size.xml文件的配置
修改為如下

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

hdfs-site.xml文件的配置
修改為如下:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

名稱節點格式化

配置完成後執行NameNode的格式化

cd /usr/local/hadoop
./bin/hdfs namenode -format

結果如下:

namenode format

啟動Hadoop

./sbin/start-all.sh 

使用jps指令來檢查是否啟動成功
jps顯示結果

Word Count

在hdfs中創建/user/hadoop/input目錄,命令如下:

./bin/hdfs dfs -mkdir -p /user/hadoop/input

文本file.txt:

Hello world! Hello Java! Hello Hadoop! Hello BigData!

將被計數的文本拷貝到hdfs的剛創建目錄下,命令為:

./bin/hdfs dfs -put ./input/file.txt /user/hadoop/input

啟動wordcount實例進行計數:

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount input output

查看結果

./bin/hdfs dfs -cat output/part-r-00000

計數結果

參考

[1]Linux安裝hadoop-2.7.1