本章目的
- 介紹了基於Linux的Hadoop安裝與配置。
- 包括虛擬機創建 、Linux系統和JDK安裝、 Hadoop安裝及Hadoop分佈式安裝。
- 還介紹了克隆服務器和SSH免密碼登錄。
目錄
0、提前下載需知
- 必要的軟件:vmware workstation
- 需要的工具:centos(iso文件)、java jdk(rpm文件)
- 輔助的軟件:xshell、xftp
- 需要的基礎知識:會用linux指令、懂得編寫java。
- 百度雲鏈接(提取碼:km1g)
1、在vmware上安裝centos
- 很簡單,不贅述,可參考別的博客。
- 就兩點:記住你自己設置的密碼,網絡選擇NAT模式。
- 安裝好了以後,用戶名爲root(除非你設置了其他用戶名),輸入密碼即可(密碼不顯示)
2、給centos配置網絡
2.1 進入編輯模式
- 繼續輸入(注意vi後面有空格)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 回車確定後,再按鍵盤“i”,當底部出現“INSERT”字樣時,說明已經進入編輯模式。(如果出現錯誤e325,是因爲之前強制退出了vmware,導致還沒完成的文本變成了臨時文件swp,定位到該目錄,利用rm指令刪除該文件即可)
2.2 編輯更改文本信息
- 更改文件中的配置信息,其他信息不用修改。除了IP地址不需要一致以外,上圖的其餘信息要一致。如果沒有這些內容,需要用戶手動敲入。
- 注意!上圖中IPADDR和GATEWAY中的IP地址的第三個數值不能亂填,點擊vmware的“編輯”,找到“虛擬網絡編輯器”
- 然後點擊“ NAT設置 ”,查看自己的網關IP。
- IPADDR和GATEWAY中的IP地址的第三個數值要和網關IP的第三個數值一樣才行(我這臺機器是44),IPADDR的第四個數值建議填寫100~500的數值。
2.3 保存更改並退出
- 按“esc”鍵後,輸入‘:wq’回車,保存退出即可。
2.4 重啓網卡,生效剛剛修改ip地址
- 輸入以下指令。
service network
restart命令重啓網卡。等一會兒,如果出現ok,那就沒問題了。
2.5 利用ping測試網絡
- 輸入以下指令。
ping www.baidu.com
如果沒問題,那麼centos就安裝好了~。 (中斷輸出指令:‘ctrl’ + ‘c’)
3、克隆服務器
- 被克隆的機器也稱主機、主節點,克隆機是從機、從節點。
3.1、克隆步驟
- 爲了減少重複配置,可以直接將配置好的機器進行克隆,克隆時,被克隆的機器(主機)必須處於關機狀態下。
- 右鍵點擊(已關機的)主機。
- 點擊“管理”,然後點擊“克隆”
- 注意克隆方法選擇“創建完整克隆”,其餘的跟着提示走,在此不贅述。
3.2、爲克隆節點配置網絡
- 輸入下面的指令,並且按'i'進入編輯模式。
vi /etc/sysconfig/network-scripts/ifcfg-eth0
- 修改IPADDR的值,第四個數值不能和被克隆的機器一樣,仍然建議數值爲100~500。
- 刪除UUID和HWADDR(如果沒有就不用管),按“esc”鍵後,輸入‘:wq’回車,保存退出即可。
- 刪除文件‘ 70-persistent-net.rules ’,指令如下。
rm -rf /etc/udev/rules.d/70-persistent-net.rules
- 修改機器名,指令如下。
vi /etc/sysconfig/network
- 進入編輯模式以後,添加/修改一行:HOSTNAME=xxx(自命名)
- 然後保存退出即可。
3.3、重新啓動克隆機
輸入‘init 6’指令即可。
3.4、修改主機的host文件
- 目的:綁定了機器和它的IP地址,方便以後直接通過名字找到機器。
- 重新將主機開機。
vi /etc/hosts
- 進入編輯模式,添加兩行信息。
- 格式如下:機器的IP地址(即機器對應的IPADDR值)(空格) 機器的別名。
- 保存退出。
3.5、修改從機的host文件
- 重啓從機,剩下方法與上述3.4方法一致,不贅述。
3.6、測試主從機的連通性
在主機輸入以下指令。
ping 自己設置的從機名
如果聯通了,就可以了。
4、關閉防火牆
- 不關閉防火牆的話,後續就算搭建好環境,我們也無法通過web頁面訪問Hadoop服務的端口50070。
- 下面是檢查防火牆是否開啓的指令:
firewall-cmd --state
- 如果centos的防火牆開了,選擇以下指令關閉即可。
systemctl stop firewalld.service
- 重啓後生效指令
chkconfig iptables off
- 立刻生效,重啓無效指令
service iptables stop
5、鏈接xshell
- 目的是爲了更方便地操縱linux。
- 打開xshell,新建會話,修改名稱、主機IP,點擊確認。
- 打開會話時,用戶名填"root",密碼填主機的密碼即可連接。(也可以在新建會話的時候點擊左側“用戶身份驗證”,輸入用戶名和密碼信息)
- 這時就可以在xshell裏操作了。
- 從機也是同樣操作
6、SSH免密碼登錄
- 當主機操作從機的時候,往往需要輸入密碼,這個步驟太麻煩了,利用SSH免密碼登錄即可。
6.1、生成密鑰
- 在xshell中連接好主機從機後,直接在主機和從機裏,賦值粘貼以下命令(也可以在vmware上輸入命令,就是不方便而已)。
ssh-keygen -t rsa -P ''
- 注意,ssh-keygen之間沒有空格。
- 中途會問保存的路徑,直接點確認就行。
- 這時候密鑰,ssh文件已經生成了。
- 輸入以下指令,可以看到ssh文件中的其他東西。
cd .ssh
ls -la
- ls -l看不到隱藏文件,因此用ls -la命令。
- 其中,"id_rsa.pub"文件是公鑰,我們需要把公鑰交給從機。公鑰相當於身份證,給從機用來識別主機的身份。
6.2、移送公鑰
- 利用遠程拷貝命令,將公鑰交給從機
scp id_rsa.pub [email protected]:~
- 這個xx請根據自己機器的IP地址數值填寫。
- ~代表根,意思就是拷貝到從機的根目錄下。
6.3、將公鑰添加進信任列表
- 在從機中執行移動操作,將公鑰放到可信任列表中。
cat id_rsa.pub>>.ssh/authorized_keys
6.4、測試是否連通
- 這時候主從機就相當於一臺電腦了,我們可以免密碼進從機操作。
- 在主機執行命令連接從機
ssh 自己從機的別名
- 可以看到的確成功了。
6.5、補充
- 如果使用了企業提供的服務器,例如騰訊雲阿里雲之類的,還需要更改其他配置,具體的多看服務器提供方的官方文檔,以後接觸了再說。
7、安裝java jdk
注意,所有節點都需要配置jdk。
7.1、安裝java jdk的rpm文件
- 點擊打開xshell的xftp文件傳輸服務。(直接打開xftp軟件新建對話也行)。
- 進入主機的/opt/software路徑下。(直接放到根目錄下也行,但不方便文件管理)
- 找到左側本地已下載好的java,直接拖到右邊即可。
- 然後打開xshell,輸入以下命令。
- 先進入/opt/software。
cd /opt/software
- 然後再安裝。
rpm -ivh 自己的jdk的文件名.rpm
- 可以看到安裝成功。
7.2、配置環境變量
- 通過修改home目錄下的隱藏文件.bash_profile(放環境變量的地方)來修改環境變量。我們設置JAVA_ HOME指向JDK的根目錄,然後再使環境變量立刻生效。
- 先回到根目錄
cd ~
- 在根目錄下,再通過vi命令,按“i”進入.bash_profile文件的編輯模式。
題外話:用export命令配置環境變量也行
vi .bash_profile
- 編輯配置環境變量(如下圖所示),編輯完後按“:wq”保存退出。
JAVA_HOME=/usr/java/jdk1.7.0_79
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
- 保存退出回到根目錄後,再執行source命令,修改環境變量之後立即生效
source .bash_profile
這時候再執行‘java -version’,可以看到java已經安裝好了。
8、安裝Hadoop
8.1、解壓Hadoop
- 通過xshell上傳hadoop的壓縮包到虛擬機的/opt/software路徑下。
- 利用解壓命令tar,解壓。
cd /opt/software
tar -zxvf hadoop的版本名.tar.gz
8.2、配置環境變量
- 把hadoop的bin和sbin配置到環境變量中。
- bin當中是常規命令,而sbin當中是管理命令。
- 和配置jdk一樣的步驟,在根目錄下,進入.bash_profile文件,編輯它。
HADOOP_HOME=/opt/software/hadoop-2.7.0
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 再執行source命令,修改環境變量之後立即生效
source .bash_profile
8.3、讓hadoop找到jdk
- 這一步是必須的,hadoop是用java開發的,因此它需要jdk的jre環境,否則無法運行,會出錯,例如下圖。所以我們要在hadoop文件中重新配置jdk的路徑信息,讓hadoop找到jdk。
- 首先在根目錄下進入以下路徑,找到hadoop-env.sh這個文件,編輯它。
cd /opt/software/hadoop-2.7.0/etc/hadoop
vi hadoop-env.sh
- 找到這一行
- 修改它,將java的安裝目錄放進去,然後保存退出。
/usr/java/自己jdk的名字
- 記得':wq'保存退出。
8.4、測試hadoop是否已成功安裝
- 直接執行查看版本號,可以看到已經安裝成功了。
hadoop version
9、Hadoop僞分佈式安裝(配置HDFS)
9.1、配置HDFS
- HDFS是hadoop的分佈式文件系統,相當於一個將很多個電腦串起來的大硬盤。
- 一共支持三種模式,這裏先用僞分佈式。
- 本地(單節點)模式:本機一臺電腦,不存在分佈式的概念。(一般不用)
- 僞分佈式模式:也是在本機上,但用了分佈式的概念,構成了集羣。(個人學習用)
- 完全分佈式模式:多臺電腦。(實際項目中用)
- 在這裏安裝僞分佈式的,根據官網提示,修改/etc/hadoop下的core-site.xml文件。
- 找到這一行。
- 添加信息進去,保存退出。
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
- core-site.xml文件主要配置了訪問Hadoop集羣的主要信息, 9000代表端口。 外部通過配置的hdfs: //主機IP: 9000, 就可以找到Hadoop集羣。
- 同樣的,找到/etc/hadoop下的hdfs-site.xml文件,修改它,修改完後保存退出。
vi core-site.xml
- 其中dfs.replication代表副本數,這裏設置爲1。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
9.2、格式化並啓動namenode
- 格式化的目的是爲了初始化。
hdfs namenode -format
start-dfs.sh
如果中途出現輸密碼提示和Warnning,一般是因爲公鑰沒有在可信任列表裏(如果沒有密鑰就生成吧)。和之前的生成密鑰教程一樣,去到.ssh文件夾下,要用cat命令將密鑰放進去,如下圖。
- 可以看到執行成功了。
- 執行‘jps’命令查看當前java進程信息,會發現有namednode了。
9.3、用web頁面查看HDFS
- 在瀏覽器地址欄內輸入網址:
192.168.xx.xxx:50070/
- 可以看到僞分佈式的HDFS的確搭建起來了。
如果發現無法訪問,換一個瀏覽器即可,比如我的IE瀏覽器可以訪問,但是Edge瀏覽器則不行。
- 自此,所有東西都配置好了,以後每一次要重新啓用服務,只需要運行namenode即可。(記得檢查防火牆是否運行,防火牆若還在運行,則打不開)
start-dfs.sh