1. 程式人生 > >Hadoop 3.1.1偽分散式模式安裝

Hadoop 3.1.1偽分散式模式安裝

Hadoop 3.1.1偽分散式模式安裝

更多資源

github: https://github.com/opensourceteams/hadoop-java-maven-3.1.1

視訊

前置條件

  • jdk.1.8.0_191 已安裝
  • linux 系統(本文選用的centos 7 系統已完裝好)

技能標籤

  • 學會安裝Hadoop3.1.1版本的偽分散式模式
  • 可以進行Hadoop技術開發(包括HDFS,MapReduce等)
  • HDFS啟動停止命令,yarn啟動停止命令
  • 官網自帶WorldCount示例執行
  • 進行管理介面管理NamenNode管理和ResourceManager管理
  • 對Hadoop叢集環境操作(一臺機器也可以做叢集,只是節點只有一個,很多功能都可以操作)

安裝步驟

安裝ssh

  • 一般安裝系統後都已自帶ssh服務,就可以跳過,直接在終端執行ssh命令,有這個命令就可以
  • 如果沒有需要安裝如下服務
yum install ssh
yum install pdsh

下載Hadoop安裝包

tar -zxvf /hadoop-3.1.1.tar.gz  -C /opt/module/bigdata

配置

hadoop-env.sh

  • 編輯etc/hadoop/hadoop-env.sh
  • 調置JAVA_HOME環境變數
# set to the root of your Java installation
  export JAVA_HOME=/opt/module/jdk/jdk1.8.0_191

執行命令 Hadoop

  • 確認hadoop命令是否可以正常執行
  • 檢視當前版本命令
bin/hadoop version

獨立模式

  • 本地模式

執行官方自帶示例

mkdir input
  $ cp etc/hadoop/*.xml input
  $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'
  $ cat output/*

偽分散式模式

配置環境變數

  • 配置在本地使用者下 ~/.bashrc
export HADOOP_HOME=/opt/module/bigdata/hadoop-3.1.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

配置core-site.xml

  • 配置檔案 etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

配置hdfs-site.xml

  • etc/hadoop/hdfs-site.xml:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

配置 ssh免密登入

  • 驗證是否已經配置 ssh
ssh localhost
  • 如果需要輸入密碼驗證,則執行以下
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  $ chmod 0600 ~/.ssh/authorized_keys
  • 也可以執行以下
ssh-keygen 
ssh-copy-id 遠端ip地址

格式化namenode

 bin/hdfs namenode -format

啟動namenode和datanode

sbin/start-dfs.sh
  • 可配置日誌輸出目錄
$HADOOP_LOG_DIR directory (defaults to $HADOOP_HOME/logs).

訪問namenode

HDFS上新建目錄

bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>

上傳本機檔案到HDFS上

bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input

執行示例

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'

檢視示例輸出結果(先下到本地再看)

 bin/hdfs dfs -get output output
 $ cat output/*

檢視HDFS上的檔案內容

 bin/hdfs dfs -cat output/*

停止namemode和datanode

sbin/stop-dfs.sh

hadoop-daemon.sh命令

 hdfs --daemon start namenode
 hdfs --daemon start datanode
 hdfs --daemon stop namenode
 hdfs --daemon stop datanode

  

HDFS命令操作

  • 在HDFS上新建目錄
hdfs dfs -mkdir -p /home/liuwen/data
  • 上傳本地檔案到HDFS
hdfs dfs -put /opt/temp/a.txt  /home/liuwen/data
  • 檢視HDFS檔案
hdfs dfs -text  /home/liuwen/data/a.txt

YARN 配置偽分散式模式

配置檔案mapred-site.xml

  • etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

<configuration>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

配置檔案mapred-site.xml

  • etc/hadoop/yarn-site.xml:
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

啟動YARN

  • 啟動 ResourceManager daemon 和 NodeManager daemon
sbin/start-yarn.sh

訪問資源管理器

###停止YARN

  • 停止 ResourceManager daemon 和 NodeManager daemon
sbin/stop-yarn.sh

WorldCount官網示例執行

  • 配置環境變數直接執行 hadoop命令
  • worldcount標籤,examples自帶執行對應的程式
  • 輸入資料來源
  • 輸出資料來源

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount  /opt/data/a.txt  /opt/temp/output/output_2


end