日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CentOS 7 + Hadoop3 伪分布式集群配置

發布時間:2025/4/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CentOS 7 + Hadoop3 伪分布式集群配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://www.cnblogs.com/thousfeet/p/8618696.html

ps:本文的步驟已自實現過一遍,在正文部分避開了舊版教程在新版使用導致出錯的內容,因此版本一致的情況下照搬執行基本不會有大錯誤。如果按本文步驟進行的時候出事了,可以鼠標選中博客頁面右側的目錄導航看看最后一部分的意外出事的坑點解決方案。

準備linux主機環境

一、安裝虛擬機

下載地址:
VMware workstation 14 Pro (附:許可證秘鑰)
系統iso:CentOS7 Minimal

基本上就是下一步下一步這種簡單的默認安裝就好了。除了在安裝過程中配置分區的時候可能需要手動分區,然后選擇標準分區即可。

裝好后,修改內存,因為不需要圖形界面,所以只給個512M內存也沒問題。并更改網絡適配器為VMnet8(NAT)。

附上NAT方式的工作原理

(CentOS和Windows這兩臺機子通過虛擬網關互聯,虛擬網關由VMware workstation生成,在Windows上會生成一個虛擬網卡VMnet8,這個網卡地址和本機的物理網卡沒有關系)

二、網絡配置

在VMware workstation的菜單 編輯 -> 虛擬網絡編輯器 可以查看和修改虛擬網關地址。

然后打開控制面板的網絡連接查看VMnet8的IP地址

如圖,在我這臺機子上:

虛擬網關地址 192.168.216.1
VMnet8 IP地址 192.168.216.2

運行虛擬機,進行網絡配置:

1.輸入 ip addr 看到我的網卡叫做ens33
2.輸入 ls /etc/sysconfig/network-scripts/ 看到網卡ip信息的配置文件名叫做ifcfg-ens33

3.輸入 cat /etc/sysconfig/network-scripts/ifcfg-ens33 查看,可以發現雖然BOOTPROTO=dhcp,但是ONBOOT=no

(下面4-6步純屬實驗性質可忽視,直接開始第7步)

4.輸入 vi /etc/sysconfig/network-scripts/ifcfg-ens33 將ONBOOT=no修改為yes,在此之前要先進入root模式chmod 777 文件名把文件改為可寫狀態。修改完畢后,cat一下看看

5.輸入 shutdown -r now 重啟系統
6.重啟完成后,ip addr 看到分配到的地址是192.168.216.128

下面開始進行固定ip的設置。
7.輸入vi /etc/sysconfig/network-scripts/ifcfg-ens33,用#將BOOTPROTO=dhcp注釋,并輸入以下參數,把ip地址固定寫為192.168.216.100

IPADDR0=192.168.216.100 PREFIX0=24 GATEWAY0=192.168.216.1 DNS1=192.168.216.1


(后來看到有BOOTPROTO=dhcp這行不注釋而是改為BOOTPROTO=static,以及多配置一行NETMASK=255.255.255.0而沒有DNS那行的,似乎也可以)

8.輸入 service network restart 重啟網絡服務
9.輸入 ip addr 確認配置成功

10.PING 一波試試。

現在用windows主機ping一下剛配置好的虛擬機試試看能否ping通,行的話這步就已經完成了。

三、修改主機名

下載安裝終端軟件 Mobaxterm。點擊 sessions -> New sessions -> SSH,輸入虛擬機的IP地址和用戶名?,F在就可以把剛建好的虛擬機假裝是遠程終端一樣的用了。

然后修改主機名方便集群間的訪問

sudo vi /etc/sysconfig/network ,假設我給它起名字叫node01,則輸入

NETWORKING=yes HOSTNAME=node01

改好后需要重啟。若不想重啟可以輸入 sudo hostname node01 然后exit登出,重新登錄終端,就可以看到已經生效了。

(可以看到原本是localhost的地方變為了node01)

修改域名解析映射文件使得后續可以直接通過主機名訪問,sudo vi /etc/hosts,添加一行 IP地址 主機名

PING一波試試是否已生效

到此為止linux主機環境已完成。

安裝jdk

一、下載解壓

在主目錄~下新建一個文件夾來放之后要裝的所有文件比如叫做app mkdir app

從官網下載jdk包,我下載的是 jdk-8u161-linux-x64.tar.gz

打開 Mobaxterm。點擊 sessions -> New sessions -> SFTP,注意要使用root登錄。然后打開相應目錄直接把本地文件拖拽到那一大塊空白處即可。

把剛剛的壓縮包解壓到這個目錄下 tar -zxvf jdk-8u161-linux-x64.tar.gz -C ~/app/ (后面那個參數是由于我拖拽的時候把原壓縮包放到/usr/java文件夾了所以用 -C 把它解壓到指定文件夾下)

進入 app/jdk1.8.0_161/bin 目錄下,./java -version 看是否成功安裝

二、配置環境變量PATH

sudo vi /etc/profile

在最末尾處添加兩行

export JAVA_HOME=/home/thousfeet/app/jdk1.8.0_161 export PATH=$PATH:$JAVA_HOME/bin

(JAVA_HOME變量的值可能因人而異,查看方式可以是在 mobaxterm 的左側這個 session 的圖標上右擊->duplicate session 復制出一個新 session ,然后進入之前jdk文件夾下輸入pwd,然后選中這串東西貼過來)

配置好了之后我們想要使它立刻生效,輸入 source /etc/profile,然后輸入 java -version看到能夠使用。這樣就已經配置好了。

安裝Hadoop

下載 hadoop 3.0.0 壓縮包。
打開 Mobaxterm 剛剛那個 SFTP ,老樣子拖拽上傳解壓到/app。

進入解壓目錄 cd /app/hadoop-3.0.0/etc/hadoop

一、配置 hadoop-env.sh

vi hadoop-env.sh,修改 JAVA_HOME 為之前那個參數

二、配置 core-site.xml

vi core-site.xml,在configuration中添加各配置項

1.配置默認采用的文件系統。
(由于存儲層和運算層松耦合,要為它們指定使用hadoop原生的分布式文件系統hdfs。value填入的是uri,參數是 分布式集群中主節點的地址 : 指定端口號)

<property> <name>fs.defaultFS</name> <value>hdfs://node01:9000/</value> </property>

2.配置hadoop的公共目錄
(指定hadoop進程運行中產生的數據存放的工作目錄,NameNode、DataNode等就在本地工作目錄下建子目錄存放數據。但事實上在生產系統里,NameNode、DataNode等進程都應單獨配置目錄,而且配置的應該是磁盤掛載點,以方便掛載更多的磁盤擴展容量)

<property> <name>hadoop.tmp.dir</name> <value>/home/thousfeet/app/hadoop-3.0.0/data/</value> </property>

(value的參數仍與之前一樣可以進入解壓目錄輸入pwd查看)

三、配置 hdfs-site.xml

vi hdfs-site.xml,配置hdfs的副本數
(客戶端將文件存到hdfs的時候,會存放在多個副本。value一般指定3,但因為搭建的是偽分布式就只有一臺機器,所以只能寫1。)

<property> <name>dfs.replication</name> <value>1</value> </property>

四、配置 mapred-site.xml

vi mapred-site.xml,指定MapReduce程序應該放在哪個資源調度集群上運行。若不指定為yarn,那么MapReduce程序就只會在本地運行而非在整個集群中運行。

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

五、配置 yarn-site.xml

vi yarn-site.xml,要配置的參數有2個:

1.指定yarn集群中的老大(就是本機)

<property> <name>yarn.resourcemanager.hostname</name> <value>node01</value> </property>

2.配置yarn集群中的重節點,指定map產生的中間結果傳遞給reduce采用的機制是shuffle

<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>

六、配置環境變量PATH

輸入 sudo vi /etc/profile

加入一行 export HADOOP_HOME=/home/thousfeet/app/hadoop-3.0.0
以及修改PATH,追加參數 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后記得 source /etc/profile

現在就可以在任意地方使用hadoop指令了。

關掉防火墻

由于hadoop中的程序都是網絡服務,需要監聽端口,這些端口默認會被linux防火墻擋住。因此要把hadoop中的端口一個個打開,或者把防火墻關掉。由于都是內網,所以關掉就好了。

sudo firewall-cmd --state 查看防火墻狀態
sudo systemctl stop firewalld.service 關閉防火墻
再次查看狀態,看到已經關閉了。但在下一次開機時還會自啟動,因此 sudo systemctl disable firewalld.service 禁止開機時防火墻自啟。

實現SSH免密碼遠程登錄

SSH機制解析圖(假如有一臺叫做weekend110的終端要遠程登錄叫做spark01的終端)

我們要做的只是黑色箭頭的步驟,綠色的是SSH機制的內部實現。

一、創建公鑰/私鑰

ssh-keygen -t rsa,然后yes加一路回車

二、創建authorized_keys文件并修改權限為600

cd .ssh touch authorized_keys chmod 600 authorized_keys

三、將公鑰追加到authorized_keys文件中去

cat id_rsa.pub >> authorized_keys

ssh node01 試試看能否成功免密登錄

(因為是偽分布式集群,其實就是自己登錄自己)

啟動Hadoop

一、初始化(格式化)

輸入 hadoop namenode -format

二、啟動

start-dfs.sh` `start-yarn.sh

然后輸入jps 查看已成功啟動的進程

若出現這六個都沒少則說明已全部成功啟動了。


幾個坑點

出事點1:can’t open file for writing

在網絡配置第4步的時候,遇到了can't open file for writing,然而試圖chmod也并沒有成功,查了半天得知可能需要刪除在/var/tmp路徑下的.swp隱藏文件(來自http://blog.csdn.net/luoluoguo/article/details/11557291)。然后chmod,發現root狀態下vi這個文件看到里面內容是空的(?)于是切換回普通用戶vi修改保存后退出就成功了。

出事點2:不在sudoers文件中

第一次使用sudo命令的時候失敗提示“不在sudoers文件中”

因此要切換到root修改一下sudoers文件:vi /etc/sudoers,在如下圖的位置加上一行自己的用戶名

出事點3:wget下載JDK后解壓不了

安裝jdk的時候試圖用wget直接從官網下載,高高興興的一波操作

sudo wget http://download.Oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz tar -xf jdk-8u121-linux-x64.tar.gz

發現GG了,怎么都解壓不了,查了下發現非要手動下載再傳,迷得不行orz(來自http://blog.csdn.net/jdjdndhj/article/details/73649419#/)

出事點4:Found a swap file by the name “/etc/.profile.swp”

環境變量配置到一半的時候電腦突然死機了(T T 渣機是真的難受),重啟后再次進入編譯/etc/profile的時候出現如下錯誤提示

E325: ATTENTION
Found a swap file by the name “/etc/.profile.swp”
owned by: root dated: Wed Jul 14 10:01:10 2010
file name: /etc/profile
modified: YES
user name: root host name: zhaoyang-laptop
process ID: 1934
While opening file “/etc/profile”
dated: Thu Apr 29 20:18:30 2010

解決方法是:q!退出vi編輯器,在終端輸入sudo rm -f /etc/.profile.swp

出事點5:啟動hadoop后jps查看進程只有一個

在配置完成后我直接啟動了hadoop并jps查看,發現只有JPS一個進程,開始沒注意啟動過程提示一直在檢查配置錯誤,除去上文的配置又補做了如下操作:(事實上下面的做不做都并不需要,但為了避免最終操作和文中不符所以還是列出來)

修改了hadoop-env.sh配置了hadoop_home變量
把core-site.xml的9000后多余的/去掉
mapred-site.xml加上了

<property> <name>mapreduce.admin.user.env</name> <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value> </property>

后來恍然意識到是沒有輸入密碼,啟動過程中也不會給輸入密碼的提示步驟,所以一定要先配置SSH免密登錄。

出事點6:啟動hadoop后jps查看進程沒有datanode

這個坑點是重復格式化造成的。

當我們執行文件系統格式化時,會在namenode數據文件夾(即配置文件中dfs.name.dir在本地系統的路徑)中保存一個current/VERSION文件,記錄namespaceID,標識了所格式化的 namenode的版本。如果我們頻繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系統的路徑)的current/VERSION文件只是你第一次格式化時保存的namenode的ID,因此就會造成datanode與namenode之間的id不一致。

我們之前配置的時候是一起放在一個data文件夾下,所以先進到那個路徑下去查看:cd /home/thousfeet/app/hadoop-3.0.0/data/dfs,會看到一個data文件夾和一個name文件夾。

cd cd name/current/,然后cat VERSION,把namenode的clusterID復制下來。

然后回到data文件夾下的current文件夾,vi VERSION,果然datanode這里的clusterID和namenode里的不一致,就把這串替換成剛復制過來的就好了。

這時候stop-all.sh,然后重新啟動就好了。

出事點5:啟動hadoop后無法訪問50070端口

jps查看一切正常,防火墻也已經關閉。查看監聽的端口發現8088都有,就是沒有50070。

解決方案:

在 hdfs-site.xml 添加如下:

<property> <name>dfs.http.address</name> <value>192.168.216.100:50070</value> </property>

然后重新格式化namenode,啟動hadoop。
(來自https://blog.csdn.net/Neone__u/article/details/53741786)


附:vi命令的使用

首先使用命令 vi filename 打開一個文件,這個時候進入到的是命令模式
接下來按 i 進入insert模式,然后鍵盤隨便輸入寫內容。
然后按ESC重新進入到命令模式。
在命令模式的情況下,按 : ,進入到了末行模式。
輸入wq!,然后回車,強行保存退出。
下次再打開對應文件(可用less filename命令打開),即可看到內容已經更改。

補充:
(1)末行模式下:q! 【強制退出不保存】 q【退出不保存】 wq【退出并保存后面也可以加個!】
(2)如果你不想保存直接退出有可以在命令模式下使用“ctrl+z”快捷鍵或者按住“shift”鍵,輸入兩個z即可退出。


參考資料

CentOS 7 網絡配置詳解
CentOS中防火墻相關的命令(CentOS7中演示)
VMware安裝Centos7超詳細過程(圖文)

總結

以上是生活随笔為你收集整理的CentOS 7 + Hadoop3 伪分布式集群配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线中文字幕网站 | 性国产精品 | 中文字幕免费一区 | 欧美成人三级在线视频 | gav久久 | 777久久久 | 国产视频成人 | av十大美巨乳 | 美女一区二区三区 | 五月天激情视频在线观看 | 女人18片毛片60分钟 | 天堂最新 | 四虎影视免费 | 波多野吉衣av无码 | 人妻饥渴偷公乱中文字幕 | 禁网站在线观看免费视频 | 涩天堂| 欧美色图一区二区三区 | 成人理论影院 | 国产性按摩 | 黄色大片日本 | 亚洲免费天堂 | 国产精品天天av精麻传媒 | 日韩激情中文字幕 | 999免费 | 理论片第一页 | 91色视频在线 | 精品国产aⅴ一区二区三区四川人 | 蜜桃网站| 欧美大片一级 | 丝袜美女啪啪 | 日本黄色三级网站 | 亚洲一区二区三区加勒比 | 国产欧美a | 又嫩又硬又黄又爽的视频 | 国产精品宾馆在线 | 日本色婷婷 | 中文字幕一区二区三区四区免费看 | 日本后进式猛烈xx00动态图 | 动漫精品一区 | 2021狠狠干 | 中文字幕777 | 青娱乐青青草 | 草草在线观看视频 | 在线a天堂 | 怡红院成人av | 夜色视频在线观看 | 亚洲成人动漫在线观看 | 9999久久久久 | 亚洲欧美激情精品一区二区 | 青青草青娱乐 | 国产污片在线观看 | 一级片视频播放 | 肉肉h | 成人在线免费观看视频 | 9999在线视频 | 国产二级一片内射视频播放 | www日韩| 日韩欧美黄色网址 | 黄色一级大片在线免费看国产一 | 激烈娇喘叫1v1高h糙汉 | 亚洲AV无码AV吞精久久中文版 | 插插插av | 国产欧美日韩在线播放 | 欧美一级色片 | 精品欧美在线 | 岳乳丰满一区二区三区 | 波多野结衣二区 | 国产欧美一区二区三区免费看 | 欧美日本成人 | 天天干天天天天 | 亚洲av无码国产在丝袜线观看 | 日韩精品大片 | 亚洲欧美另类中文字幕 | 亚洲免费专区 | 一区二区三区不卡在线 | av片网站 | 欧美被狂躁喷白浆精品 | 男人天堂视频网 | a资源在线观看 | 六月婷婷综合 | 森林影视官网在线观看 | 久久久久久久久国产精品一区 | 国产精品久久久久久精 | 国产成人综合一区二区三区 | 国产一级黄色av | 极品美妇后花庭翘臀娇吟小说 | 台湾佬久久 | 五月开心播播网 | 韩国三级免费 | 肉色丝袜小早川怜子av | 中文人妻熟妇乱又伦精品 | 日本一级做a爱片 | 欧美在线视频播放 | 国产伦精品一区二区三区四区视频 | 91黑人精品一区二区三区 | 国产aⅴ一区二区三区 | 亚洲最大的黄色网 | 久久精品视频在线播放 |