Hadoop2.9.2集群環(huán)境搭建

這篇文章主要是講Hadoop2.9.2集群環(huán)境的搭建,其他關于Hadoop相關的一些知識可以從網絡上去查看。

1.機器準備

????我這里集群環(huán)境是由4臺機器組成,其中一臺作為NameNode,其他3臺作為DataNode。如果使用虛擬機的話,可以先配置好一臺機器,另外3臺使用虛擬機的克隆方法直接克隆即可。

1.1 IP配置

hadoop集群中我們把所有的機器都設置為靜態(tài)的ip,網絡設置方法:

vi?/etc/sysconfig/network-scripts/ifcfg-XXX (備注XXX指的是具體的網卡名字)文件中添加以下屬性

BOOTPROTO=static? # 設置為靜態(tài)ip

IPADDR=192.168.0.101 # 具體的ip地址 看自己情況

NETMASK=255.255.255.0 # 子網掩碼

GATEWAY=192.168.0.1 # 網關地址 看自己路由器情況

DNS1=192.168.0.1 # 域名解析器1 看自己路由器情況

DNS2=114.114.114.114 #備用域名解析器2

ONBOOT=yes # 設置為自動啟用該網卡

1.2 域名配置(所有機器都需要配置)

ip配置好之后,為了方便使用,我們可以給每臺機器都設置一個方便記憶的域名。

使用命令vi /etc/hosts編輯該文件,添加以下內容

192.168.0.101 namenode.bigdata.com? # 前面寫機器的ip 后面自己定義一個域名

192.168.0.102 datanode1.bigdata.com

192.168.0.103 datanode2.bigdata.com

192.168.0.104 datanode3.bigdata.com

配置好之后,每臺機器都可以通過 ping 域名測試一下是否能夠互通。

ping?namenode.bigdata.com

ping?datanode1.bigdata.com

ping?datanode2.bigdata.com

ping?datanode3.bigdata.com

1.3 免密登錄配置(所有機器都需要配置)

????因為hadoop集群中,我們啟動集群時,會使用遠程的方式訪問別的集群中的機器,為了方便使用,我們可以設置免密的遠程登錄功能。

????這里使用RSA的加密,RSA會生成兩個秘鑰串,一個是私鑰保存在id_rsa文件中,另外一個是公鑰保存在id_rsa.pub文件中,私鑰自己保留,把公鑰發(fā)送到別的機器的authorized_keys文件中,別的機器遠程訪問該機器時,會攜帶公鑰一起過來,公鑰就會和私鑰進行配對,如果能配對成功,就運行其登錄。

a. 新建一個hadoop用戶用于免密登錄的

useradd hadoop

passwd hadoop 設置密碼

切換用戶

su - hadoop

b. 創(chuàng)建公鑰和私鑰? 保存的路徑在 ~/.ssh目錄下 (~表示當前登錄用戶的home目錄)

ssh-keygen -t rsa

生成兩個文件

id_rsa 私鑰

?id_rsa.pub 公鑰

c. 把所有機器的公鑰都保存在一個認證文件authorized_keys中

authorized_keys認證文件中保存了所有機器的公鑰。

認證文件也保存在~/.ssh目錄下

先在一臺機器上操作 namenode.bigdata.com

在hadoop用戶的home目錄下執(zhí)行以下命令:

可以輸入cd 回車進入當前登錄的用戶的home目錄

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

將遠程機器的公鑰一起輸入到當前機器authorized_keys文件中

?ssh hadoop@datanode1.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh hadoop@datanode2.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh hadoop@datanode3.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

d. 把 namenode.bigdata.com機器中的認證文件 分發(fā)到其他的三臺機器中

?scp .ssh/authorized_keys hadoop@datanode1.bigdata.com:~/.ssh/authorized_keys

scp .ssh/authorized_keys hadoop@datanode2.bigdata.com:~/.ssh/authorized_keys

scp .ssh/authorized_keys hadoop@datanode3.bigdata.com:~/.ssh/authorized_keys

?f. 將機器名添加至可信任的機器列表中

?還是先在namenode.bigdata.com機器上操作 ,然后將文件分發(fā)到其他3臺機器中

ssh hostname

例如:

?shh localhost

ssh namenode.bigdata.com

ssh datanode1.bigdata.com

ssh datanode2.bigdata.com

ssh datanode3.bigdata.com

分發(fā):

scp .ssh/known_hosts hadoop@datanode1.bigdata.com:~/.ssh/known_hosts

scp .ssh/known_hosts hadoop@datanode2.bigdata.com:~/.ssh/known_hosts

scp .ssh/known_hosts hadoop@datanode3.bigdata.com:~/.ssh/known_hosts


d. 確認文件權限

?.ssh 700

.ssh/authorized_keys 600

e. 修改配置文件? 需要切換至root登錄

vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile? ? ? .ssh/authorized_keys

2. 安裝環(huán)境 root用戶(所有機器都要安裝)

?2.1 jdk環(huán)境

yum 安裝

yum install -y java-1.8.0-openjdk-devel.x86_64

2.2 hadoop 安裝

先安裝 yum install -y wget

wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

在線將后面路徑中的文件下載到本地?

解壓hadoop至 /usr/local目錄下

tar -xvf hadoop-2.9.2.tar.gz -C /usr/local

2.3 配置環(huán)境變量

vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

export HADOOP_HOME=/usr/local/hadoop-2.9.2

?export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

?vi /usr/local/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

source /etc/profile 使環(huán)境變量生效

添加

?export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

3. 修改hadoop的配置文件

使用root賬戶修改hadoop的文件的所有者

chown -R hadoop:hadoop /usr/local/hadoop-2.9.2

切換至hadoop用戶

su - hadoop

配置文件的目錄:/usr/local/hadoop-2.9.2/etc/hadoop

修改以下幾個配置文件

core-site.xml 配置集群的核心配置文件


<configuration>

? ? <property>

? ? ? ? <name>fs.defaultFS</name>

? ? ? ? <value>hdfs://namenode.bigdata.com:9000</value>

? ? </property>

? ? <property>

? ? ? ? <name>hadoop.tmp.dir</name>

? ? ? ? <value>file:/usr/local/hadoop-2.9.2/tmp</value>

? ? </property>

</configuration>

?hdfs-site.xml:配置HDFS的信息


<configuration>

? ? <property>

? ?? ? <name>dfs.namenode.name.dir</name>

? ?? ? <value>file:/usr/local/hadoop-2.9.2/data/namespace</value>

? ?? ? <final>true</final>

? ?? ? <description>Path on the local filesystem where the NameNode stores</description>

? ? </property>

? ? <property>

? ?? ? <name>dfs.datanode.data.dir</name>

? ?? ? <value>/usr/local/hadoop-2.9.2/data/dataspace</value>

? ?? ? <final>true</final>

? ?? ? <description>Path on the local filesystem where the DataNode stores Data</description>

? ? </property>

? ? <property>

? ?? ? <name>dfs.namenode.secondary.http-address</name>

? ?? ? <value>namenode.bigdata.com:9100</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The secondary namenode http server address and port</description>

? ? </property>

? ? <property>

? ?? ? <name>dfs.webhdfs.enabled</name>

? ?? ? <value>true</value>

? ?? ? <final>true</final>

? ?? ? <description>Enable WebHDFS (REST API) in Namenodes and Datanodes</description>

? ? </property>

? ? <property>

? ? ? ? <name>dfs.permissions</name>

? ? ? ? <value>false</value>

? ? ? ? <final>true</final>

? ? ? ? <description>Disable permission checking in HDFS</description>

? ? </property>

? ? <property>

? ?? ? <name>dfs.replication</name>

? ?? ? <value>3</value>

? ? ? ? <final>true</final>

? ? ? ? <description>Default block replication</description>

? ? </property>

</configuration>

?mapred-site.xml 配置MapReduce


<configuration>

? ? <property>

? ?? ? <name>mapreduce.framework.name</name>

? ? ? ? <value>yarn</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The runtime framework for executing MapReduce jobs</description>

? ? </property>

</configuration>

yarn-site.xml 配置yarn


<configuration>

? ? <property>

? ? ? ? <name>yarn.resourcemanager.scheduler.address</name>

? ? ? ? <value>datanode1.bigdata.com:9001</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The address of the scheduler interface</description>

? ? </property>

? ? <property>

? ? ? ? <name>yarn.resourcemanager.resource-tracker.address</name>

? ? ? ? <value>datanode1.bigdata.com:9002</value>

? ? ? ? <final>true</final>

? ? </property>

? ? <property>

? ?? ? <name>yarn.resourcemanager.address</name>

? ? ? ? <value>datanode1.bigdata.com:9003</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The address of the applications manager interface in the RM</description>

? ? </property>

? ? <property>

? ?? ? <name>yarn.resourcemanager.admin.address</name>

? ? ? ? <value>datanode1.bigdata.com:9004</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The address of the RM admin interface</description>

? ? </property>

? ? <property>

? ?? ? <name>yarn.resourcemanager.webapp.address</name>

? ? ? ? <value>datanode1.bigdata.com:9005</value>

? ? ? ? <final>true</final>

? ? ? ? <description>The http address of the RM web application</description>

? ? </property>

? ? <property>

? ? ? ? <name>yarn.nodemanager.aux-services</name>

? ? ? ? <value>mapreduce_shuffle</value>

? ? ? ? <final>true</final>

? ? </property>

</configuration>

slaves:添加所有的數據結點的host


datanode1.bigdata.com

datanode2.bigdata.com

datanode3.bigdata.com

先配置好一臺機器

分發(fā)至其他機器

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode1.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode2.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode3.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

4. 啟動集群

?4.1 格式化 在namenode主節(jié)點上操作 只需操作一次

這步操作就類似于你重裝系統(tǒng)時,必須要先格式化是一個意思。格式化會清空HDFS上的所有文件的。

hdfs namenode -format hadoop_cluster

4.2 啟動集群 hadoop用戶啟動

任意結點都可以

開啟 start-dfs.sh

關閉集群 stop-dfs.sh

4.3 啟動yarn 需要在yarn的resourcemanager機器上啟動

開啟 start-yarn.sh

關閉stop-yarn.sh

啟動之后可以通過jps命令查看進程

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容