您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)如何在window上使用VirtualBox搭建Ubuntu15.04全分布Hadoop2.7.1集群,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
先給大家看看配置好的集群截圖:
注意(default是docker的,大家不用管,下面四臺(tái)才是,其中Ubuntu_0是master,Ubuntu_1,2,3是slave節(jié)點(diǎn))
一.新建虛擬機(jī),配置基礎(chǔ)java環(huán)境,配置網(wǎng)絡(luò)訪問
下載Ubuntu15.04,打開VirtualBox,新建Ubuntu虛擬機(jī),用戶名linux1,不截圖了,內(nèi)存選1G就夠了
接下來,下載并安裝JDK:
下載:去官網(wǎng)下載對(duì)應(yīng)版本的JDK,我這里是jdk-8u60-linux-x64.tar.gz
新建安裝目錄:
sudo mkdir /usr/local/java
解壓JDK:
sudo tar xvf ~/Downloads/jdk-8u60-linux-x64.tar.gz -C /usr/local/java
設(shè)置全局環(huán)境變量:
sudo gedit ~/.bashrc
文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_60 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
驗(yàn)證:新開終端,輸入java驗(yàn)證(當(dāng)前終端內(nèi)不生效)
接下來,配置網(wǎng)絡(luò)(為啥要配置:因?yàn)槟愦畹氖羌?,用的是集群的服?wù),肯定想除了集群以外的機(jī)器能訪問,而不是像網(wǎng)上那些人省事,直接在master上安裝Eclipse,進(jìn)行開發(fā),這樣是不對(duì)的,舉個(gè)例子,我的宿主機(jī)是Windows,用VirtualBox搭的集群,我想在windows上使用Eclipse進(jìn)行編程,使用集群的Hadoop服務(wù),我可不想在master上安裝Eclipse開發(fā),雖然會(huì)省掉不少錯(cuò)誤解決的麻煩事,但是是不對(duì)的!服務(wù)就是要遠(yuǎn)程調(diào)用的)
設(shè)置第一個(gè)網(wǎng)卡:NAT可以使虛擬機(jī)使用宿主機(jī)的IP上網(wǎng),這樣,你的虛擬機(jī)就可以缺什么軟件就安什么了,方便!
接下來設(shè)置第二個(gè)網(wǎng)卡:這使得宿主機(jī)能夠ping通虛擬機(jī)
二.克隆虛擬機(jī)
選中第一臺(tái)ubuntu_0(一定要關(guān)閉它),你會(huì)發(fā)現(xiàn)右側(cè)的綿羊(你應(yīng)該知道為啥是綿羊吧)圖標(biāo)是可以點(diǎn)擊的,我現(xiàn)在用著集群呢,懶得關(guān),索性找張別人的圖,點(diǎn)開后的樣子是這樣的:
注意要重置網(wǎng)卡設(shè)置,命名隨便了。我一共clone了3個(gè)虛擬機(jī),名字分別是Ubuntu_1,Ubuntu_2,Ubuntu_3,“完全復(fù)制”,一直點(diǎn)確定。
三.設(shè)置虛擬機(jī)靜態(tài)IP
為啥要設(shè)置呢?虛擬機(jī)默認(rèn)是DHCP的,如果你搭建Hadoop集群,不能總是讓Hadoop集群所在的機(jī)器啟動(dòng)一次就換一次IP吧,那麻煩了。所以,設(shè)置靜態(tài)IP很有必要。
我對(duì)網(wǎng)絡(luò)這塊迷糊,我就說我的方法了。
下面的操作適用于所有4個(gè)虛擬機(jī)。
sudo gedit /etc/network/interfaces
在
auto lo iface lo inet loopback
下加入:
auto eth2 #這是第二塊網(wǎng)卡 iface eth2 inet static
address 192.168.99.101 #在終端輸入ifconfig查看下,然后每臺(tái)機(jī)器這個(gè)地址最后一段(共四段)自增1(這四臺(tái)機(jī)器是101(用作master),100,102,103(這三個(gè)用作slave)) netmask 255.255.255.0 #ifconfig gateway 10.0.2.2 # route查看,第一行就是
靜態(tài)IP弄好了,接下來,就是設(shè)置主機(jī)名了。
命令:
sudo gedit /etc/hostname
命令:
sudo gedit /etc/hosts
修改成需要的主機(jī)名(我這里是linux0-cloud,linux1-cloud,linux2-cloud,linux3-cloud),重啟?等下,還沒完事呢。
接下來修改hosts文件:
為什么要設(shè)置hosts,hosts是干嘛的,我的理解是,根據(jù)主機(jī)名找IP,所以呢,
修改所有虛擬機(jī)的hosts文件, 命令:sudo gedit /etc/hosts。設(shè)置為如圖所示:
以上操作四臺(tái)機(jī)器必須都應(yīng)用!好了,重啟吧!
四.安裝SSH,使得master可以無密碼登錄所有slave節(jié)點(diǎn)(不解釋原因)
所有主機(jī)安裝ssh
命令:
sudo apt-get install ssh
在master節(jié)點(diǎn)上,
命令:
ssh-keygen -t rsa -P "" cat .ssh/id_rsa.pub >>.ssh/authorized_keys,
使用ssh localhost查看是否能夠無密碼登錄
下面會(huì)進(jìn)行master在無密碼情況下ssh連接到slave節(jié)點(diǎn)
其他所有節(jié)點(diǎn)執(zhí)行命令:
ssh-keygen -t rsa -P ""
接下來,只要將master的公鑰放到其它slave節(jié)點(diǎn)即可使用無密碼登錄ssh節(jié)點(diǎn)
將master .ssh/authorized_keys使用scp命令拷貝到其它slave節(jié)點(diǎn)上,做到master訪問slave不需要密碼(如果slave訪問master,那么過程相反)
在master上執(zhí)行命令:
scp .ssh/authorized_keys linux1@linux1-cloud:~/.ssh/authorized_keys scp .ssh/authorized_keys linux1@linux2-cloud:~/.ssh/authorized_keys scp .ssh/authorized_keys linux1@linux3-cloud:~/.ssh/authorized_keys
五.安裝Hadoop2.7.1
下面先對(duì)master節(jié)點(diǎn)進(jìn)行配置,然后將配置好的文件復(fù)制到其余機(jī)器上
在master上
新建目錄,命令:mkdir ~/hadoop
解壓hadoop,命令:tar xvf ~/Downloads/hadoop-2.7.1.tar.gz -C ~/hadoop
新建hdfs文件夾(不能使用sudo創(chuàng)建,權(quán)限問題):
mkdir ~/dfs mkdir ~/dfs/name mkdir ~/dfs/data mkdir ~/tmp
修改hadoop/hadoop-2.7.1/etc/hadoop/hadoop-env.sh配置文件 ,
export JAVA_HOME=/usr/local/java/jdk1.8.0_60
修改/etc/hadoop/slaves文件:
修改/etc/hadoop/core-site.xml文件,
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://linux0-cloud:8020</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/linux1/tmp</value> <description>Abase for other temporary directories.</description> </property> </configuration>
修改/etc/hadoop/hdfs-site.xml文件,
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>linux0-cloud:9001</value> <description> 這里使namenode同時(shí)作為secondary namenode,實(shí)際應(yīng)該設(shè)置其他機(jī)器的比如linux1-cloud:9001 你可以訪問linux0-cloud:50070也可以訪問linux0-cloud:9001(或者其他比如:linux1-cloud:8001)查看hadoop概況(namenode們狀態(tài)是同步的) </description> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/linux1/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/linux1/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
修改etc/hadoop/mapred-site.xml,
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>linux0-cloud:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>linux0-cloud:19888</value> </property> </configuration>
修改yarn-site.xml文件,
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>linux0-cloud:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>linux0-cloud:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>linux0-cloud:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>linux0-cloud:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>linux0-cloud:8088</value> </property> </configuration>
下面將hadoop復(fù)制到其它slave節(jié)點(diǎn):
命令:
sudo scp -r ~/hadoop linux1@linux1-cloud:~/ sudo scp -r ~/hadoop linux1@linux2-cloud:~/ sudo scp -r ~/hadoop linux1@linux3-cloud:~/
設(shè)置所有節(jié)點(diǎn)環(huán)境變量:
gedit ~/.bashrc
添加:
export HADOOP_HOME=/home/linux1/hadoop/hadoop-2.7.1 export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
應(yīng)用環(huán)境變量:
source ~/.bashrc
六.啟動(dòng)Hadoop
首先格式化:
hdfs namenode -format
啟動(dòng)hdfs:
start-dfs.sh
啟動(dòng)yarn:
start-yarn.sh
你也可以輸入192.168.99.101:50070訪問,不給你們截圖,宿主機(jī)瀏覽器有不少標(biāo)簽
看完上述內(nèi)容,你們對(duì)如何在window上使用VirtualBox搭建Ubuntu15.04全分布Hadoop2.7.1集群有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。