hadoop集群搭建(偽分布式)+使用自帶jar包計算pi圓周率


一.使用VMvare創建兩個虛擬機,我使用的是ubuntu17版本的,並關閉全部虛擬機的防火牆

1.我們把用於主節點的虛擬機名稱設為master(按自己的喜好創建),把用於從節點的虛擬機名稱設為slave1

  •   修改主機名的命令:sudo vim /etc/hostname
  •  把原主機名ubuntu改為master(在從主機上則改為slave1)     

  2.為了虛擬機之間能ping通,需要修改虛擬機的ip地址(這里以在master機器操作為例子,從節點的虛擬機也要進行一致的操作)

  •  命令:sudo vim /etc/hosts

  把/etc/hosts中yangcx-virtual-machine修改為剛剛改過的主機名master,同時將前面的ip地址改為實際的ip地址

  怎么知道自己虛擬機的ip地址?

  命令:ifconfig -a

  slave1的ip地址就是從虛擬機slave1的真實ip地址。同樣,我們在slave1虛擬機上也要進行這一步操作。

二、建立ssh無密碼登錄本機

ssh生成密鑰有rsa和dsa兩種生成方式,默認情況下采用rsa方式。

1、創建ssh-key,,這里我們采用rsa方式

  1. ssh-keygen -t rsa -""   //(P是要大寫的,后面跟"")(注:回車后會在~/.ssh/下生成兩個文件:id_rsa和id_rsa.pub這兩個文件是成對出現的)

    2. 進入~/.ssh/目錄下,將id_rsa.pub追加到authorized_keys授權文件中,開始是沒有authorized_keys文件的

    1. cd ~/.ssh
    2. cat id_rsa.pub >> authorized_keys

    完成后就可以無密碼登錄本機了。

     3、登錄localhost

      ssh localhost ( 注:當ssh遠程登錄到其它機器后,現在你控制的是遠程的機器,需要執行退出命令才能重新控制本地主機。)

   4、執行退出命令

    1. exit

      1~4步在master和slave1兩台虛擬機上都要配置

    5.配置master無密碼登陸slave1

      mater主機中輸入命令復制一份公鑰到home中:

          cp .ssh/id_rsa.pub ~/id_rsa_master.pub

      把master的home目錄下的id_rsa_master.pub拷到slave1的home下(我的做法是先拖到windows桌面上,在拖進slave1虛擬機中)

      slave1的home目錄下分別輸入命令

          cat id_rsa_master.pub >> .ssh/authorized_keys
  至此實現了mater對slave1的無密碼登陸
三. 配置 hadoop的配置文件

以下的步驟只在master上進行(除了hadoop的環境變量配置在slave1上也要進行之外)

1.core-site.xml

  <configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>file:/home/zjp/hadoop-2.7.7/tmp</value>
      <description>Abase for other temporary directories.</description>
    </property>
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://master:9000</value>
    </property>
  </configuration>

2.hdfs-site.xml

  <configuration>
  <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/zjp/hadoop-2.7.7/tmp/dfs/name</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/home/zjp/hadoop-2.7.7/tmp/dfs/data</value>
    </property>
  </configuration>

3.mapred-site.xml

  <configuration>

    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    <property>
      <name>mapred.job.tracker</name>
      <value>localhost:9001</value>
    </property>
  </configuration>

4.yarn-site.xml

  <configuration>

    <!-- Site specific YARN configuration properties -->
    <property>
        <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.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>

    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
  </configuration>

5.配置slaves 文件

    sudo vim slaves

    把原本的localhost刪掉,改為slave1  

6.接下來,將hadoop傳到slave1虛擬機上面去:

    scp -r hadoop-2.7.7 zjp@slave1:~/

  注意:hadoop是虛擬機的用戶名,創建slave1時設定的

7.初始化hadoop

  bin/hdfs namenode -format

8.開啟hadoop

  兩種方法:

  • sbin/start-all.sh
  • 先start-dfs.sh,再start-yarn.sh

如果在mater上面鍵入jps后看到

在slave1上鍵入jps后看到

則說明集群搭建成功

 四.最后用自帶的樣例測試hadoop集群能不能正常跑任務

使用命令

bin/hadoop jar /home/zjp/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar pi 10 10

最后看到結果:

 

 參考:https://blog.csdn.net/fanxin_i/article/details/80425461

 


免責聲明!

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



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