搭建Hadoop集群
-
安裝兩個虛擬機(用戶名盡量統一為hadoop)
VMWare
Ubuntu18.04.2
jdk1.8.0_202
hadoop-2.10.1
master ip 192.168.80.138
slave ip 192.168.80.128
-
配置節點ip,為后面ssh準備
-
sudo gedit /etc/hosts

-
如下添加兩個節點

-
在slave1上同樣
-
-
設定root 賬戶
- 打開終端輸入,sudo passwd root,
- 然后,輸入密碼并設定root的密碼
- 最后在終端輸入su,并輸入干剛剛設定的密碼,即可進入root
-
修改虛擬機名稱,
- vim /etc/hostname
- 將ubuntu改成master(從機則改稱slave1),重啟后生效
-
安裝jdk
-
官網下載jdk8,https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
-
在/home/slave1里新建一個java檔案夾放jdk , mkdir /home/hadoop/java/

-
將下載的jdk移動到上面新建的檔案下,mv Downloads/jdk-8u202-linux-x64.tar.gz /home/hadoop/java/

-
進入到java檔案夾內,解壓tar -zxvf jdk-8u202-linux-x64.tar.gz

-
-
配置jdk
-
gedit /etc/profile
-
在最后加上如下配置
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_202 export JRE_HOME=/home/hadoop/java/jdk1.8.0_202/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
-
使配置生效 soruce /etc/profile,然后重啟,檢查java -version是否跳出版本資訊,如有則說明安裝成功,


-
-
安裝ssh
-
終端輸入apt-get install openssh-server

-
檢查ssh是否啟動,終端輸入ps -e |grep ssh,如果有sshd,說明已經啟動,如果沒有,輸入service ssh start

-
生成公鑰和密鑰ssh-keygen -t rsa -P “” ,此步驟不需要再root里操作,生成的檔案會放在/home/slave1/.ssh之下

-
進入到/home/slave1/.ssh,將id_rsa.pub加入到授權檔案authorized_keys中,cat id_rsa.pub >> authorized_keys

-
登錄localhost , ssh localhost , 推出 exit


-
-
以上的步驟在master和其他slave上做一模一樣的操作
-
配置master無秘登錄slave
-
master主機中復制一份公鑰到home. cp .ssh/id_rsa.pub ~/id_rsa_master.pub
-
把master的id_rsa_master.pub拷貝到slave1下,scp /home/hadoop/id_rsa_master.pub slave1:/home/hadoop/

-
在slave1下終端輸入 sudo cat id_rsa_master.pub >> .ssh/authorized_keys
-
至此實作了master對slave1的免密登錄
-
-
安裝hadoop(master上)
-
下載Hadoop,我下載的 hadoop-2.10.1,下載到/home/hadoop
-
解壓 tar -zxvf hadoop-2.10.1.tar.gz
-
在 hadoop-2.10.1內創建四個檔案夾
· hadoop-2.10.1/hdfs
· hadoop-2.10.1/hdfs/tmp
· hadoop-2.10.1/hdfs/name
· hadoop-2.10.1/hdfs/data
-
-
配置hadoop的組態檔(master)
-
組態檔都在/hadoop2.10.1/etc/hadoop

-
core-site.xml(注意配置中的路徑對應自己的路徑,就是之前創建的檔案夾)
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-2.10.1/hdfs/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration> -
hdfs-site.xml(注意路徑對應,name和data)
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.10.1/hdfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.10.1/hdfs/data</value> <final>true</final> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> -
復制mapred-site.xml.template,并命名為mapred-site.xml,然后加入配置
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> -
yarn-site.xml
<configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.resourcemanager.address</name> <value>master:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:18088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:18141</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> </configuration> -
配置hadoop-env.sh和yarn-env.sh的JAVA_HOME


-
配置slave檔案

-
配置hadoop環境變數
export HADOOP_HOME=/home/hadoop/hadoop-2.10.1 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
-
將master上的hadoop-2.10.1傳到slave1上,然后同樣配置slave1的hadoop環境變數(組態檔的路徑如果不一樣要改)
scp -r /home/hadoop/hadoop-2.10.1/ slave1:/home/hadoop/

-
-
開啟hadoop
-
初始化hadoop, hdfs namenode -format

-
start-dfs.sh

-
start-yarn.sh

-
上面兩部也可以使用start-all.sh一步運行
-
在master輸入jps,如下

-
在slave1輸入jps,如下

-
-
搭建完成
測驗一下
hadoop jar /home/hadoop/hadoop-2.10.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.1.jar pi 10 10
-
增加節點
-
修改hosts
-
修改組態檔
hdfs-site.xml 1->2
slaves +slave2
-
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356071.html
標籤:其他
上一篇:Spark(一):基礎
