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集群搭建的主要内容,如果未能解决你的问题,请参考以下文章