Hadoop集羣搭建2->Linux搭建Hadoop集羣(超詳細悶騷版)

在這裏插入圖片描述

一.hadoop是什麼

Hadoop被公認是一套行業大數據標準開源軟件,在分佈式環境下提供了海量數據的處理能力。幾乎所有主流廠商都圍繞Hadoop開發工具、開源軟件、商業化工具和技術服務。今年大型IT公司,如EMC、Microsoft、Intel、Teradata、Cisco都明顯增加了Hadoop方面的投入。

二 .hadoop能幹什麼

hadoop擅長日誌分析,facebook就用Hive來進行日誌分析,2009年時facebook就有非編程人員的30%的人使用HiveQL進行數據分析;淘寶搜索中的自定義篩選也使用的Hive;利用Pig還可以做高級的數據處理,包括Twitter、LinkedIn 上用於發現您可能認識的人,可以實現類似Amazon.com的協同過濾的推薦效果。淘寶的商品推薦也是!在Yahoo!的40%的Hadoop作業是用pig運行的,包括垃圾郵件的識別和過濾,還有用戶特徵建模。(2012年8月25新更新,天貓的推薦系統是hive,少量嘗試mahout!)

三.hadoop生態系統及其核心模塊構成

hadoop1.x版本核心模塊
1、HDFS:Hadoop Distributed File System 分佈式文件系統
2、MapReduce:分佈式運算框架
hadoop2.x版本的核心某塊
3、YARN:Yet Another Resource Negotiator 資源管理調度系統

四、瞭解知名企業的Hadoop應用案例,瞭解Hadoop的三種部署方式

1、單機版搭建
2、僞分佈式搭建
3、完全分佈式搭建

五.搭建Hadoop

1.準備好三臺虛擬機,沒有搭建的請看我的博文Hadoop集羣搭建1
2.在Hadoop1上安裝jdk1.8,因爲之前用到的外網訪問和操作Hadoop的HDFS的時候,jdk1.7好像不太好使,經過試驗還是安裝linux版1.8的jdk

鏈接:https://pan.baidu.com/s/1yc0NWwibeUfmg2VsUFGiRg
提取碼:my7w
我的百度網盤大家可以下載一下

安裝一個訪問虛擬機的SSH工具,都可以像什麼Xshell都可以只是我習慣了SSH
在這裏插入圖片描述

安裝也很簡單一直下一步就ok,我給大家上傳到我的百度雲裏,大家可以自行下載,
鏈接:https://pan.baidu.com/s/1yc0NWwibeUfmg2VsUFGiRg
提取碼:my7w

進入虛擬機裏邊輸出命令ifconfig,看一下自己虛擬機的ip
在這裏插入圖片描述
進行SSH連接,對了那個SSH是放到window安裝的啊,別搞到虛擬機裏邊安裝
在這裏插入圖片描述
YES

在這裏插入圖片描述
輸入密碼
在這裏插入圖片描述
進入SSH連接頁面

在這裏插入圖片描述

root權限操作
在這裏插入圖片描述
把下載好的JDK1.8放到虛擬機裏邊
在這裏插入圖片描述

編輯命令: cd /usr/ 進入usr目錄創建一個文件夾 mkdir jdk 創建一個jdk的文件夾
cd /jdk 進入jdk文件夾 然後把拖拉來的jdk給放置到這個目錄下
在這裏插入圖片描述
然後對jdk進行解壓縮
tar -zxvf jdk-8u131-linux-x64.tar.gz
在這裏插入圖片描述然後進行配置jdk
vim /etc/profile

export JAVA_HOME=/usr/jdk/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

然後執行一下腳本

[root@hadoop1 jdk1.8.0_131]# source /etc/profile

檢測一下是否安裝成功,看一下jdk的版本信息 java -version
在這裏插入圖片描述

2.同步虛擬機時間

同步三臺虛擬機的時間(時間同步)每臺機器都要做同樣的 操作
開啓你的三臺虛擬機
在這裏插入圖片描述
輸入命令

yum  -y install ntp

在這裏插入圖片描述
執行命令

 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

在輸入命令
ntpdate pool.ntp.org
在這裏插入圖片描述

注意:如果電腦可以上網,但是虛擬機不可以上網,可以如下操作
編輯

vim /etc/resolv.conf

添加如下兩行指令

nameserver 202.106.0.20
nameserver 8.8.8.8

如果沒法保證每臺虛擬機都聯網,只能用小手該時間
date命令將日期設置爲當前時間

 ----   date -s 06/18/14

將時間設置爲14點20分50秒

 ----   date -s 14:20:50

將時間設置爲當前時間(MMDDhhmmYYYY.ss)

----date 0618141614.30
3.設置主機名

根據自己的ip來定義
192.168.94.128 設置這臺機器的主機名爲master
192.168.94.129 設置這臺機器的主機名爲slaver1
192.168.94.130 設置這臺機器的主機名爲slaver2

在192.168.94.128這臺機器執行操作
新增用戶

adduser master

修改密碼:

passwd master 

提示輸入密碼和再次確定

修改主機名 vim /etc/sysconfig/network在這裏插入圖片描述

4、給master用戶root權限
chmod +w /etc/sudoers
vim  /etc/sudoers

添加如下操作

master  ALL=(ALL)       ALL

在這裏插入圖片描述
重啓虛擬機,選擇master用戶登錄
注意:另外兩臺機器也做同上的操作(名字分別爲slaver1和slaver2

5、修改主機映射(三臺機器都是一樣的操作)
vim  /etc/hosts

把hosts中的內容都刪除,然後添加如下
根據自己的ip地址來填寫

192.168.94.128 master
192.168.94.129 slaver1
192.168.94.130 slaver2

重啓網卡

service network restart

剩下的兩臺機器,做同上操作(ip和mac地址是不一樣)

6、配置三臺機器之間的免密登錄(必須在主機master上操作)

在這裏插入圖片描述
ssh-keygen -t rsa
然後四個回車
接着輸入腳本

輸入你的要的密碼三臺機器都要開機啓動,在master主機器上執行
在這裏插入圖片描述

ssh-copy-id  master  
ssh-copy-id  slaver1 
ssh-copy-id  slaver2 

測試: ssh slaver1 就不需要輸入密碼 然後在exit到當前用戶,可以執行下一次測試,如下圖直接進入了slaver1機器上
在這裏插入圖片描述

7、下載hadoop壓縮包,解壓(以下的所有操作都在主機上 進行) 溫馨提示:最好在官網下載,src的源碼,然後在自己的機器上編譯,這樣就不會出現找不到jar包的異常

Hadoop官方

鏈接:https://pan.baidu.com/s/1jCwg2aMs0OzOHnd1qXp3Kw
提取碼:1kxs

也可以用我的Hadoop包,我這個是2018年的tar之前一直沒有更新,不過這個Hadoop版本還是挺穩定的

把hadoop解壓到/usr/local/目錄下

tar  -zxvf  hadoop-2.8.4.tar.gz  -C /usr/local

把hadoop-2.8.4改名爲hadoop
進入到/usr/local/下執行

mv  hadoop-2.8.4  hadoop

在這裏插入圖片描述

8、配置hadoop環境變量(也在主機下執行)
vim  /etc/profile

修改配置文件,如下圖
在這裏插入圖片描述
一定要動手操作,不然複製過去還是一臉懵逼,要體驗Hadoop配置的精髓😂

export JAVA_HOME=/usr/jdk/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

立即讓配置文件生效,執行命令

source  /etc/profile

此時,可以直接使用hadoop指令了,查看hadoop版本信息命令

  hadoop version

在這裏插入圖片描述

9、關閉防火牆(三臺機器都要關閉)
service iptables status (查看防火牆狀態)
service iptables stop(臨時關閉,不需要重啓虛擬機)
chkconfig iptables off(永久關閉,需要重啓機器生效)

在這裏插入圖片描述

10、修改主機的配置文件

進入到/uer/local/hadoop文件夾
然後創建三個文件夾,
NameNode也記錄着每個文件中各個塊所在的數據節點信息,但它並不永久保存塊的位置信息,因爲這些信息在系統啓動時由數據節點重建
datanode是數據塊在DataNode進程所在的節點上以文件的形式存儲在本地磁盤上
一個是數據本身一個是元數據(數據塊的長度,塊數據的校驗和,以及時間戳)

mkdir namenode
mkdir datanode
mkdir tmp

進入到 /usr/loacal/hadoop/etc/hadoop文件
在這裏插入圖片描述
然後進行編輯配置文件

vim  hadoop-env.sh

原文件
在這裏插入圖片描述改後文件
在這裏插入圖片描述
編輯第二個文件 core-site.xml

vim core-site.xml

在這裏插入圖片描述
在configuretion中添加

       <property>
           <name>fs.defaultFS</name>
           <value>hdfs://master:9000</value>
       </property>
       <property>
           <name>hadoop.tmp.dir</name>
           <value>/usr/local/hadoop/tmp</value>
        </property>

改後效果
在這裏插入圖片描述
編輯第三個文件

vim  hdfs-site.xml

在這裏插入圖片描述
添加如下配置

 <property>
         <name>dfs.replication</name>
         <value>2</value>
 </property>
 <property>
      <name>dfs.namenode.secondary.http-address</name>
       <value>master:50090</value>
 </property>

  <property>
       <name>dfs.name.dir</name>
       <value>/usr/local/hadoop/namenode</value>
  </property>
  <property>
       <name>dfs.data.dir</name>                                                                   <value>/usr/local/hadoop/datanode</value>
  </property>

效果如下
在這裏插入圖片描述
然後準備編輯第四個文件,vim mapred-site.xml(沒有mapred-site.xml但是有一個 mapred-site.xml.template
5、,我們可以把名字改一下就可以了)

mv  mapred-site.xml.template mapred-site.xml
vim mapred-site.xml 

然後添加
在這裏插入圖片描述
添加配置

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

效果如下
在這裏插入圖片描述
新增配置最後一個文件,編輯第五個文件yarn-site.xml,堅持就是勝利🤞

vim yarn-site.xml

在這裏插入圖片描述

  <property> 
    <name>yarn.resourcemanager.hostname</name>  
    <value>master</value> 
  </property>  
  <property> 
    <name>yarn.nodemanager.aux-services</name>  
    <value>mapreduce_shuffle</value> 
  </property>  
  <property> 
    <name>yarn.log-aggregation-enable</name>  
    <value>true</value> 
  </property>  
  <property> 
    <name>yarn.log-aggregation.retain-seconds</name>  
    <value>604800</value> 
  </property>  
  <property> 
    <name>yarn.nodemanager.resource.memory-mb</name>  
    <value>2000</value> 
  </property>  
  <property> 
    <name>yarn.scheduler.maximum-allocation-mb</name>  
    <value>2000</value> 
  </property>  
  <property> 
    <name>yarn.scheduler.minimum-allocation-mb</name>  
    <value>500</value> 
  </property>  
  <property> 
    <name>mapreduce.reduce.memory.mb</name>  
    <value>2000</value> 
  </property>  
  <property> 
    <name>mapreduce.map.memory.mb</name>  
    <value>2000</value> 
  </property>  
  <property> 
    <name>yarn.nodemanager.vmem-pmem-ratio</name>  
    <value>2.1</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> 

在這裏插入圖片描述
配置環節就到此結束了,現在開始最後一個編輯,配置一下機器的名稱

vim slavers

在這裏插入圖片描述
然後記得編輯的那些東西保存啊,我沒有寫保存,你們一定要保存啊,不然就白費了,編輯好的文件 esc一下 然後輸入:wd 保存

11、下發配置文件到分機上

下發hadoop到分機

兩個都要執行哦

scp -r /usr/local/hadoop root@slaver1:/usr/local/
scp -r /usr/local/hadoop root@slaver2:/usr/local/

只是下發jdk的安裝包,我的分機都沒有安裝,所以需要下發一下我的jdk文件

scp -r /usr/jdk  root@slaver1:/usr/jdk/
scp -r /usr/jdk  root@slaver2:/usr/jdk/

執行成功後記得去改下配置文件
主機配置了jdk和hadoop,但是分機沒有配置,所以需要手動的去配置一下,如果懶得小夥伴可以這樣
直接下發配置腳本

scp -r /etc/profile root@slaver1:/etc/
scp -r /etc/profile root@slaver2:/etc/

ok,大功告成,現在到啓動了一步了,成不成功再次一舉啊!!!

12、第一次執行的時候在主機下格式化namenode
hadoop namenode  -format

在這裏插入圖片描述

13、啓動hadoop集羣
start-all.sh   

在這裏插入圖片描述

啓動成功後,可以檢查一下啓動狀態

 jps

在這裏插入圖片描述
這個就是成功的集羣狀態,一定要有nameNode和dataNode沒有的小夥伴就檢查一下配置

14.訪問:50070端口

外網訪問一下http://192.168.94.128(主機ip):50070/
出現這個代表你的nameNode是啓動成功的
在這裏插入圖片描述

15.訪問8088端口,

成功如下圖
在這裏插入圖片描述
看到了那個大象了嗎?那個就是Hadoop的logo,開心嗎?哈哈

16、測試mapreduce來實現對pi的計算

進入到/usr/local/hoaddop/shared/hadoop/mapreduce
執行 (這個就是測試集羣,用Hadoop進行π運算)

   hadoop jar hadoop-mapreduce-examples-2.8.4.jar  pi 20  50

可能時間會長一點,但是一定要耐心等待啊,這可是大數據計算

在這裏插入圖片描述
恭喜你成功了!!!

17、關閉集羣
stop-all.sh

感謝大家的觀看,有什麼建議或者我寫的那點不對,大家可以評論或者私信,感謝大家的點評,配置和啓動集羣問題,可以私信給我,我會盡我的最大努力去解決問題!🤞

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