當前位置:首頁 » 雲伺服器 » 在伺服器上搭建hadoop環境

在伺服器上搭建hadoop環境

發布時間: 2023-02-20 22:27:21

A. HADOOP安裝(安裝詳情私)-

2.1 准備

克隆三台虛擬機:hadoop102 hadoop103 hadoop104,

修改克隆虛擬機的靜態 IP:vim /etc/sysconfig/network-scripts/ifcfgens33

修改主機名稱 vim /etc/hostname

配置 linux 克隆機主機名稱映射 hosts 文件:vim /etc/hosts

reboot

安裝 JDK 前,一定確保提前刪除了虛擬機自帶的 JDK

解壓、配置 JDK 環境變數,測試:java -version

Hadoop 下載地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/

解壓、將 Hadoop 添加到環境變數

2.2 Hadoop 重要目錄

bin 目錄:存放對 Hadoop 相關服務(hdfs,yarn,mapred)進行操作的腳本

etc 目錄:Hadoop 的配置文件目錄,存放 Hadoop 的配置文件

lib 目錄:存放 Hadoop 的本地庫(對數據進行壓縮解壓縮功能)

sbin 目錄:存放啟動或停止 Hadoop 相關服務的腳本

share 目錄:存放 Hadoop 的依賴 jar 包、文檔、和官方案例

2.3 Hadoop運行模式

Hadoop 運行模式包括:本地模式、偽分布式模式以及完全分布式模式

本地模式:單機運行,只是用來演示一下官方案例。生產環境不用。

偽分布式模式:也是單機運行,但是具備 Hadoop 集群的所有功能,一台伺服器模 擬一個分布式的環境。個別缺錢的公司用來測試,生產環境不用。

完全分布式模式:多台伺服器組成分布式環境。生產環境使用。

完全分布式運行模式(開發重點) 分析:1)准備 3 台客戶機(關閉防火牆、靜態 IP、主機名稱) 2)安裝 JDK 3)配置環境變數 4)安裝 Hadoop 5)配置環境變數 6)配置集群 7)單點啟動 8)配置 ssh 9)群起並測試集群

編寫集群分發腳本 xsync

scp安全拷貝語法:

scp -r $pdir/$fname $user@$host:$pdir/$fname

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

rsync 遠程同步工具語法:

rsync -av $pdir/$fname $user@$host:$pdir/$fname

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

rsync 和 scp 區別:用 rsync 做文件的復制要比 scp 的速度快,rsync 只對差異文件做更 新。scp 是把所有文件都復制過去。

rsync 主要用於備份和鏡像。具有速度快、避免復制相同內容和支持符號鏈接的優點。

SSH 無密登錄配置

命令:ssh-keygen -t rsa

然後敲(三個回車),就會生成兩個文件 id_rsa(私鑰)、id_rsa.pub(公鑰)

將公鑰拷貝到要免密登錄的目標機器上:ssh--id hadoop102

2.4 集群安裝

注意

NameNode 和 SecondaryNameNode 不要安裝在同一台伺服器

ResourceManager 也很消耗內存,不要和 NameNode、SecondaryNameNode 配置在 同一台機器上。

Hadoop 配置文件分兩類:默認配置文件和自定義配置文件,只有用戶想修改某一默認 配置值時,才需要修改自定義配置文件,更改相應屬性值

自定義配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四個配置文件存放在 $HADOOP_HOME/etc/hadoop 這個路徑

B. 如何部署hadoop分布式文件系統

一、實戰環境
系統版本:CentOS 5.8x86_64
JAVA版本:JDK-1.7.0_25
Hadoop版本:hadoop-2.2.0
192.168.149.128namenode (充當namenode、secondary namenode和ResourceManager角色)
192.168.149.129datanode1 (充當datanode、nodemanager角色)
192.168.149.130datanode2 (充當datanode、nodemanager角色)

二、系統准備

1、Hadoop可以從Apache官方網站直接下載最新版本Hadoop2.2。官方目前是提供了linux32位系統可執行文件,所以如果需要在64位系統上部署則需要單獨下載src 源碼自行編譯。(如果是真實線上環境,請下載64位hadoop版本,這樣可以避免很多問題,這里我實驗採用的是32位版本)
1234 Hadoop
Java

2、我們這里採用三台CnetOS伺服器來搭建Hadoop集群,分別的角色如上已經註明。
第一步:我們需要在三台伺服器的/etc/hosts裡面設置對應的主機名如下(真實環境可以使用內網DNS解析)
[root@node1 hadoop]# cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1localhost.localdomain localhost
192.168.149.128node1
192.168.149.129node2
192.168.149.130node3

(注* 我們需要在namenode、datanode三台伺服器上都配置hosts解析)
第二步:從namenode上無密碼登陸各台datanode伺服器,需要做如下配置:
在namenode 128上執行ssh-keygen,一路Enter回車即可。
然後把公鑰/root/.ssh/id_rsa.pub拷貝到datanode伺服器即可,拷貝方法如下:
ssh--id -i .ssh/id_rsa.pub [email protected]
ssh--id -i .ssh/id_rsa.pub [email protected]

三、Java安裝配置
tar -xvzf jdk-7u25-linux-x64.tar.gz &&mkdir -p /usr/java/ ; mv /jdk1.7.0_25 /usr/java/ 即可。
安裝完畢並配置java環境變數,在/etc/profile末尾添加如下代碼:
export JAVA_HOME=/usr/java/jdk1.7.0_25/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVE_HOME/lib/dt.jar:$JAVE_HOME/lib/tools.jar:./

保存退出即可,然後執行source /etc/profile 生效。在命令行執行java -version 如下代表JAVA安裝成功。
[root@node1 ~]# java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

(注* 我們需要在namenode、datanode三台伺服器上都安裝Java JDK版本)
四、Hadoop版本安裝
官方下載的hadoop2.2.0版本,不用編譯直接解壓安裝就可以使用了,如下:
第一步解壓:
tar -xzvf hadoop-2.2.0.tar.gz &&mv hadoop-2.2.0/data/hadoop/
(注* 先在namenode伺服器上都安裝hadoop版本即可,datanode先不用安裝,待會修改完配置後統一安裝datanode)

第二步配置變數:
在/etc/profile末尾繼續添加如下代碼,並執行source /etc/profile生效。
export HADOOP_HOME=/data/hadoop/
export PATH=$PATH:$HADOOP_HOME/bin/
export JAVA_LIBRARY_PATH=/data/hadoop/lib/native/
(注* 我們需要在namenode、datanode三台伺服器上都配置Hadoop相關變數)

五、配置Hadoop
在namenode上配置,我們需要修改如下幾個地方:
1、修改vi /data/hadoop/etc/hadoop/core-site.xml 內容為如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.149.128:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
<description>A base forother temporary directories.</description>
</property>
</configuration>

2、修改vi /data/hadoop/etc/hadoop/mapred-site.xml內容為如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"href=\'#\'" Put site-specific property overrides inthisfile. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.149.128:9001</value>
</property>
</configuration>

3、修改vi /data/hadoop/etc/hadoop/hdfs-site.xml內容為如下:
<?xml version="1.0"encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"href=\'#\'" /name>
<value>/data/hadoop/data_name1,/data/hadoop/data_name2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/data_1,/data/hadoop/data_2</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>

4、在/data/hadoop/etc/hadoop/hadoop-env.sh文件末尾追加JAV_HOME變數:
echo "export JAVA_HOME=/usr/java/jdk1.7.0_25/">> /data/hadoop/etc/hadoop/hadoop-env.sh

5、修改 vi /data/hadoop/etc/hadoop/masters文件內容為如下:
192.168.149.128

6、修改vi /data/hadoop/etc/hadoop/slaves文件內容為如下:
192.168.149.129
192.168.149.130

如上配置完畢,以上的配置具體含義在這里就不做過多的解釋了,搭建的時候不明白,可以查看一下相關的官方文檔。
如上namenode就基本搭建完畢,接下來我們需要部署datanode,部署datanode相對簡單,執行如下操作即可。
1 fori in`seq 129130` ; doscp -r /data/hadoop/ [email protected].$i:/data/ ; done

自此整個集群基本搭建完畢,接下來就是啟動hadoop集群了。

C. hadoop集群搭建(Hadoop 3.1.3 /Hive 3.1.2/Spark 3.0.0)

完全分布式HA

伺服器規劃

技術棧包含
hdfs
hive on spark
presto
doris
superset
azkaban
kafka
fluent\flume
sqoop\kettle\flink-cdc
atlas

禁用swap/selinux

修改 IP/修改主機名/及主機名和 IP 地址的映射

時間同步/設置時區/自動時間同步

關閉防火牆

關閉SELINUX

新建用戶

免密登錄(先升級openssh)

發送密鑰(dw01上執行)

授權

Tencent Kona v8.0.8-GA

騰訊開源的konaJDK,針對大數據場景下優化

解壓並重命名至安裝地址:/usr/local/java/

zookeeper-3.5.9

解壓並重命名至安裝地址:/usr/local/zookeeper

apache-hadoop-3.1.3 解壓至安裝地址:/usr/local/hadoop

修改環境變數

/usr/local/zookeeper/conf

啟動zookeeper集群(每台執行)

三台伺服器啟動

格式化namenode(dw01執行)

啟動namenode(dw01上執行)

在[nn2]和[nn3]上分別執行,同步 nn1 的元數據信息

啟動nn2 nn3,分別執行

所有節點上啟動datanode

將[nn1]切換為 Active

查看狀態

配置yarn-site.xml

配置mapred-site.xml

分發配置文件,啟動yarn(dw03 啟動)

dw03節點

dw01節點

dw01執行

dw03執行

測試樣例

啟動腳本

HA切換namenode手動

修改yarn顯示log的bug

D. hadoop集群搭建在阿里雲伺服器上 雲伺服器配置要求是多少

如果是集群的話,我考慮需要流暢運行的話,2核4G配置是可以滿足的。因為這個集群形式,用於適用於物聯網、車聯網、監控、安全風控、即時通訊、消息存儲等行業場景,所以數據量是比較大的,所以配置太低了跑不動,會卡死的。
因為hadoop是海量數據的處理能力,所以伺服器一定不能太小配置了,跑不動了就沒實際用途了。最好使用4核8G內存及以上配置。
因為這方面內容較多,這里也寫不開那麼多內容,所以你可以留言或到我的博客上搜索相關內容,老魏有寫過教程,還不止一篇,都挺詳細的內容,可以幫助你入門。

E. hadoop分布式部署(轉載)--賊靠譜

原文地址:https://blog.csdn.net/sjmz30071360/article/details/79889055

1. 集群搭建形式

Hadoop環境搭建分為三種形式:單機模式、偽分布式模式、完全分布模式

單機模式—— 在一台單機上運行,沒有分布式文件系統,而是直接讀寫本地操作系統的文件系統。

偽分布式—— 也是在一台單機上運行,但不同的是Java進程模仿分布式運行中的各類節點。即一台機器上,既當NameNode,又當DataNode,或者說既是JobTracker又是TaskTracker。沒有所謂的在多台機器上進行真正的分布式計算,故稱為「偽分布式」。

完全分布式—— 真正的分布式,由3個及以上的實體機或者虛擬機組成的機群。一個Hadoop集群環境中,NameNode,SecondaryName和DataNode是需要分配在不同的節點上,也就需要三台伺服器。

前兩種模式一般用在開發或測試環境下,生產環境下都是搭建完全分布式模式。

從分布式存儲的角度來說,集群中的節點由一個NameNode和若干個DataNode組成,另有一個SecondaryNameNode作為NameNode的備份。

從分布式應用的角度來說,集群中的節點由一個JobTracker和若干個TaskTracker組成。JobTracker負責任務的調度,TaskTracker負責並行執行任務。TaskTracker必須運行在DataNode上,這樣便於數據的本地計算。JobTracker和NameNode則無須在同一台機器上。

2. 環境

    操作系統:CentOS7(紅帽開源版)

    機器:虛擬機3台,(master 192.168.0.104, slave1 192.168.0.102, slave2 192.168.0.101)

    JDK:1.8(jdk-8u162-linux-x64.tar)

    Hadoop:2.9.0(http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.0/hadoop-2.9.0.tar.gz)

3. 搭建步驟

3.1 每台機器安裝&配置JDK(1台做好後,克隆出其它機器)

1) 創建目錄 mkdir /usr/java

2) 上傳jdk安裝包到 /usr/java/

3) 解壓 tar -xvf jdk-8u162-linux-x64.tar

4) 追加環境變數 vi /etc/profile

5) 使環境變數生效 source /etc/profile

6) 檢測jdk正確安裝 java -version

3.2 修改每台機器主機名(hostname)

hostnamectl set-hostname master  (立即生效)

hostnamectl set-hostname slave1    (立即生效)

hostnamectl set-hostname slave2    (立即生效)

確認修改

3.3 修改每台機器/etc/hosts文件

vi /etc/hosts

修改其中1台,然後scp到其它機器

scp 文件名 遠程主機用戶名@遠程主機名或ip:存放路徑

scp hosts [email protected]:/etc/

scp hosts [email protected]:/etc/

修改完之後,互ping其它機器,能互ping則說明修改OK

ping -c 3 slave1 (※ 3表示發送 3 個數據包)

3.4 配置ssh,實現無密碼登錄

無密碼登錄,效果也就是在master上,通過ssh slave1或者ssh slave2就可以登錄對方機器,而不用輸入密碼。

1) 每台機器執行ssh-keygen -t rsa,接下來一路回車即可

執行ssh-keygen -t rsa主要是生成 密鑰 和 密鑰的存放路徑

我們用的root用戶,公鑰私鑰都會保存在~/.ssh下

2) 在master上將公鑰放到authorized_keys里,命令:cat id_rsa.pub > authorized_keys

3) 將master上的authorized_keys放到其它機器上

scp authorized_keys root@slave1:~/.ssh/

scp authorized_keys root@slave2:~/.ssh/

4) 測試是否成功

3.5 上傳&配置hadoop(配置完master後,將/usr/hadoop/整個目錄內容到其它機器)

1) 創建目錄 mkdir /usr/hadoop

2) 上傳hadoop安裝包hadoop-2.9.0.tar.gz到 /usr/hadoop/

3) 解壓 tar -xvf hadoop-2.9.0.tar.gz

4) 追加環境變數 vi /etc/profile(其它機器也要相應配置一次hadoop環境變數)

5) 使環境變數生效 source /etc/profile

6) 確認環境變數配置OK

7) 創建HDFS存儲目錄

cd /usr/hadoop

mkdir hdfs

cd hdfs

mkdir name data tmp

/usr/hadoop/hdfs/name    --存儲namenode文件

/usr/hadoop/hdfs/data      --存儲數據

/usr/hadoop/hdfs/tmp      --存儲臨時文件

8) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/hadoop-env.sh文件,設置JAVA_HOME為實際路徑

否則啟動集群時,會提示路徑找不到

9) 修改/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-env.sh文件,設置JAVA_HOME為實際路徑

10) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/core-site.xml

增加hadoop.tmp.dir 和 fs.default.name

11) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/hdfs-site.xml

dfs.replication:默認值3

dfs.permissions:默認值為true,設置為true有時候會遇到數據因為許可權訪問不了;設置為false可以不要檢查許可權就生成dfs上的文件

12) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/mapred-site.xml

cd /usr/hadoop/hadoop-2.9.0/etc/hadoop

cp mapred-site.xml.template mapred-site.xml

maprece.framework.name:指定maprece運行在yarn平台,默認為local

13) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/yarn-site.xml

yarn.resourcemanager.hostname:指定yarn的resourcemanager的地址

yarn.nodemanager.aux-services:recer獲取數據的方式

yarn.nodemanager.vmem-check-enabled:意思是忽略虛擬內存的檢查,如果安裝在虛擬機上,這個配置很有用,配上去之後後續操作不容易出問題。如果是在實體機上,並且內存夠多,可以將這個配置去掉

14) 配置/usr/hadoop/hadoop-2.9.0/etc/hadoop/slaves文件,將裡面的localhost刪除,配置後內容如下:

15) 整個/usr/hadoop/目錄到其它機器

scp -r hadoop root@slave1:/usr/

scp -r hadoop root@slave2:/usr/

3.6 啟動Hadoop

1) 啟動之前需要格式化一下。因為master是namenode,slave1和slave2都是datanode,所以在master上運行

hadoop namenode -format

格式化成功後,可以看到在/usr/hadoop/hdfs/name目錄下多了一個current目錄,而且該目錄下有一系列文件,如下:

2) 執行啟動(namenode只能在master上啟動,因為配置在master上;datanode每個節點上都可以啟動)

執行 start-all.sh

master上執行jps,會看到NameNode, SecondaryNameNode, ResourceManager

其它節點上執行jps,會看到DataNode, NodeManager

3) 在wins上打開網頁,查看HDFS管理頁面 http://192.168.0.104:50070查看,提示無法訪問

在master上,執行以下命令關閉防火牆,即可訪問(為了能夠正常訪問node節點,最好把其它機器的防火牆也stop了)

systemctl stop firewalld.service

HDFS管理首頁

HDFS Datenodes頁

訪問Yarn管理頁: http://192.168.0.104:8088

4)通過主機名也可以訪問的設置

win7為例,需要將以下信息追加到C:\Windows\System32\drivers\etc\hosts文件中

192.168.0.104 master

192.168.0.102 slave1

192.168.0.101 slave2

Over!!!搭建成功!!!

4. 運行實例

cd /usr/hadoop/hadoop-2.9.0/share/hadoop/maprece

hadoop jar hadoop-maprece-examples-2.9.0.jar pi 5 10

。。。。。。

=====================================================

如果不關防火牆,子節點可能出現,輸入jps後只有jps一個進程,或者是缺進程的情況,關閉防火牆就好了。

F. Linux伺服器上搭建hadoop

用不同的賬號,當然可以。
我用相同的賬號,搭建了兩套環境,只要安裝hadoop的目錄不再同一個目錄下就可以。然後就是注意你的/etc/profile盡量不要配置HADOOP_HOME的值,只配置JDK就可以了,不然可能會用沖突,不知道該去找哪個hadoop home 了。

G. ubuntu16.04安裝hadoop3.02(偽分布式)+集群

ubuntu16.04安裝hadoop3.02單機模式

進行NameNode格式化
進入/usr/local/hadoop

啟動NameNode 和 DataNode

輸入jps,會出現如下進程

關閉dfs

配置mapred-site.xml

sudo vim /etc/hostname
將內容修改為master/slave1/slave2

ubuntu 16.04安裝hadoop3.02單機模式

解釋下:第一個fs.defaultFS設置master機為namenode hadoop.tmp.dir配置Hadoop的一個臨時目錄,用來存放每次運行的作業jpb的信息。

dfs.namenode.name.dir是namenode存儲永久性的元數據的目錄列表。這個目錄會創建在master機上。dfs.namenode.data.dir是datanode存放數據塊的目錄列表,這個目錄在slave11和slave1機都會創建。 dfs.replication 設置文件副本數,這里兩個datanode,所以設置副本數為2。

解釋下:這里設置的是運行jobtracker的伺服器主機名和埠,也就是作業將在master主機的9001埠執行

Hadoop3.0.0在Ubuntu16.04上分布式部署
ubuntu16.04搭建hadoop集群環境
hadoop分布式集群安裝

熱點內容
安卓加密的rar軟體 發布:2024-05-04 04:18:30 瀏覽:605
聚會編程題 發布:2024-05-04 04:02:41 瀏覽:404
我的世界伺服器自動掃地 發布:2024-05-04 03:48:41 瀏覽:611
4500能配什麼電腦配置 發布:2024-05-04 03:22:29 瀏覽:591
阿U編程課堂 發布:2024-05-04 03:10:23 瀏覽:618
上傳音樂搜音樂 發布:2024-05-04 03:10:23 瀏覽:600
編譯器工作負載 發布:2024-05-04 03:06:09 瀏覽:422
摩斯編譯 發布:2024-05-04 03:06:00 瀏覽:613
源碼得反碼 發布:2024-05-04 03:05:18 瀏覽:753
手機搜狐怎麼上傳視頻 發布:2024-05-04 02:50:54 瀏覽:75