當前位置:首頁 » 雲伺服器 » 雲伺服器集群搭建hadoop

雲伺服器集群搭建hadoop

發布時間: 2022-07-19 11:06:51

① 如何構建最優化的Hadoop集群

本文將逐步介紹這些部分的安裝和配置:

•網路體系結構

•操作系統

•硬體要求

•Hadoop軟體安裝/設置

網路架構

根據我們目前能夠拿到的文檔,可以認為雲內的節點越在物理上接近,越能獲得更好的性能。根據經驗,網路延時越小,性能越好。

為了減少背景流量,我們為這個雲創建了一個虛擬專用網。另外,還為應用伺服器們創建了一個子網,作為訪問雲的入口點。

這個虛擬專用網的預計時延大約是1-2毫秒。這樣一來,物理臨近性就不再是一個問題,我們應該通過環境測試來驗證這一點。

建議的網路架構:

•專用TOR(Top of Rack)交換機

•使用專用核心交換刀片或交換機

•確保應用伺服器「靠近」Hadoop

•考慮使用乙太網綁定


為了防止數據丟失,Hadoop會將每個數據塊復制到多個機器上。想像一下,如果某個數據塊的所有拷貝都在同一個機架的不同機器上,而這個機架剛好發生故障了(交換機壞了,或者電源掉了),這得有多悲劇?為了防止出現這種情況,必須要有一個人來記住所有數據節點在網路中的位置,並且用這些知識來確定——把數據的所有拷貝們放在哪些節點上才是最明智的。這個「人」就是Name Node。

另外還有一個假設,即相比不同機架間的機器,同一個機架的機器之間有著更大的帶寬和更小的延時。這是因為,機架交換機的上行帶寬一般都小於下行帶寬。而且(+本站微信networkworldweixin),機架內的延時一般也小於跨機架的延時(但也不絕對)。

機架感知的缺點則是,我們需要手工為每個數據節點設置機架號,還要不斷地更新這些信息,保證它們是正確的。要是機架交換機們能夠自動向Namenode提供本機架的數據節點列表,那就太棒了。


② 阿里雲或者其他雲伺服器搭建過Hadoop,跑過嗎

使用PuTTY來遠程管理我們的雲伺服器。打開PuTTY後輸入雲伺服器的公網IP,進入管理界面。
可以先輸入javac查看有沒有安裝Java,一般新的雲伺服器里應該是什麼都沒有的。

③ vmware和雲伺服器能一起搭建hadoop集群嗎兩台虛擬機一台雲伺服器 該怎麼設置呢

理論上可以的,vmware虛擬機和雲伺服器其實和傳統物理伺服器用起來沒差別。但如果你說的雲伺服器是公有雲,是vmware在你的區域網,不推薦組合起來搭建hadoop,因為互聯網的網路延遲比本地高,集群會不穩,非要做的話,vmware虛擬機需要用dnat映射地址到公網

④ 如何在docker中部署hadoop2.4集群

Docker提供了一種完美隔離和打包Hadoop相關的應用程序的方法。該公司也在觀察Slider框架和Docker如何能夠一起合作來簡化此類的部署工作。目前,Hortonworks的一個客戶已經在考慮他們自己的數據平台利用HDP支持Docker的方法。他們利用Cloudbreak在雲中的Docker容器中部署Hadoop,並計劃把他們自己的數據應用程序製作成Docker鏡像以便在YARN上運行。此外,很多用戶也因為這種方式的敏捷性和兼容性,利用其進行未知環境的部署。

⑤ 如何架構大數據系統 hadoop

大數據數量龐大,格式多樣化。大量數據由家庭、製造工廠和辦公場所的各種設備、互聯網事務交易、社交網路的活動、自動化感測器、移動設備以及科研儀器等生成。它的爆炸式增長已超出了傳統IT基礎架構的處理能力,給企業和社會帶來嚴峻的數據管理問題。因此必須開發新的數據架構,圍繞「數據收集、數據管理、數據分析、知識形成、智慧行動」的全過程,開發使用這些數據,釋放出更多數據的隱藏價值。

一、大數據建設思路

1)數據的獲得

四、總結

基於分布式技術構建的大數據平台能夠有效降低數據存儲成本,提升數據分析處理效率,並具備海量數據、高並發場景的支撐能力,可大幅縮短數據查詢響應時間,滿足企業各上層應用的數據需求。

⑥ 阿里雲伺服器版本不一致有什麼方法可以解決此問題,版本不一致配置Hadoop集群出現問題怎麼解決

做畢設需要用到Hadopp資料庫,但是考慮到給自己的電腦中裝n個虛擬機一定會使自己電腦的速度和效率變得很低,所以選擇使用阿里雲的雲伺服器來進行項目的開發。
在阿里雲官網租用一個伺服器(學生服務有優惠:P),創建時公共鏡像選擇Ubuntu14.04,其他設置不變,創建好了以後需要安裝各種相關軟體才能搭建Hadoop的環境。
可以使用PuTTY來遠程管理我們的雲伺服器。打開PuTTY後輸入雲伺服器的公網IP,進入管理界面。

⑦ 安裝hadoop的步驟有哪些

hadoop2.0已經發布了穩定版本了,增加了很多特性,比如HDFSHA、YARN等。最新的hadoop-2.4.1又增加了YARNHA

注意:apache提供的hadoop-2.4.1的安裝包是在32位操作系統編譯的,因為hadoop依賴一些C++的本地庫,
所以如果在64位的操作上安裝hadoop-2.4.1就需要重新在64操作系統上重新編譯
(建議第一次安裝用32位的系統,我將編譯好的64位的也上傳到群共享里了,如果有興趣的可以自己編譯一下)

前期准備就不詳細說了,課堂上都介紹了
1.修改linux主機名
2.修改IP
3.修改主機名和IP的映射關系
######注意######如果你們公司是租用的伺服器或是使用的雲主機(如華為用主機、阿里雲主機等)
/etc/hosts裡面要配置的是內網IP地址和主機名的映射關系
4.關閉防火牆
5.ssh免登陸
6.安裝JDK,配置環境變數等

集群規劃:
主機名 IP 安裝的軟體 運行的進程
HA181 192.168.1.181 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA182 192.168.1.182 jdk、hadoop NameNode、DFSZKFailoverController(zkfc)
HA183 192.168.1.183 jdk、hadoop ResourceManager
HA184 192.168.1.184 jdk、hadoop ResourceManager
HA185 192.168.1.185 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA186 192.168.1.186 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain
HA187 192.168.1.187 jdk、hadoop、zookeeper DataNode、NodeManager、JournalNode、QuorumPeerMain

說明:
1.在hadoop2.0中通常由兩個NameNode組成,一個處於active狀態,另一個處於standby狀態。ActiveNameNode對外提供服務,而StandbyNameNode則不對外提供服務,僅同步activenamenode的狀態,以便能夠在它失敗時快速進行切換。
hadoop2.0官方提供了兩種HDFSHA的解決方案,一種是NFS,另一種是QJM。這里我們使用簡單的QJM。在該方案中,主備NameNode之間通過一組JournalNode同步元數據信息,一條數據只要成功寫入多數JournalNode即認為寫入成功。通常配置奇數個JournalNode
這里還配置了一個zookeeper集群,用於ZKFC(DFSZKFailoverController)故障轉移,當ActiveNameNode掛掉了,會自動切換StandbyNameNode為standby狀態
2.hadoop-2.2.0中依然存在一個問題,就是ResourceManager只有一個,存在單點故障,hadoop-2.4.1解決了這個問題,有兩個ResourceManager,一個是Active,一個是Standby,狀態由zookeeper進行協調
安裝步驟:
1.安裝配置zooekeeper集群(在HA185上)
1.1解壓
tar-zxvfzookeeper-3.4.5.tar.gz-C/app/
1.2修改配置
cd/app/zookeeper-3.4.5/conf/
cpzoo_sample.cfgzoo.cfg
vimzoo.cfg
修改:dataDir=/app/zookeeper-3.4.5/tmp
在最後添加:
server.1=HA185:2888:3888
server.2=HA186:2888:3888
server.3=HA187:2888:3888
保存退出
然後創建一個tmp文件夾
mkdir/app/zookeeper-3.4.5/tmp
再創建一個空文件
touch/app/zookeeper-3.4.5/tmp/myid
最後向該文件寫入ID
echo1>/app/zookeeper-3.4.5/tmp/myid
1.3將配置好的zookeeper拷貝到其他節點(首先分別在HA186、HA187根目錄下創建一個weekend目錄:mkdir/weekend)
scp-r/app/zookeeper-3.4.5/HA186:/app/
scp-r/app/zookeeper-3.4.5/HA187:/app/

注意:修改HA186、HA187對應/weekend/zookeeper-3.4.5/tmp/myid內容
HA186:
echo2>/app/zookeeper-3.4.5/tmp/myid
HA187:
echo3>/app/zookeeper-3.4.5/tmp/myid

2.安裝配置hadoop集群(在HA181上操作)
2.1解壓
tar-zxvfhadoop-2.4.1.tar.gz-C/weekend/
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目錄下)
#將hadoop添加到環境變數中
vim/etc/profile
exportJAVA_HOME=/app/jdk1.7.0_79
exportHADOOP_HOME=/app/hadoop-2.4.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
cd/home/hadoop/app/hadoop-2.4.1/etc/hadoop

2.2.1修改hadoop-env.sh
exportJAVA_HOME=/app/jdk1.7.0_79

2.2.2修改core-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!--指定hadoop臨時目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-2.4.1/tmp</value>
</property>

<!--指定zookeeper地址-->
<property>
<name>ha.zookeeper.quorum</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
</configuration>

2.2.3修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice為ns1,需要和core-site.xml中的保持一致-->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!--ns1下面有兩個NameNode,分別是nn1,nn2-->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!--nn1的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>HA181:9000</value>
</property>
<!--nn1的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>HA181:50070</value>
</property>
<!--nn2的RPC通信地址-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>HA182:9000</value>
</property>
<!--nn2的http通信地址-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>HA182:50070</value>
</property>
<!--指定NameNode的元數據在JournalNode上的存放位置-->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://HA185:8485;HA186:8485;HA187:8485/ns1</value>
</property>
<!--指定JournalNode在本地磁碟存放數據的位置-->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/app/hadoop-2.4.1/journaldata</value>
</property>
<!--開啟NameNode失敗自動切換-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--配置失敗自動切換實現方式-->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
</property>
<!--配置隔離機制方法,多個機制用換行分割,即每個機制暫用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!--使用sshfence隔離機制時需要ssh免登陸-->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!--配置sshfence隔離機制超時時間-->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

2.2.4修改mapred-site.xml
<configuration>
<!--指定mr框架為yarn方式-->
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>

2.2.5修改yarn-site.xml
<configuration>
<!--開啟RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!--指定RM的clusterid-->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!--指定RM的名字-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!--分別指定RM的地址-->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>HA183</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>HA184</value>
</property>
<!--指定zk集群地址-->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>HA185:2181,HA186:2181,HA187:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>


2.2.6修改slaves(slaves是指定子節點的位置,因為要在HA181上啟動HDFS、在HA183啟動yarn,
所以HA181上的slaves文件指定的是datanode的位置,HA183上的slaves文件指定的是nodemanager的位置)
HA185
HA186
HA187

2.2.7配置免密碼登陸
#首先要配置HA181到HA182、HA183、HA184、HA185、HA186、HA187的免密碼登陸
#在HA181上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點,包括自己
ssh--idHA181
ssh--idHA182
ssh--idHA183
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#配置HA183到HA184、HA185、HA186、HA187的免密碼登陸
#在HA183上生產一對鑰匙
ssh-keygen-trsa
#將公鑰拷貝到其他節點
ssh--idHA184
ssh--idHA185
ssh--idHA186
ssh--idHA187
#注意:兩個namenode之間要配置ssh免密碼登陸,別忘了配置HA182到HA181的免登陸
在HA182上生產一對鑰匙
ssh-keygen-trsa
ssh--id-iHA181

2.4將配置好的hadoop拷貝到其他節點
scp-r/app/hadoop-2.5.1/HA182:/app/
scp-r/app/hadoop-2.5.1/HA183:/app/
scp-r/app/hadoop-2.5.1/HA184:/app/
scp-r/app/hadoop-2.5.1/HA185:/app/
scp-r/app/hadoop-2.5.1/HA186:/app/
scp-r/app/hadoop-2.5.1/HA187:/app/
###注意:嚴格按照下面的步驟
2.5啟動zookeeper集群(分別在HA185、HA186、tcast07上啟動zk)
cd/app/zookeeper-3.4.5/bin/
./zkServer.shstart
#查看狀態:一個leader,兩個follower
./zkServer.shstatus

2.6啟動journalnode(分別在在HA185、HA186、HA187上執行)
cd/app/hadoop-2.5.1
hadoop-daemon.shstartjournalnode
#運行jps命令檢驗,HA185、HA186、HA187上多了JournalNode進程
2.7格式化ZKFC(在HA181上執行即可) hdfszkfc-formatZK
2.8格式化HDFS
#在HA181上執行命令:
hdfsnamenode-format
#格式化後會在根據core-site.xml中的hadoop.tmp.dir配置生成個文件,這里我配置的是/app/hadoop-2.4.1/tmp,然後將/weekend/hadoop-2.4.1/tmp拷貝到HA182的/weekend/hadoop-2.4.1/下。
scp-rtmp/HA182:/app/hadoop-2.5.1/
##也可以這樣,建議hdfsnamenode-bootstrapStandby



2.9啟動HDFS(在HA181上執行)
sbin/start-dfs.sh

2.10啟動YARN(#####注意#####:是在HA183上執行start-yarn.sh,把namenode和resourcemanager分開是因為性能問題,因為他們都要佔用大量資源,所以把他們分開了,他們分開了就要分別在不同的機器上啟動)
sbin/start-yarn.sh


到此,hadoop-2.4.1配置完畢,可以統計瀏覽器訪問:
http://192.168.1.181:50070
NameNode'HA181:9000'(active)
http://192.168.1.182:50070
NameNode'HA182:9000'(standby)

驗證HDFSHA
首先向hdfs上傳一個文件
hadoopfs-put/etc/profile/profile
hadoopfs-ls/
然後再kill掉active的NameNode
kill-9<pidofNN>
通過瀏覽器訪問:http://192.168.1.182:50070
NameNode'HA182:9000'(active)
這個時候HA182上的NameNode變成了active
在執行命令:
hadoopfs-ls/
-rw-r--r--3rootsupergroup19262014-02-0615:36/profile
剛才上傳的文件依然存在!!!
手動啟動那個掛掉的NameNode
sbin/hadoop-daemon.shstartnamenode
通過瀏覽器訪問:http://192.168.1.181:50070
NameNode'HA181:9000'(standby)

驗證YARN:
運行一下hadoop提供的demo中的WordCount程序:
hadoopjarshare/hadoop/maprece/hadoop-maprece-examples-2.4.1.jarwordcount/profile/out

OK,大功告成!!!
CID-74d21742-3e4b-4df6-a99c-d52f703b49c0



測試集群工作狀態的一些指令:
bin/hdfsdfsadmin-report 查看hdfs的各節點狀態信息


bin/hdfshaadmin-getServiceStatenn1 獲取一個namenode節點的HA狀態

sbin/hadoop-daemon.shstartnamenode單獨啟動一個namenode進程


./hadoop-daemon.shstartzkfc單獨啟動一個zkfc進程

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

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

⑨ 如何部署hadoop集群

根據我們目前能夠拿到的文檔,可以認為雲內的節點越在物理上接近,越能獲得更好的性能。根據經驗,網路延時越小,性能越好。
為了減少背景流量,我們為這個雲創建了一個虛擬專用網。另外,還為應用伺服器們創建了一個子網,作為訪問雲的入口點。
這個虛擬專用網的預計時延大約是1-2毫秒。這樣一來,物理臨近性就不再是一個問題,我們應該通過環境測試來驗證這一點。

⑩ 阿里雲雲伺服器linux可以部署hadoop么

通過命令行下載Hadoop ,我下載的版本是1.2.1,版本穩定且方便學習。
[plain] view plain
wget http://mirror.bit.e.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

下載完成後,將hadoop安裝包轉移至要安裝的目錄
[plain] view plain
mv hadoop-1.2.1.tar.gz /usr/hadoop/
cd /usr/hadoop/
解壓
[plain] view plain
tar -zxvf hadoop-1.2.1.tar.gz

配置Hadoop
配置文件在 hadoop的conf文件夾下
首先修改 hadoop-env.sh 文件

[plain] view plain
vim hadoop-env.sh

找到 # export JAVA_HOME=…..
修改為 export JAVA_HOME=/usr/Java/java8
注意 // 如果忘記java的路徑,可以通過命令 echo $JAVA_HOME查看
其次修改 core-site.xml 文件
其實 修改 hadoop-env.sh
[plain] view plain
vim hadoop-env.sh
修改內容為
[html] view plain
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/name</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://canghong:9000</value>
</property>
</configuration>

然後修改 hdfs-site.xml
[html] view plain
<configuration>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/data</value>
</property>
</configuration>
最後修改 mapred-site.xml
[html] view plain
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>canghong:9001</value>
</property>
</configuration>

配置完成後,告訴系統hadoop的安裝目錄
[plain] view plain
vim ~/.bashrc

export HADOOP_HOME=/usr/hadoop/hadoop-1.2.1
在 export PATH 中 加入 HADOOP_HOME
export PATH=${JAVA_HOME}/bin:$HADOOP_HOME/bin:$PATH

測試
在命令行輸入 hadoop
出現

10015 JobTracker
9670 TaskTracker
9485 DataNode
10380 Jps
9574 SecondaryNameNode
9843 NameNode

則表示成功

格式化文件系統

[plain] view plain
cd /usr/hadoop/hadoop-1.2.1/bin
hadoop namenode -formate

啟動

啟動 bin下的 start-all.sh
start-all.sh

測試
在命令行 輸入 jps 查看hadoop是否正常運行

熱點內容
androidmime 發布:2025-01-31 22:34:44 瀏覽:782
ftp和http的中文含義是 發布:2025-01-31 22:33:48 瀏覽:402
sqlite3存儲圖片 發布:2025-01-31 22:27:14 瀏覽:162
sqlserverphp 發布:2025-01-31 22:22:55 瀏覽:877
曲馬多存儲 發布:2025-01-31 22:22:52 瀏覽:538
緩存兒歌 發布:2025-01-31 22:21:26 瀏覽:528
學java有發展嗎 發布:2025-01-31 21:44:45 瀏覽:569
HBX編程 發布:2025-01-31 21:39:26 瀏覽:161
資料庫精品課 發布:2025-01-31 21:38:14 瀏覽:421
sqlsever語句 發布:2025-01-31 21:34:57 瀏覽:145