Hadoop3.2.0詳細安裝步驟

一、環境準備

①準備三臺虛擬機,查看ip
②先修改主機名(每個節點統一命名規範)
修改/etc/hosts文件:(如下)
172.18.96.1 master
172.18.96.2 slave1
172.18.96.3 slave3

二、永久關閉防火牆

systemctl stop firewalld
systemctl disable firewalld

三、配置ssh免密登錄

三臺機器都運行:
ssh-keygen -t rsa  #一路回車即可
cd 到 /root/.ssh目錄下:
創建文件:
touch authorized_keys #生成公鑰
將三臺機器下的/root/.ssh/id_rsa.pub文件中的內容拷貝到人認證文件authorized_keys中,然後依次分發給兩外兩臺機器。

四、配置jdk1.8

將jdk解壓到自定義目錄
vim /etc/profile #添加如下信息

export JAVA_HOME=jdk安裝目錄
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:JAVA_HOME/bin

再保存執行

source /etc/profile

驗證

java -version

五、Hadoop環境配置

解壓並移動到自定義位置
vim /etc/profile
export HADOOP_HOME=Hadoop的安裝目錄
export PATH=PAHT:PAHT:HADOOP_HOME/bin
export PATH=PATH:PATH:HADOOP_HOME/sbin
更新資源使生效

source /etc/profile

首先在hadoop-env.sh文件中指定JDK的路徑

export JAVA_HOME=jdk安裝目錄

配置core-site.xml
添加內容如下:

 <configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

配置hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property><!--namenode持久存儲名字空間及事務日誌的本地文件系統路徑-->
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>
     </property>
     <property><!--DataNode存放塊數據的本地文件系統路徑-->
         <name>dfs.datanode.data.dir</name>
         <value>/usr/local/hadoop/dfs/data</value>
     </property>
     <property><!--數據需要備份的數量,不能大於集羣的機器數量,默認爲3-->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

配置yarn-site.xml

<configuration>
    <property><!--NodeManager上運行的附屬服務,用於運行mapreduce-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
</configuration>

配置mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

修改workers文件,刪除localhost,並換成

slave1
slave2

修改以下四個文件

$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
兩處增加以下內容

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

處理2
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh
兩處增加以下內容

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

將hadoop分發給另外兩個結點:
Hadoop安裝完成,格式化Namenode

Hadoop namenode -format

啓動Hadoop

./start-all.sh

運行hadoop例程中自帶的wordcount程序:

1.先在hdfs上創建文件夾:
hadoop fs -mkdir -p /data/input
2.在本地創建一個my_wordcount.txt
touch my_wordcount.txt
3.編輯my_wordcount.txt文件,輸入一些字符
nano my_wordcount.txt
比如:
hello world
hello hadoop
hello I will eat lunch
4.把本地的my_wordcount.txt文件上傳到雲端,由主機進行文件的分佈式存儲。
hadoop fs -put my_wordcount.txt /data/input

5.查看雲端的/data/input文件夾下面是否有該文件
hadoop fs -ls /data/input
6.運行share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar這個java程序,調用wordcount方法。
在hadoop_home的目錄下執命令:

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /data/input/ /data/out/my_wordcount

7.查看雲端的/data/output/my_wordcount/part-r-00000文件。

hadoop fs -cat /data/out/my_wordcount/part-r-00000

注意:在運行Java程序時,會遇到加載不到類的錯誤:

解決方法:

在命令行執行hadoop classpath命令,將執行後的內容複製到yarn-site.xml中,如下所示:
在這裏插入圖片描述
將yarn-site.xml在分發給兩外兩臺機器。
先將進程停止:stop-all.sh
在重新開啓進程:start-all.sh
在重新執行java程序,就好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章