詳解Hadoop 運行環境搭建過程

這篇文章主要介紹了Hadoop 運行環境搭建過程,本文給大家介紹的非常詳細,具有一定的參考借鑑價值,需要的朋友可以參考下

一,集羣搭建步驟

1.先在一臺虛擬機配置jdk,hadoop
2.克隆
3.修改網絡等相關配置
當我們使用虛擬機時,可能自然而然的會想上面的步驟一樣先搭建一臺虛擬機,做好相關配置,然後進行克隆,繼而修改一些網絡配置來搭建集羣,但是在生產過程中是買好的服務器,不存在克隆這一說,所以在此採用的步驟是:
1.建立一臺虛擬機(僅帶jdk安裝包)
2.克隆
3.修改網絡等相關配置
4.配置第一個hadoop節點,編寫集羣分發腳本使其他虛擬機完成配置

二,具體搭建過程

這裏使用三臺虛擬機來完成集羣搭建,hadoop001,hadoop002,hadoop003,把安裝包放在/opt/software,建立虛擬機和克隆就不說了,注意一點,在個人用不能使用sudo命令在/opt建立文件,可以先使用root,然後通過chown scq:scq module/ software/ -R把擁有着賦給個人用戶即可

修改網絡等配置修改sudoer文件

su rootll /etc/sudoerschmod u+w /etc/sudoersvim /etc/sudoers
#當用戶執行sudo時,系統會主動尋找/etc/sudoers文件,判斷該用戶是否有執行sudo的權限
修改mac地址,修改ip
sudo vim /etc/udev/rules.d/70-persistent-net.rules

把eth0刪除,把eth1改爲eth0,同時複製ATTR{address}的值

sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0

把ATTR{address}粘到HWADDR

然後更改IP,ip可以通過圖形化界面和命令行兩種方式進行更改
這裏需要重啓一下(可以等所有配置完成後再重啓),如果我們只是修改ip,可以通過sudo /etc/rc.d/init.d/network restart 進行網絡重啓即可,但是修改網卡配置通過這個命令會報錯網上說eth0 裏仍然記錄着舊的MAC地址,但我更新了sudo /etc/sysconfig/network-scripts/ifcfg-eth0仍然不行

BOOTPROTO=static 靜態IPBOOTPROTO=dhcp 動態IPBOOTPROTO=none 無(圖形化界面修改時BOOTPROTO值爲none)

修改主機名

主機名是什麼:在命令行中敲入hostname或者命令行每一行中 @後面的內容

sudo vim /etc/sysconfig/network

重啓生效,不重啓生效的方式不常見,可以自行百度。

修改hosts文件

sudo vim /etc/hosts[/code]關閉防火牆[code]centos6/etc/init.d/iptables status/etc/init.d/iptables start/etc/init.d/iptables stopchkconfig iptables offcentos7systemctl start firewalldfirewall-cmd --statesystemctl stop firewalldsystemctl disable firewalldsystemctl list-unit-files|grep firewalld

注:

1.每次開機時修改一下/etc/resolv.conf文件設置網關

安裝hadoop,形成hadoop集羣安裝單個hadoop

①解壓,配置環境變量

②配置文件

對於本地模式,因爲本地模式直接運行jvm上,所以不需要對配置文件做配置
對於僞分佈式與完全分佈式的常見相關配置集中在以下文件中

HDFShadoop-env.shcore-site.xml ---> nameNode節點 + hadoop 運行時產生文件的存儲目錄hdfs-site.xml 副本數 + SecondaryNameNode地址Yarnyarn-env.sh yarn-site.xml reducer 獲取數據的方式 + 指定 YARN 的 ResourceManager 的地址 + 日誌信息上傳到 HDFS 系統上MapReducemapred-env.sh mapred-site.xml 指定 mr 運行在 yarn 上 + 歷史服務器 對於xxx-env.sh 就是考慮JAVA_HOME。hadoop-env.sh添加JAVA_HOME,yarn可以辨別JAVA_HOME,mapreduce-env.sh可以不用配置,當然也可以全部都配置

常見的具體配置

<property><name>fs.defaultFS</name><value>hdfs://hadoop001:9000</value>
</property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>僞分佈式 副本1,無SecondaryNameNode節點<property><name>dfs.replication</name><value>3</value></property><property><name>dfs.namenode.secondary.http-address</name>
<value>hadoop004:50090</value></property><!-- reducer 獲取數據的方式 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定 YARN 的 ResourceManager 的地址 --><property><name>yarn.resourcemanager.hostname</name><value>hadoop001</value></property>
<!-- 日誌聚集功能使能 --><property><name>yarn.log-aggregation-enable</name><value>true</value></property><!-- 日誌保留時間設置 7 天 --><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><!-- 指定 mr 運行在 yarn 上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>
<!-- 配置歷史服務器--><property><name>mapreduce.jobhistory.address</name><value>hadoop001:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop001:19888</value>
</property>

編寫集羣分發腳本

1) scp:secure copy 安全拷貝

(a)將 hadoop001 中/opt/module 目錄下的軟件拷貝到 hadoop002 上。

[scq@hadoop001 /]$ scp -r /opt/module/* scq@hadoop002:/opt/module

(b)將 hadoop001 服務器上的/opt/module 目錄下的軟件拷貝到 hadoop003 上。

scq@hadoop003 opt]$ scp -r scq@hadoop101:/opt/module/* hadoop003:/opt/module

(c)在 hadoop003 上操作將 hadoop001 中/opt/module 目錄下的軟件拷貝到hadoop004 上。

[scq@hadoop003 opt]$ scp -r scq@hadoop001:/opt/module/* scq@hadoop004:/opt/modul

注意一點:

1.用戶@主機名:地址,在該主機中,這個用戶必須讀地址有讀權限

2.路徑後面記得帶*號

2)rsync 遠程同步工具

主要用於備份和鏡像。具有速度快、避免複製相同內容和支持符號鏈接的優點。
rsync 和 scp 區別: 用 rsync 做文件的複製要比 scp 的速度快, rsync 只對差異文件做更新。 scp 是把所有文件都複製過去。

(1)查看 rsync 使用說明

man rsync | more

(2)基本語法

rsync -rvl $pdir/$fname $user@hadoop$host:$pdir

命令 命令參數 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑

(3) 選項說明

選項 功能
-r 遞歸
-v 顯示覆制過程
-l 拷貝符號連接

(4)案例實操

把本機/opt/software 目錄同步到 hadoop002 服務器的 root 用戶下的/opt/目錄

[scq@hadoop001 opt]$ rsync -rvl /opt/software/* hadoop102:/opt/software/

3)rsync 遠程同步工具

腳本需求分析:循環複製文件到所有節點的相同目錄下。
(1)原始拷貝:

rsync -rvl /opt/module root@hadoop103:/opt/

(2)期望腳本:

xsync 要同步的文件名稱
(3)在/home/atguigu/bin 這個目錄下存放的腳本, atguigu 用戶可以在系統任何地方直接執行。

#!/bin/bash#1 獲取輸入參數個數,如果沒有參數,直接退出pcount=$#if((pcount==0)); then echo no args;exit;fi#2 獲取文件名稱p1=$1fname=`basename $p1`echo fname=$fname#3 獲取上級目錄到絕對路徑pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 獲取當前用戶名稱user=`whoami`#5 循環for((host=2; host<4; host++)); doecho --------------------- hadoop00$host ----------------rsync -rvl $pdir/$fname $user@hadoop00$host:$pdirdone

注1 對於dirname,記住一下幾個場景

輸入:dirname // 結果爲 /(斜槓)。

輸入:dirname /a/b/ 結果爲:/a。輸入:dirname a 結果爲 . (點)。

輸入:dirname a/b 結果爲路徑名 a

.即當前目錄,所以腳本中的代碼我們使用絕對路徑和相對路徑都是可行的

2.腳本中並沒有使用*,這個應該也不難理解

分發Hadoop,完成集羣搭建

[scq@hadoop001 bin]$ ./xsync /opt/module/hadoop-2.7.2

總結

以上所述是小編給大家介紹的Hadoop 運行環境搭建過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對神馬文庫網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章