Hadoop集群搭建

Posted xuyiqing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop集群搭建相关的知识,希望对你有一定的参考价值。

首先安装好一台CentOS6.9-64位机器

并安装jdk1.8的64位版本,这些基础步骤都很简单,百度即可

然后克隆三台,也就是总共四台虚拟机

 

第一台的网络配置是没有问题的,但是第二台需要进行配置:

网卡冲突问题解决:

vi /etc/udev/rules.d/70-persistent-net.rules 

删除eth0那行,并把eth1改为eth0

 

修改ip:这一选项适用于所有虚拟机,都要修改ip,而且ip不能冲突

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
MM_CONTROLLED=yes
IPADDR=192.168.111.100
GATEWAY=192.168.111.2
NETMASK=255.255.255.0
DNS1=192.168.111.2

 

修改主机名:

vi /etc/sysconfig/network

修改为hdp-01-04,方便后边的使用

 

配置域名映射:

vi /etc/hosts

192.168.111.99 hdp-01
192.168.111.100 hdp-02
192.168.111.101 hdp-03
192.168.111.102 hdp-04

 

最终,可以相互ping通,主机也可以ping通,说明网络配置到这里就完成了

 

其实还少了一步:关闭所有虚拟机的防火墙,否则后边会出意外的情况 

service iptables stop

chkconfig iptables off

 

然后使用CRT等工具连接四台虚拟机

现在我们要尽量不去打开这四台虚拟机,而是模拟实际环境,使用工具连接

 

接下来就是安装hadoop,为了方便,我用共享文件夹复制

cp /mnt/hgfs/VM_SHARE_DIR/hadoop-2.7.2.tar.gz ~/apps

tar -zxvf hadoop-2.7.2.tar.gz

 

配置Hadoop中的java环境变量:

cd etc/hadoop

vi hadoop-env.sh

修改这一行即可

export JAVA_HOME=/root/apps/jdk1.8.0_65

 

 修改core-site.xml:

 这里指定了namenode是hdp-01虚拟机

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp-01:9000/</value>
</property>
</configuration>

 

修改hdfs-site.xml:

配置了namenode和datanode的具体目录

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdpdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdpdata/data</value>
</property>
</configuration>

 

第一次启动,需要对namenode进行格式化:

./hadoop namenode -format

为了方便,更新环境变量

export HADOOP_HOME=/root/apps/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 

hdp-01启动namenode:

hadoop-daemon.sh start namenode

启动后,可以jps查看进程,如果有namenode,说明成功

 

开启了哪些端口:

netstat -nltp | grep [jps查到的id]

发现开启了端口:9000,50070

浏览器访问:http://192.168.111.99:50070是可以看到页面的

 

其他三台机器启动datanode:

hadoop-daemon.sh start datanode

 

关闭datanode:

hadoop-daemon.sh stop datanode

 

这样一台一台地启动,太麻烦,那么有没有什么简单的方式?

写一个脚本即可

在hadoop里面有写好的脚本,进行配置:

vi etc/hadoop/slave

hdp-01
hdp-02
hdp-03
hdp-04

 

需要先进行匿名登陆配置

ssh-keygen

ssh-copy-id hdp-01(以此类推给每一台服务器都配置无密登陆)

 

这时候如果要停止,只需要一个脚本:

stop-dfs.sh

 

开启也只需要一个脚本:

start-dfs.sh

 

其中有一项:secondaryNameNode,也可以进行手动配置

停止当前的:hadoop-daemon.sh stop secondarynamenode

配置hdfs-site.xml

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdp-02:50090</value>
</property>

 

这里最好不要配置在同一个服务器:因为如果崩掉一个,还有备份

 

start-dfs.sh

技术图片

 

到这里,hadoop集群就搭建完成了

以上是关于Hadoop集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建hadoop集群 桥接

Hadoop集群搭建(一主二从)

【大数据】使用Docker搭建Hadoop集群

大数据实战——hadoop集群安装搭建

Hadoop集群搭建(一主二从)

Hadoop集群搭建(一主二从)