Hadoop集群环境搭建

本机基本配置

网卡配置

编辑如下文件

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

内容

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.200.130
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=192.168.200.2
DNS2=114.114.114.114

配置主机名

编辑文件

vi /etc/sysconfig/network

内容为

NETWORKING=yes
HASTNAME=hadoop01

关闭防火墙

单次关闭和永久关闭

service iptables stop
chkconfig iptables off

安装ssh客户端

yum install -y openssh-clients 

克隆虚拟机

删除一块网卡

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

删除网卡

更改ip

编辑如下文件

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

更改ip

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.200.131
NETMASK=255.255.255.0
GATEWAY=192.168.200.2
DNS1=192.168.200.2
DNS2=114.114.114.114

修改主机名

vi /etc/sysconfig/network

内容

NETWORKING=yes
HOSTNAME=hadoop02

重启电脑,使网卡生效
其他需要克隆的机器只需要根据上述操作来来一遍就ok了。

hosts映射

linux必须做,windows为了使用方便也可以配置

192.168.200.160	hadoop01
192.168.200.161	hadoop02
192.168.200.162	hadoop03

免密登陆

可以使用
产生公钥和私钥

ssh-keygen -t rsa

把公钥发送给需要做免密的机器

ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip)    需要给自己发一个
ssh-copy-id -i /root/.ssh/id_rsa.pub hostname(ip)    其他的机器发

可以使用免密登陆脚本做免密登陆,免密登陆见附录

安装jdk

  1. 解压文件到安装目录
tar -zxvf /root/jdk-8u102-linux-x64.tar.gz -C /usr/local/
  1. 配置环境变量
vi /etc/profile

内容:

export JAVA_HOME=/usr/local/jdk1.8.0_102
export PATH=$PATH:$JAVA_HOME/bin
  1. 使变量生效
source /etc/profile

安装Hadoop集群

策划,解压

解压:

tar -zxvf hadoop-2.7.3.tgz -C /usr/local/

配置hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_102

配置core-site.xml

配置Namenode在哪里 ,临时文件存储在哪里

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://bigdata3901:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop-2.7.3/tmp</value>
	</property>
</configuration>

配置hdfs-site.xml

配置namenode,datanode数据的本地存放位置,副本数量的多少,secondary的http地址

<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/usr/local/hadoop-2.7.3/data/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/usr/local/hadoop-2.7.3/data/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<property>
		<name>dfs.secondary.http.address</name>
		<value>bigdata3901:50090</value>
	</property>
</configuration>

配置mapred-site.xml

首先把mapred-site.xml.tmp* 这个文件进行改名,改为 mapred-site.xml。

cp mapred-site.xml.tmp* mapred-site.xml

主要配置提交任务的方式,提交到yarn集群,默认是本地运行。

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

配置yarn-site.xml

主要是配置了yarn的老大在哪里,和一个map端程序结束的一个辅助服务开启。这里也可以加上每个小弟的资源数量,每个小弟的资源可以配置成不一样的。

<configuration>
	<property>
		<name>yarn.resourcemanager.hostname</name>
		<value>bigdata3901</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
</configuration>

配置slaves

这里是配置小弟有哪些,这里配置域名或者ip,不能都配置

bigdata3901
bigdata3902
bigdata3903

Hadoop环境变量

这个不是必须的,只是为了以后的操作方便。

export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

把配置好的文件发送给集群的其他节点

把第一台安装好的jdk和hadoop以及配置文件发送给另外两台,主要发送的文件有下面几个:

  • hosts文件
  • jdk安装后的文件夹
  • hadoop安装后的文件夹
  • /etc/profile 文件
    发送的命令如下所示
eg:scp -r /usr/local/jdk1.8.0_102 hadoop02:/usr/local/

启动集群

初始化集群

需要对namenode节点进行格式化,格式化会在配置的namenode目录下产生一些关于集群的id(用于集群的标示)等信息,只需要在namenode上操作一次
命令:

bin/hadoop  namenode  -format

启动HDFS集群

启动命令:

sbin/start-dfs.sh

启动后可以使用jps查看下相关进程是否启动。

  • 在namenode节点上会有namenode进程
  • 在datanode节点上会有datanode进程
  • secondaryNameNode也会在配置的节点上启动
    也可以通过网页来查看是否启动成功(namenode的50070端口的web页面):
    HDFS启动

启动yarn集群

启动命令:

sbin/start-yarn.sh

启动后可以使用jps命令来查看相关进程的启动情况,

  • yarn老大上启动了ResourceManeger进程
  • yarn小弟上启动了NodeManeger进程
    可以通过网页查看启动的情况(resourceManeger节点的8088端口的web页面):
    YARN启动

附录

使用到的网站

免密登陆脚本

#!/bin/bash
#yum安装expect
yum -y install expect
#PWD_1是登陆密码,可以自己设定
PWD_1=123456
ips=$(cat /etc/hosts |grep -v "::" | grep -v "127.0.0.1")
key_generate() {
    expect -c "set timeout -1;
        spawn ssh-keygen -t rsa;
        expect {
            {Enter file in which to save the key*} {send -- \r;exp_continue}
            {Enter passphrase*} {send -- \r;exp_continue}
            {Enter same passphrase again:} {send -- \r;exp_continue}
            {Overwrite (y/n)*} {send -- n\r;exp_continue}
            eof             {exit 0;}
    };"
}
auto_ssh_copy_id () {
    expect -c "set timeout -1;
        spawn ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@$1;
            expect {
                {Are you sure you want to continue connecting *} {send -- yes\r;exp_continue;}
                {*password:} {send -- $2\r;exp_continue;}
                eof {exit 0;}
            };"
}
# rm -rf ~/.ssh

key_generate

for ip in $ips
do
    auto_ssh_copy_id $ip  $PWD_1
done

ssh客户端安装有问题

执行免密登陆脚本的时候出现如下问题的:
免密登陆脚本出错
原因:ssh客户端没有安装好,卸载重新安装就可以了(先一出,然后再clean下,然后再安装)。

yum remove -y openssh-clients
yum clean all
yum install -y openssh-clients

集群启动问题

集群启动问题多看log日志,日志的位置在安装目录下面的logs里面,一定要勇于看日志。


本文由鹏鹏出品
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值