大数据平台搭建合集--全分布式平台部署

0.更改主机名

根据实际需求做更改即可!
# 新建的虚拟机,可以更改为与文档中相同的主机名
$ hostnamectl set-hostname master
$ hostnamectl set-hostname slave1
$ hostnamectl set-hostname slave2
# 如果需要更改网卡的配置,只需需要做如下修改(在本文档中是使用的dhcp获取的ip,所以未做修改)
# 如果在虚拟机中,对应的ip、子网掩码、网关等信息可以虚拟网络编辑器中查看(注意网关的配置要在"虚拟网络编辑器"中的"更改设置"里的"Nat设置里查看")
$ vi /etc/sysconfig/network-scripts/ifcfg-ens33 

# 修改如下配置项
BOOTPROTO="static"
# 添加如下配置项
IPADDR=192.168.73.100
NETMASK=255.255.255.0
GATEWAY=192.168.73.2
DNS1=8.8.8.8

1.ssh免密登录

(1),生成秘钥(群发)

ssh-keygen
在输入命令之后,会提示你选择公钥密码、存储位置等
如无特殊需求,比如公钥密码、存储位置等。这里可以直接回车下一步
秘钥即成功生成在"~/.ssh/"文件夹内

(2),配置hosts

每一台机器都需要配置!
# 打开配置文件目录,
vi /etc/hosts
# 根据ip信息修改为以下内容
192.168.204.152 master
192.168.204.153 master2
192.168.204.154 slave
# 在每台服务器中都要配置hosts,所以在每台服务器中都执行

(3),采用追加的方式添加公钥(群发)

每一台机器都需要操作
# 第一台主机:
ssh-copy-id master
yes
000000(输入设置的密码)
# 第二台主机:
ssh-copy-id slave1
yes
000000(输入设置的密码)
# 第三台主机(在此时注意一点的是,这里做输入的时候其他两台主机仍然是第一次连接所以需要先选中yes,在输入密码):
ssh-copy-id slave2
yes
000000(输入设置的密码)    

2.关闭防火墙与SeLinux(群发)

# 关闭防火墙:
systemctl stop firewalld
# 设置开机禁用防火墙:
systemctl disable firewalld.service
# 检查防火墙状态:
systemctl status firewalld 
# 关闭SeLinux
# 只是暂时关闭
setenforce 0
# 通过改配置文件的方式关闭
vim /etc/selinux/config 
# 修改配置项
SELINUX=disabled

3.jdk的安装与配置

(1).解压jdk组件

# 进入soft目录下解压jdk
cd ~
tar -zxvf jdk-8u77-linux-x64.tar.gz -C /usr/local/
# 修改文件名增加辨识度
cd /usr/local
mv jdk1.8.0_77 jdk

(2).配置环境变量

# 在相应配置文件中追加以下内容
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
# 设置当前环境变量立即生效
source /etc/profile

(3).将jdk与环境变量同步到其他两台服务器

$ scp -r /usr/local/jdk/ root@slave1:/usr/local
$ scp /etc/profile root@slave1:/etc/
# 
$ scp -r /usr/local/jdk root@slave2:/usr/local
$ scp /etc/profile root@slave2:/etc/
# 在同步文件之后,需要更新配置文件
$ source /etc/profile

4.Hadoop安装与配置

(1).解压Hadoop组件

# 将组件上传至soft目录
cd ~
tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local/
# 更改名称增加辨识度
cd /usr/local
mv hadoop-2.7.1 hadoop

(2).修改相应配置文件

# 进入配置文件目录
cd /usr/local/hadoop/etc/hadoop/
1),配置core-site.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <!-- 这里的目录会自动生成-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-repo/tmp</value>
    </property>
    <!--kkb新增 -->
    <!--  缓冲区大小,实际工作中根据服务器性能动态调整 -->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
    <!--  开启hdfs的垃圾桶机制,删除掉的数据可以从垃圾桶中回收,单位分钟 -->
    <property>
        <name>fs.trash.interval</name>
        <value>10080</value>
    </property>
</configuration>
2),配置hdfs-site.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <property>
        <name>dfs.namenode.rpc-address</name>
        <value>master:9000</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property> 
     <!--配置启动SecondaryNameNode的位置,在不明确指定时默认是在主节点启动,一般我认为需要在另一台主节点中启动 -->
    <property>
        <name>dfs.namenode.secondary.rpc-address</name>
        <value>slave1:9000</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave1:50070</value>
    </property>
     <!-- 配置nameNode和DataNode存储元数据的路径-->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop-repo/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop-repo/data</value>
    </property>
</configuration>
3),配置marped-site.xml
# 说明:系统中提供的是一个模版文件,需要先复制成marped-site.xml文件,再进行修改
[root@localhost hadoop]# cp mapred-site.xml.template mapred-site.xml 
# 打开配置文件s
vi mapred-site.xml
<!-- 指定mr框架为yarn -->  
<property>  
<name>mapreduce.framework.name</name>  
<value>yarn</value>  
</property>
4),配置yarn-site.xml
<!--配置你想在哪个节点起ResourceManager -->
<property>
    <name>yarn.resourcemanager.address</name>
    <value>master</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 开启日志聚合的功能-->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
5),配置hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
6),配置slaves

指定DataNode节点(hostname)

[root@master ~]# vim /usr/hadoop/hadoop-2.7.3/etc/hadoop/slaves 
# 删除原本的localhost,添加以下内容
master
slave1
slave2

(3),配置环境变量

# 修改配置文件
vi /etc/profile
# 追加以下内容
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
# 更新配置文件
source /etc/profile

(4),同步Hadoop与配置文件复制到其他节点

# 在master节点配置之后,需要同步到其他两台服务器中
[root@master /]# cd /usr/hadoop/
[root@master hadoop]# scp -r /usr/local/hadoop root@slvae1:/usr/local/
[root@master hadoop]# scp /etc/profile root@slave1:/etc/
[root@master hadoop]# scp -r /usr/local/hadoop root@slave2:/usr/local/
[root@master hadoop]# scp /etc/profile root@slave2:/etc/
# 同步完配置文件之后需要更新配置文件
source /etc/profile

6.集群启动

(1).格式化HDFS

# 1.在master上格式化namenode:
hdfs namenode -format

(2).启动hdfs

# 在master1上执行:
start-dfs.sh

(3).启动Yarn

# 1.在master1上执行:
start-yarn.sh

(4).启动JobHistoryServer

# 在每台主机上都执行以下命令
mr-jobhistory-daemon.sh start historyserver

8.进程验证

[root@master opt]# jps
14310 NameNode
15046 NodeManager
15159 Jps
14587 DataNode
14416 ResourceManager
14556 JobHistoryServer

[root@slave1 ~]# jps
14501 SecondaryNameNode
14699 Jps
14588 NodeManager
14415 DataNode
14536 JobHistoryServer

[root@slave2 ~]# jps
13120 NodeManager
13218 Jps
13016 DataNode
14559 JobHistoryServer

wangyq_sure
21 声望0 粉丝

认真学习、思考、反思、总结、分享日常的编程经验~~