hadoop的安裝部署

weixin_33785972發表於2018-09-07

安裝映象:centos6.7

jdk:1.8

1.CDH的下載地址:

http://archive.cloudera.com/cdh5/cdh/5/

HDFS:檔案是以多副本的形式存放的

2.hadoop的官網

hadoop.apache.org

HDFS架構:

1.設計模式

一個master(NameNode)帶N個slaves(DataNodes)


一個檔案會被拆分成多個block

blocksize:128M

130M==>2個block:128M和2M

HDFS/YARN/HBASE


NameNode作用:

1)負責客戶端請求的響應

2)負責後設資料(檔案的名稱、副本系數、Block存放的DataNode)的管理

DateNode作用:

1)儲存使用者的檔案對應的資料塊(Block)

2)要定期向NameNode傳送心跳資訊,彙報本身及其所有的block資訊、健康狀況

A typical deployment has a dedicated machine that runs only the NameNode software。Each of the other machines in the cluster runs one instance of the DataNode software。

經典的部署架構:

一個機器單獨部署一個NameNode,其他多臺機器分別部署一個DataNode,也就是說NameNode和DataNode部署在不同的機器上。

The architecture does not preclude running multiple DataNodes on the same machine but in a real deployment that is rarely the case.


replication factor:副本系數 或者 副本因子


All blocks in a file except the last block are the same size。

一個檔案中所有的blocks除了最後一個,其他的所有block的大小都是一樣的


橙色代表:呼叫者程式

綠色代表:block副本



Hadoop的安裝偽分散式

[if !supportLists]1) [endif]jdk安裝

A.解壓jdk的gz安裝包

B.新增環境變數vi ~/bash_profile  新增的內容為

export JAVA_HOME=/usr/java/jdk1.8.0_181

export PATH=$JAVA_HOME/bin:$PATH

[if !supportLists]C. [endif]是環境變數生效

source  ~/bash_profile

[if !supportLists]2) [endif]安裝ssh

sudo yum install ssh

[if !supportLists]3) [endif]linux免密設定

ssh-keygen -t rsa

[if !supportLists]4) [endif]cp  ~/.ssh/id_rsa.pub  ~/.ssh/authorized_keys

[if !supportLists]5) [endif]下載並解壓hadoop

A.去http://archive.cloudera.com/cdh5/cdh/5/網站下載tar.gz的安裝包

B.解壓 tar -xvf hadoop-2.6.0-cdh5.7.0.tar.gz

6) hadoop配置檔案的修改(hadoop_home/etc/hadoop)

hadoop-env.sh

新增exprot JAVA_HOME=/usr/java/jdk1.8.0_181

以下為偽叢集配置:


Use the following:


etc/hadoop/core-site.xml:


        fs.defaultFS

        hdfs://固定的機器ip或者別名(不要用localhost):9000

為了避免電腦重啟把臨時目錄刪除掉,所以要改掉預設配置

        hadoop.tmp.dir

        /usr/hadoop/tmp//這是我們自己建立存放資料的臨時目錄


etc/hadoop/hdfs-site.xml:


        dfs.replication

        1   //副本個數,由於我們只有一臺機器,所以這裡寫1



如果要配置多節點叢集,需要再配置一個檔案,把叢集的機器名字寫入該檔案,此檔案就是

Hadoop下的/etc/hadoop/slaves


[if !supportLists]6) [endif]啟動hdfs

在/usr/hadoop/hadoop-2.6.0-cdh5.7.0/bin下執行

A.格式化檔案系統(僅第一次執行即可,不要重複執行):hdfs  namenode  -format

B.啟動hdfs

/usr/hadoop/hadoop-2.6.0-cdh5.7.0/sbin目錄下執行

  start-dfs.sh

驗證啟動是否成功:

A.第一種驗證方式

用linux檢視程式的命令jps

48368 DataNode

48661 Jps

48554 SecondaryNameNode

48285 NameNode

[if !supportLists]B. [endif]第二種驗證方式:

瀏覽器訪問:

機器ip:50070就可以看到一個頁面


如果訪問不了,就需要配置防火牆,把50070埠開啟

編輯防火牆:

vi /etc/sysconfig/iptables


增加規則


-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

儲存退出後#重啟iptables服務,新配置即可儲存生效service iptables restart

7)停止hdfs

/usr/hadoop/hadoop-2.6.0-cdh5.7.0/sbin目錄下執行

stop-dfs.sh

[if !supportLists]8)[endif]檢視埠被哪些pid(程式)佔用了

netstat -apn|grep 50070

利用hadoop的shell操作檔案

檢視hadoop所有命令的命令:hdfs dsf

執行hadoop的命令hadoop fs  -命令

如果虛擬機器安裝hadoop的話,需要關閉防火牆

service iptables stop

相關文章