Centos7上搭建Hadoop3.1.1集羣

分配IP

先在草稿紙上分配好IP和主機名,三臺主機均能上外網,且均能互相ping通即可。

IP 主機名
192.168.85.101 node1
192.168.85.102 node2
192.168.85.103 node3

再將以上表格內的內容寫入/etc/hosts中(每個都要寫)

echo '192.168.85.101 node1' >>/etc/hosts
echo '192.168.85.102 node2' >>/etc/hosts
echo '192.168.85.103 node3' >>/etc/hosts

分別在對應IP的主機中修改主機名

在node1中

vi /etc/hostname

將hostname中的內容改爲node1

然後執行reboot命令重啓主機

在node2,node3中重複上述操作。

關閉防火牆

實驗環境中關閉防火牆,防止後續查看web頁面訪問受阻。

systemctl stop firewalld    #臨時關閉
systemctl disable firewalld  #禁止開機啓動

配置ssh免密登陸

所有虛擬機中分別執行

ssh-keygen -t rsa

三次回車生成密鑰

node1中執行下述操作

生成認證的公鑰key,再用下面的命令分發給各個節點

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
scp /root/.ssh/id_rsa.pub root@node2:/root/.ssh/authorized_keys
scp /root/.ssh/id rsa.pub root@node3:/root/.ssh/authorized_keys

再給所有虛報機上的authorized_keys添加權限

chmod 644 /root/.ssh/authorized_keys

即可完成node1到其他節點的免密登錄

可用以下命令測試ssh免密登陸是否設置成功

ssh root@node2  #不需輸入密碼即爲成功
exit            #退出ssh

安裝JDK

創建java目錄

mkdir -p /usr/local/java

下載jdk1.8版本,並將其解壓到/usr/local/java目錄下

tar -zxf jdk-8u65-linux-x64.tar.gz -C /usr/local/java/

配置環境變量

vi /etc/profile
#在配置文件的最後添加如下配置

#JAVA
JAVA_HOME=/usr/local/java/jdk1.8.0_65   #自己解壓後的jdk目錄名稱
JRE_JOME=/usr/local/java/jdk1.8.0_65/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_JOME CLASS_PATH PATH

保存退出後,執行以下命令刷新環境變量

source /etc/profile

進行測試是否成功

java -version

安裝hadoop3.1.1

下載hadoop3.1.11

從清華鏡像網站https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/core/hadoop-3.1.1上下載hadoop3.1.1壓縮包到本地

在node1主機上創建hadoop目錄

mkdir -p /usr/local/hadoop

上傳到node1主機上,並解壓到/usr/local/hadoop目錄下

tar -zxf hadoop-3.1.1.tar.gz -C /usr/local/hadoop/

配置環境變量

vi /etc/profile
#在配置文件最後一行添加如下配置

#HADOOP
export HADOOP_HOME =/usr/local/hadoop/hadoop-3.1.1
export PATH = $PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

運行如下命令刷新環境變量

source /etc/profile

配置Hadoop3.1.1

創建目錄

#在/usr/local/hadoop目錄下創建目錄
cd /usr/local/hadoop/
mkdir tmp     
mkdir var  
mkdir dfs  
mkdir dfs/name  
mkdir dfs/data  

修改配置文件

vi workers

刪除localhost
添加從節點主機名,例如我這裏是:
node2
node3

1) hadoop-env.sh

export JAVA_HOME=/usr/local/java/jdk1.8.0_65
export HADOOP_HOME=/usr/local/hadoop/hadoop-3.1.1
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

以下配置在各個文件的<configuration></configuration>中添加

2)core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.85.101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>

3) hdfs-site.xml

<property>
   <name>dfs.name.dir</name>
   <value>/usr/local/hadoop/dfs/name</value>
   <description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
   <name>dfs.data.dir</name>
   <value>/usr/local/hadoop/dfs/data</value>
   <description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
   <name>dfs.replication</name>
   <value>2</value>
</property> 
<property>
      <name>dfs.permissions</name>
      <value>false</value>
      <description>need not permissions</description>
</property>

4) yarn-site.xml

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

5) mapred-site.xml

 <property>
    <name>mapred.job.tracker</name>
    <value>node1:49001</value>
</property>
<property>
      <name>mapred.local.dir</name>
       <value>/usr/local/hadoop/var</value>
</property>
<property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
</property>

同步

使用scp命令將node1下的目錄複製到各個從節點的相應位置上

scp -r /usr/local/java node2:/usr/local/java
scp -r /usr/local/hadoop node2:/usr/local/hadoop
scp -r /etc/profile node2:/etc

scp -r /usr/local/java node3:/usr/local/java
scp -r /usr/local/hadoop node3:/usr/local/hadoop
scp -r /etc/profile node3:/etc

在從節點上分別運行下述命令刷新環境變量

source /etc/profile

格式化節點

在node1中運行下述命令,格式化節點

hdfs namenode -format

運行之後不報錯,並在倒數第五六行有successfully即爲格式化節點成功

運行以下命令,啓動hadoop集羣的服務

start-all.sh

在node1上輸入jps可以看到node1下的節點

在node2下的節點

在瀏覽器上訪問hdfs的web界面

在瀏覽器上輸入http://192.168.85.101:8088(前者爲主節點ip地址,後者爲hdfs的web進程對應的端口號)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章