大数据科普系列(四) Hadoop集群搭建
admin
2023-09-11 18:01:51
0

通过前面的学习,我们知道了什么是大数据、分布式以及Hadoop。下面,我们就来亲自动手搭建一个Hadoop系统。

集群规划

我们计划搭建一个拥有3个节点的Hadoop分布式集群,具体规划如下:




其中NameNode、SecondryNameNode和DataNode是HDFS集群中的进程,ResourceManager和NodeManager是YARN集群的进程。NameNode与ResourceManager是主节点,而DataNode与NodeManager是从节点。

准备工作

首先,我们得准备3台Linux主机,这里是使用VMwareWorkStation创建了3台CentOS6.7的虚拟机,对于虚拟机及Linux不懂的同学请自行问度娘,这里不再科普。接下来,我们要做的事情还有很多:

1)配置普通用户sudoer权限(这里创建的普通用户叫做hadoop)

a)在root账号下使用命令:vim /etc/sudoers

b)找到 root ALL=(ALL) ALL 这一行

c)然后在它下面添加一行:hadoop ALL=(ALL) ALL,保存退出




2)修改主机名

a)在root账号下用命令:vi /etc/sysconfig/network,如果Hadoop用户配置了sudo权限,也可以在 hadoop 登录情况下使用命令: sudo vi /etc/sysconfig/network

b)修改好新名字(hadoop1、hadoop2、hadoop3)后保存退出




3)配置静态 IP(注意规划好3个节点各自的ip地址)

a)查看网络信息:ifconfig

b)编辑eth0网卡信息:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

  1. 修改 BOOTPROTO 为 static
  2. 添加 IPADDR=指定 IP
  3. 添加 DNS1=指定域名解析
  4. 添加 GATEWAY= 你的网关
  5. 子网掩码 PREFIX=24
  6. 删除 HWADDR 和 UUID
  7. 保存退出重启主机




4)配置主机映射

修改配置文件:sudo vi /etc/hosts,3台都要修改




5)关闭防火墙

    1. 查看防火墙状态:service iptables status
    2. 关闭防火墙:service iptables stop
    3. 关闭防火墙开机启动:chkconfig iptables off

6)同步服务器时间(分布式集群节点间时间相差太大的话会导致服务进程起不来)

    1. 查看时间 date
    2. 同步时间 ntpdate http://ntp1.aliyun.com

7)配置ssh免密登录

    1. 在hadoop账户下,输入命令ssh-keygen,连按3次回车,在/home/hadoop/.ssh 目录下就生成了一对密钥
    2. 在hadoop1的hadoop用户家目录使用ssh-copy-id hadoop2,这条指令的意思是复制当前主机ssh公钥到hadoop2的 .ssh/authorized_keys文件里,即建立hadoop1到hadoop2的免密登录
    3. 在hadoop2、hadoop3分别使用ssh-copy-id hadoop2将自己公钥复制到 hadoop2的authorized_keys文件里
    4. 将hadoop2的authorized_keys发送给hadoop1、hadoop3
      scp ~/.ssh/authorized_keys hadoop1:~/.ssh

注意,首次访问任然会要求输入账号和密码。

8)安装JDK(Hadoop是用Java语言写的,需要Java运行环境,3台虚拟机都要安装)

  1. 切换到root账号
  2. 上传Java安装包如:jdk-8u181-linux-x64.tar.gz ,解压到指定目录下,比如:tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local
  3. 配置环境变量
    vi /etc/profile
    在最后加入两行:
    export JAVA_HOME=/usr/local/jdk1.8.0_181
    export PATH=$PATH:$JAVA_HOME/bin
  4. 使修改的环境变量生效 :source /etc/profile
  5. 检测是否安装成功,输入命令:java –version



自此,准备工作就完成了。

集群搭建

1)获取安装包并解压到指定目录:下载传送门

2)解压到指定目录

tar -zxvf hadoop-2.7.5.tar.gz -C ~/apps/

注意:-C 的意思是指定解压路径,目标路径不存在则需要先创建:mkdir ~/apps

3)修改配置文件

hadoop的配置文件位于$HADOOP_HOME/etc/hadoop/文件夹中,需要修改的配置共有6个:

hadoop-env.sh

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh


# The java implementation to use.# 找到这一行,改为自己的jdk路径

export JAVA_HOME=/usr/local/jdk1.8.0_181

core-site.xml

vim $HADOOP_HOME/etc/hadoop/core-site.xml

在中加入以下代码

fs.defaultFS

hdfs://hadoop1:9000

hadoop.tmp.dir

/home/hadoop/data/hadoopdata/

hdfs-site.xml

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

在中加入以下代码


dfs.namenode.name.dir

/home/hadoop/data/hadoopdata/name

dfs.datanode.data.dir

/home/hadoop/data/hadoopdata/data

dfs.replication

3

dfs.secondary.http.address

hadoop2:50090


mapred-site.xml

复制mapred-site.xml.template文件,并命名为mapred-site.xml

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template mapred-site.xml

vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

在中加入以下代码


mapreduce.framework.name

yarn


yarn-site.xml

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

在中加入以下代码


yarn.resourcemanager.hostname

hadoop3

yarn.nodemanager.aux-services

mapreduce_shuffle


slaves,指定从节点有哪些

vim $HADOOP_HOME/etc/hadoop/slaves


hadoop1

hadoop2

hadoop3

4)配置环境变量

a)vim ~/.bashrc,在最后面加入以下语句:

export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5

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


b)source ~/.bashrc

5)将安装包和环境变量文件分发至另外2个节点,如

scp –r ~/apps hadoop2:~/

scp ~/.bashrc hadoop2:~/

别忘了, source 一下环境变量文件


6)初始化HDFS系统

在 HDFS 主节点上执行命令 hdfs namenode –format 进行初始化




7)启动集群

  1. 启动HDFS
    start-dfs.sh (在集群任意节点执行 )
  2. 启动YARN
    start-yarn.sh(只能在YARN的主节点启动,否则ResourceManager进程无法启动 )

8)验证集群是否安装成功

a)使用 jps 指令查看进程:查看规划的守护进程是否成功启动

b)WebUI

http://192.168.25.101:50070/

http://192.168.25.103:8088/






c)上传一个文件到HDFS:hadoop fs -put xxx /(前面 xxx 代表要上传的文件在本地的路径,/ 表示上传到 hdfs 的路径)

d)执行一个MapReduce任务,运行hadoop自带求PI demo程序并观察执行过程:

hadoop jar ~/apps/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 5 5

好了,至此,相信大家已经成功搭建了分布式的hadoop集群,我们下期再会!

注意:本文最早由东方瑞通高级讲师朱明虎老师发表于讲师原创专区,转载请注明出处!

相关内容