A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Hadoop分布式集群搭建
1.环境准备
2.Hadoop集群安装配置
安装Hadoop
Hadoop集群配置
将Hadoop配置分发到别的服务器中
3.启动Hadoop集群
在NameNode服务器格式化
启动Haoop集群
查看进程
查看HDFS web监控
至此,Hadoop集群部署成功
Hadoop下载地址:https://archive.apache.org/dist/hadoop/common/
JDK下载地址:https://www.oracle.com/technetwo ... nloads-2133151.html

1.环境准备
Hadoop集群部署规划

ip:主机名        作用
192.168.210.100:a        NameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode
192.168.210.101:a1        DataNode、NodeManager
192.168.210.102:a2        DataNode、NodeManager
准备三台虚拟机。关闭防火墙,设置ip,设置主机名

#不同的Linux版本可能命令不一样
#查看防火墙状态
firewall-cmd --state
#关闭防火墙
service firewall stop
#设置防火墙开机不启动
systemctl disable firewalld.service

修改host文件,使三台虚拟机可以通过主机名的方式进行互相访问

vi /etc/hosts
#配置三台服务器的ip和主机名
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.210.100 a
192.168.210.101 a1
192.168.210.102 a2
将配置发送到其它主机
scp -r /etc/hosts root@a1:/etc/
scp -r /etc/hosts root@a2:/etc/
测试
ping a1
ping a2
分别在三台服务器上安装JDK
#下载jdk-8u121-linux-x64.gz,上传到/home/software/下
#解压安装包到/usr/local下
tar -zxvf jdk-8u121-linux-x64.gz -C /usr/local/
#修改解压后的目录名
mv jdk1.8.0-121 jdk1.8.0
#设置环境变量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/sbin
#生效配置文件
source /etc/profile
#测试
java -version
ssh免密登录
ssh-keygen -t rsa
ssh-copy-id a
ssh-copy-id a1
ssh-copy-id a2
#测试
ssh a
ssh a1
ssh a2
#访问服务器内主机都不需要密码
2.Hadoop集群安装配置
安装Hadoop
下载Hadoop安装包hadoop-2.8.5.tar.gz并上传至服务器

#解压安装包至/usr/local
tar -zxvf hadoop-2.8.5.tar.gz -C /usr/local
#配置Hadoop环境变量
vi /etc/profile
#添加
HADOOP_HOME=/usr/local/hadoop-2.8.5/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#生效配置文件
source /etc/profile
#测试(出现Hadoop的安装目录即为成功)
which hadoop
#在Hadoop中配置java的安装目录
#进入hadoop安装目录
cd /usr/local/hadoop-2.8.5/
vi ./etc/hadoop/hadoop-env.sh
#找到export JAVA_HOME=${JAVA_HOME},修改为java的安装目录
export JAVA_HOME=/usr/local/jdk1.8.0
#测试(出现Hadoop版本)
hadoop version
Hadoop集群配置
配置core-site.xml

vi ./etc/hadoop/core-site.xml
#在configuration中配置
<configuration>
    <!--配置HDFS文件系统的命名空间,总入口-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://a:9000</value>
    </property>
    <!--操作HDFS的缓冲大小-->
    <property>
        <name>io.file.buffer.size</name>
        <value>4096</value>
    </property>
    <!--Hadoop的数据临时存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/bigdata/tmp</value>
    </property>
</configuration>
配置hdfs-site.xml

vi ./etc/hadoop/hdfs-site.xml
#在configuration中配置
<configuration>
        <!--副本数-->
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <!--块大小-->
        <property>
                <name>dfs.block.size</name>
                <value>134217728</value>
        </property>
        <!--HDFS的元数据存放目录-->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>/home/hadoopdata/dfs/name</value>
        </property>
        <!--HDFS数据存储目录-->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>/home/hadoopdata/dfs/data</value>
        </property>
        <!--HDFS的检测目录-->
        <property>
                <name>dfs.checkpoint.dir</name>
                <value>/home/hadoopdata/checkpoint/dfs/cname</value>
        </property>
        <!--HDFS的NameNode的web UI监控-->
        <property>
                <name>dfs.http.address</name>
                <value>a:50070</value>
        </property>
        <!--HDFS的snn的web UI地址-->
        <property>
                <name>dfs.secondary.http.address</name>
                <value>a:50090</value>
        </property>
        <!--是否开启web操作HDFS-->
        <property>
                <name>dfs.webdhfs.enabled</name>
                <value>false</value>
        </property>
        <!--是否启用HDFS的权限(acl)-->
        <property>
                <name>dfs.permissions</name>
                <value>false</value>
        </property>
</configuration>

配置mapred-site.xml

#修改mapred-site.xml.template为mapred-site.xml
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
vi ./etc/hadoop/mapred-site.xml
#在configuration中配置
<configuration>
        <!--指定mapreduce的运行框架-->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
                <final>true</final>
        </property>
        <!--历史服务的通信地址-->
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>a:10020</value>
        </property>
        <!--历史服务web UI地址-->
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>a:19888</value>
        </property>
</configuration>
配置slaves

#输入三台服务器的名字
vi ./etc/hadoop/slaves
a
a1
a2

将Hadoop配置分发到别的服务器中
scp -r /usr/local/hadoop-2.8.5 a1:/usr/local
scp -r /usr/local/hadoop-2.8.5 a2:/usr/local
启动Hadoop集群
在NameNode服务器格式化
hadoop namenode -format
启动Haoop集群
start-all.sh
查看进程
jps
#如果按照集群规划在集群服务器上分别启动了规划中的进程即为成功
#1.NameNode、DataNode、ResourceManager、NodeManager、SecondaryNameNode
#2.DataNode、NodeManager
#3.DataNode、NodeManager
查看HDFS web监控
ip:50070
至此,Hadoop集群部署成功

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马