hadoop3.1.0集群搭建


一.環境配置

  jdk1.8

  centos7

二.環境搭建

  1.安裝jdk

    這個不用怎么說了吧,可以直接yum安裝或者自己下載tar包。yum安裝不用配置javahome,但是需要知道javahome位置,因為hadoop是java項目,運行需要jdk環境。通過yum安裝查找javahome如下:

$whereis javac
javac: /usr/bin/javac /usr/share/man/man1/javac.1.gz

    可以看出結果是兩個目錄  用ll命令查看這兩個目錄詳情

$ll /usr/bin/javac
lrwxrwxrwx. 1 root root 23 8月   7 14:03 /usr/bin/javac -> /etc/alternatives/javac

    這個是個軟連接 指向/etc/alternatives/javac 繼續對這個目錄ll直至不在出現軟連接為止

$ll /etc/alternatives/javac
lrwxrwxrwx. 1 root root 70 8月   7 14:03 /etc/alternatives/javac -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/bin/javac

  $ ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/bin/javac  
  -rwxr-xr-x. 1 root root 7424 7月 24 00:34 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/bin/javac

 

  $ ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64
  總用量 50780
  drwxr-xr-x. 2 root root 4096 8月 7 14:03 bin
  drwxr-xr-x. 10 root root 134 8月 7 14:03 demo
  drwxr-xr-x. 3 root root 132 8月 7 14:03 include
  drwxr-xr-x. 4 root root 28 8月 7 14:03 jre
  drwxr-xr-x. 3 root root 144 8月 7 14:03 lib
  drwxr-xr-x. 11 root root 162 8月 7 14:03 sample
  -rw-r--r--. 1 root root 51993150 7月 23 23:59 src.zip
  drwxr-xr-x. 2 root root 204 8月 7 14:03 tapset

    看出來這個文件夾就是jdk的安裝路徑了。

 

  2 centos7 linux用戶之間免登陸

     a)分別在機器上創建相同的用戶,設置密碼

     b)在a機器上運行ssh-keygen命令生成公鑰私鑰

      

     c)將a中的公鑰id_dsa.pub烤到b機器上,並查看是否有authorized_keys這個文件,如果有追加id_dsa.pub內容在authorized_keys文件中,沒有則創建,並將它的權限修改為600(chmod 600 authorized_keys)

     d)b中ssh測試是否能,免密連接

     a連b亦是同理

   3.安裝hadoop 

     前置准備 三台機器ip,主機名分別為

      

     將三台機器/etc/hosts都修改為這種,ip主機名根據實際而定

 

     a) 下載網站,選擇合適的版本  http://mirror.bit.edu.cn/apache/hadoop/common/

      

      b)下載好以后解壓 tar -zxvf 安裝包

      c)配置 core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml 這四個文件hadoop安裝包 etc/hadoop/目錄下

        core文件主要用於配置namenode地址和tmp文件地址

$ vim etc/hadoop/core-site.xml

<configuration>

    <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 指定hadoop運行時產生文件的存儲路徑 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/workhome/hadoop-3.1.0/data/tmp</value>
    </property>

</configuration>

 hdfs用於設置namenode datanode,hdfs備份份數 默認是3 

dfs.permissionsdfs權限是否打開 ,通過idea遠程操作的時候提示沒有權限訪問不了 因此設置為false 默認值是true
 
         
$ vim etc/hadoop/hdfs-site.xml

<
configuration> <property> <name>dfs.name.dir</name> <value>/workhome/hadoop-3.1.0/hdfs/name</value> <description>namenode上存儲hdfs名字空間元數據 </description> </property> <property> <name>dfs.data.dir</name> <value>/workhome/hadoop-3.1.0/hdfs/data</value> <description>datanode上數據塊的物理存儲位置</description> </property> <!-- 設置hdfs副本數量 --> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration>

mapred設置mapreduce

 
         
$ vim etc/hadoop/mapred-site.xml 

<
configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> <property> <name>mapred.job.tracker</name> <value>http://master:9001</value> </property> </configuration>
 
         
$ vim etc/hadoop/yarn-site.xml 

<
configuration> <!-- Site specific YARN configuration properties --> <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> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>

 

修改 etc/hadoop/hadoop-env.sh 添加java安裝路徑

$ vim etc/hadoop/hadoop-env.sh 
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64

配置hadoop環境變量

$  vim /etc/profile
export HADOOP_HOME=/workhome/hadoop-3.1.0
export PATH=$PATH:$HADOOP_HOME/bin

 

  然后將master這個hadoop完整的復制到其他機器即可

  最后在master etc/hadoop下新增workers 將slave機器添加進去 ,以后要是擴展節點 也應該添加到這個里面

 

  e)初始化:

    hadoop namenode -format

  f) 啟動

    只需啟動master的  

    hadoop安裝路徑/sbin/start-all.sh

    查看:jps命令 用來查看啟動了的java服務

    master 

    

    slave1

    

    slave2

    

 

    只需查看到master上有namenode slave上有datanode就代表成功。

    g)關閉 /sbin/stop-all.sh腳本 

 

 

 四.遇到的問題以及解決方案

   擴展一台機器,重啟服務沒有datanode

    解決方案:清除 core-site.xml中配置的tmp文件夾  以及hdfs-site.xml中配置的datanode和namenode的文件夾  重新格式化namenode


免責聲明!

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



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