hadoop3.0.0測驗


下載地址:

  hadoop: http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/

准備工作:

1.master節點與其他節點需要建立免密登錄,這個很簡單,兩句話搞定:

ssh-keygen
ssh-copy-id 10.1.4.58

2.安裝jdk

3.配置/etc/hosts(如果配置為ip ip將會導致datanode無法識別master,下面會講)

4.關閉防火牆

新建用戶

  useradd sri_udap
  passwd sri_udap

  輸入密碼

方便起見,全部采用root用戶操作,新建用戶只是獨立出目錄,后續如果需要權限管理則重新賦權

解壓hadoop-3.0.0.tar.gz

tar -zxvf hadoop-3.0.0.tar.gz

加入環境變量

vi /etc/profile

  添加如下內容:

export HADOOP_HOME=/home/sri_udap/app/hadoop-3.0.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

修改配置文件:

cd /home/sri_udap/app/hadoop-3.0.0/etc/hadoop/
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_121
vi core-site.xml


core-site.xml

<configuration>
    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://10.1.4.57:9000</value>
    </property>
    <!-- 指定hadoop運行時產生文件的存儲路徑 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/sri_udap/app/hadoop-3.0.0/temp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>

    <!-- 設置namenode的http通訊地址 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>

    <!-- 設置secondarynamenode的http通訊地址 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50090</value>
    </property>

    <!-- 設置namenode存放的路徑 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/soft/hadoop-2.7.2/name</value>
    </property>

    <!-- 設置hdfs副本數量 -->
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <!-- 設置datanode存放的路徑 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/soft/hadoop-2.7.2/data</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
 

yarn-site.xml

<configuration>
    <!-- 設置 resourcemanager 在哪個節點-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>

    <!-- reducer取數據的方式是mapreduce_shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
         <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
         <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>
新建worker文件:
vi workers

添加如下:

10.1.4.58
10.1.4.59

將整個包拷貝到其他兩台主機的相同位置

格式化:(格式化一次就好,多次格式化可能導致datanode無法識別,如果想要多次格式化,需要先刪除數據再格式化)

./bin/hdfs namenode -format


啟動

[root@10 sbin]# ./start-dfs.sh 

報錯:

Starting namenodes on [10.1.4.57]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [10.1.4.57]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

 

把缺少的環境變量加上:hadoop-env.sh

export HDFS_DATANODE_SECURE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root

再啟動:

又報錯:

Starting namenodes on [10.1.4.57]
上一次登錄:二 12月 26 15:06:36 CST 2017pts/2 上
Starting datanodes
10.1.4.58: ERROR: Cannot set priority of datanode process 5752
10.1.4.59: ERROR: Cannot set priority of datanode process 9788
Starting secondary namenodes [10.1.4.58]
上一次登錄:二 12月 26 15:10:16 CST 2017pts/210.1.4.58: secondarynamenode is running as process 5304.  Stop it first.

這個問題,查閱了各個方面的文檔始終無法解決,不知道會不會跟hostname的寫法有關系,我的/etc/hosts配置方法是,這種寫法在hadoopdatanode節點啟動是無法識別到master_ip的,這個問題在后面嘗試中改掉了,最后會導致集群沒有可用datanode,要避免這樣寫

10.1.4.57 10.1.4.57
10.1.4.58 10.1.4.58
10.1.4.59 10.1.4.59

嘗試失敗..不過據說這個問題在2.*版本中是沒有出現的,所以回退一下版本

退到2.7.2,把配置拷貝過去,並在配置目錄下 etc/hadoop添加兩個文件

vi masters

內容:

10.1.4.57
vi slaves

內容:

10.1.4.58
10.1.4.59

啟動

[root@10 sbin]# ./start-dfs.sh
Starting namenodes on [10.1.4.57]
10.1.4.57: starting namenode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-namenode-10.1.4.57.out
10.1.4.59: starting datanode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-datanode-10.1.4.59.out
10.1.4.58: starting datanode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-datanode-10.1.4.58.out
Starting secondary namenodes [10.1.4.57]
10.1.4.57: starting secondarynamenode, logging to /home/sri_udap/app/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-10.1.4.57.out
[root@10 sbin]# ./start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-resourcemanager-10.1.4.57.out
10.1.4.59: starting nodemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-nodemanager-10.1.4.59.out
10.1.4.58: starting nodemanager, logging to /home/sri_udap/app/hadoop-2.7.2/logs/yarn-root-nodemanager-10.1.4.58.out

 

登錄http://10.1.4.57:50070 查看hadoop作業情況

 

查看yarn 10.1.4.57:8088

 

 

 測驗:

測驗可以等到安裝hive后一起,因為復雜的hive語句將會產生MapReduce作業在hdfs

hdfs dfs -mkdir /input
hdfs dfs -put 1.txt /input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /input /output

 這樣就產生了一個作業,其中1.txt是隨便寫的一個文件,我們運行一個單詞計數作業

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM