我這裏準備四個虛擬機,ip分別爲:html
# bigdata01 192.168.11.100 # bigdata02 192.168.11.101 # bigdata03 192.168.11.102 # bigdata04 192.168.11.103
主機名修改成bigdata0一、bigdata0二、bigdata0三、bigdata04。node
# 進入文件 vi /etc/hostname # 修改文件,這裏根據不一樣的服務器修改 bigdata01
新建帳戶爲bigdata,並設置密碼,設置權限,bigdata的權限等同於rootlinux
# 進入文件 vi /etc/sudoers # 新增配置 bigdata ALL=(ALL) ALL
# 關閉防火牆 systemctl disable firewalld
關閉selinuxgit
# 進入文件 vi /etc/selinux/config # 修改配置 SELINUX=disabled
# 進入文件 vi /etc/hosts # 新增配置 192.168.11.100 bigdata01 192.168.11.101 bigdata02 192.168.11.102 bigdata03 192.168.11.103 bigdata04
bigdata用戶登陸,在每一個虛擬機執行ssh-keygen
命令,一直enter下去,直至id_rsa.pub和id_rsa兩個文件生成。
生成後,每一個虛擬機執行如下命令發送公鑰文件:github
ssh-copy-id bigdata01 ssh-copy-id bigdata02 ssh-copy-id bigdata03 ssh-copy-id bigdata04
發送後經過ssh驗證,好比當前在bigdata01服務器,ssh bigdata02看看能不能免密登陸到bigdata02服務器,若是能夠,就說明設置成功。
若是設置了還不行,就須要注意設置文件夾和文件的權限。由於sshd爲了安全,對屬主的目錄和文件權限有所要求。若是權限不對,則ssh的免密碼登錄不生效。apache
chmod 700 /home/bigdata chmod 700 /home/bigdata/.ssh chmod 600 /home/bigdata/.ssh/authorized_keys
我這邊安裝的是2.7.7版本。
編譯以前除了下載相應版本的源碼包,還須要查看官方的BUILDING.txt文件,這個文件描述了當前版本的編譯須要的依賴項,以及依賴項的安裝、配置。
下面是官方的截圖,好比Unix系統,須要JDK1.7+、Maven3.0等。
以上軟件都安裝完成後,就能夠經過maven對源碼進行編譯,編譯後,咱們就能夠在target生成一個hadoop-2.7.7.tar.gz文件,至此編譯完成。vim
編譯後把生成的文件解壓到制定目錄,好比我這裏是/home/bigdata/apps/hadoop-2.7.7。安全
參考官方
配置以前,咱們的規劃是這樣的,4個節點,3個副本:bash
節點名稱 | HDFS | YARN |
---|---|---|
bigdata01 | NameNode | NodeManager |
bigdata02 | DataNode + SecondaryNamenode | NodeManager |
bigdata03 | DataNode | NodeManager |
bigdata04 | DataNode | ResourceManager |
配置Hadoop守護進程環境,路徑:etc/hadoop/hadoop-env.sh。服務器
參數 | 描述 | 必選 |
---|---|---|
JAVA_HOME | JAVA_HOME的路徑 | 是 |
HADOOP_PID_DIR | HADOOP的PID文件路徑 | 否 |
HADOOP_LOG_DIR | HADOOP的日誌文件路徑 | 否 |
HADOOP_HEAPSIZE | 使用的最大堆大小,以MB爲單位,默認1000M | 否 |
路徑:etc/hadoop/core-site.xml。這個是xml文件,配置在configuration節點下面。
參數 | 描述 | 參數值 |
---|---|---|
fs.defaultFS | NameNode的URL | hdfs://bigdata01:9000 |
io.file.buffer.size | equenceFiles中使用的讀/寫緩衝區的大小。 | 131072 |
hadoop.tmp.dir | 集羣相關的數據存儲目錄 | /home/bigdata/data/hadoopdata |
配置NameNode和DataNode信息,路徑:etc/hadoop/hdfs-site.xml。這個是xml文件,配置在configuration節點下面。
參數 | 描述 | 參數值 |
---|---|---|
dfs.namenode.name.dir | 本地文件系統上的路徑,NameNode在其中持久化存儲命名空間和事務日誌,若是用逗號隔開,那每一個目錄都冗餘存儲 | /home/bigdata/data/hadoopdata/name |
dfs.blocksize | HDFS塊大小 | 好比268435456,即256MB |
dfs.datanode.data.dir | datanode的數據存儲目錄,若是用逗號隔開,那每一個目錄都冗餘存儲 | /home/bigdata/data/hadoopdata/data |
dfs.replication | 副本個數 | 3 |
dfs.secondary.http.address | secondarynamenode運行節點的信息 | bigdata02:50090 |
配置yarn的ResourceManager和NodeManager信息。路徑:etc/hadoop/yarn-site.xml。這個是xml文件,配置在configuration節點下面。
參數 | 描述 | 參數值 |
---|---|---|
yarn.resourcemanager.hostname | 主節點的位置 | bigdata04 |
yarn.nodemanager.aux-services | MapReduce應用須要的shuffle服務 | mapreduce_shuffle |
配置MapReduce應用。路徑:etc/hadoop/mapred-site.xml。這個是xml文件,配置在configuration節點下面。
參數 | 描述 | 參數值 |
---|---|---|
mapreduce.framework.name | 執行框架設置爲Hadoop YARN | yarn |
配置slave節點,路徑:etc/hadoop/slaves。內容以下:
bigdata01 bigdata02 bigdata03 bigdata04
scp -r hadoop-2.7.7 bigdata02 scp -r hadoop-2.7.7 bigdata03 scp -r hadoop-2.7.7 bigdata04
每一個環境都執行如下命令
# 進入文件 vim ~/.bashrc # 新增配置 export HADOOP_HOME=/home/bigdata/apps/hadoop-2.7.7 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
集羣初始化,執行如下命令,注意僅第一次的時候須要。
# 僅第一次 hadoop namenode -format
啓動HDFS集羣,能夠在任意節點
# 能夠在任意節點 start-dfs.sh
啓動YARN集羣,在YARN節點上執行
# 在YARN節點上執行 start-yarn.sh
啓動成功驗證:
網址輸入http://bigdata01:50070,界面...
輸入http://bigdata04:8088,界面如...集羣安裝完成。