hadoop-單節點僞分佈式搭建

操做系統: macOS Mojave 10.14.5java

JDK : 1.8node

hadoop: 2.7.7web

1. Java和Hadoop安裝

下載和安裝相信都沒問題bash

注意的就是:服務器

  • 環境變量設置好,我是mac因此javahome是$(/usr/libexec/java_home);我是zsh因此修改.zshrc,修改完別忘了source。
#JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
#HADOOP_HOME
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
複製代碼
  • 因爲我將hadoop放在/usr/local/目錄下,因此須要更改hadoop文件夾權限
sudo chown -R zxy:admin /usr/local/hadoop-2.7.7
複製代碼

2. 配置SSH

ssh-keygen -t rsa -P ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 測試
ssh localhost
複製代碼

3. 僞分佈式配置

core-site.xml

修改 /usr/local/hadoop-2.7.7/etc/hadoop/core-site.xmlapp

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop-2.7.7/data/tmp</value>
    </property>
</configuration>
複製代碼
  • fs.defaultFS HDFS 的NameNode地址ssh

  • hadoop.tmp.dir hadoop 臨時文件地址,本身指定webapp

hdfs-site.xml

修改 /usr/local/hadoop-2.7.7/etc/hadoop/hdfs-site.xml分佈式

<configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
</configuration>
複製代碼
  • dfs.replication HDFS文件存儲的副本個數,默認3。由於咱們這隻有一個節點,因此設置1.(單一節點至多存一份副本)

yarn-site.xml

修改 /usr/local/hadoop-2.7.7/etc/hadoop/yarn-site.xmloop

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 開啓聚合日誌 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.log.server.url</name>
        <value>http://localhost:19888/jobhistory/logs</value>
    </property>
</configuration>
複製代碼
  • arn.log-aggregation-enable 開啓日誌聚合
  • yarn.resourcemanager.hostname yarn的ResourceManager地址

mapred-site.xml

修改 /usr/local/hadoop-2.7.7/etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>localhost:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>localhost:19888</value>
    </property>
</configuration>
複製代碼
  • mapreduce.framework.name 採用yarn管理MR
  • mapreduce.jobhistory.address 歷史服務器端口地址
  • mapreduce.jobhistory.webapp.address 歷史服務器web端地址

檢查JAVA_HOME

hadoop-env.sh、mapred-env.sh、yarn-env.sh,在這三個文件檢查是否添加JAVA_HOME路徑,以下:

export JAVA_HOME=$JAVA_HOME
複製代碼

4. 使用

  • 開HDFS

第一次使用要格式化(僅限第一次使用時,之後要格式化需刪除log、data目錄下的文件)

hadoop namenode -format
複製代碼

開啓namenode、datanode

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
複製代碼
  • 開yarn
yarn-daemon.sh start resourcemanager
yarn-daemon.sh start nodemanager
複製代碼
  • 開historyserver
mr-jobhistory-daemon.sh start historyserver
複製代碼
  • 能夠用jps查看效果
jps
35953 JobHistoryServer
32930
35682 NodeManager
35990 Jps
35559 DataNode
35624 ResourceManager
35502 NameNode
複製代碼
  • 測試

建立一個文件夾zxytest,裏面隨便放一個文件,上傳到hdfs測試wordcount

hdfs dfs -put zxytest /
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /zxytest /zxyout
複製代碼
  • 關閉
mr-jobhistory-daemon.sh stop historyserver
yarn-daemon.sh stop resourcemanager
yarn-daemon.sh stop nodemanager
hadoop-daemon.sh stop namenode
hadoop-daemon.sh stop datanode
複製代碼
  • 可視化地址

全部任務: http://localhost:8088/

DataNode: http://localhost:50070/

歷史服務器: http://localhost:19888/

相關文章
相關標籤/搜索