集群搭建通用过程及一些注意点

集群搭建通用过程及一些注意点

0.设置静态ip(vim /etc/sysconfig/network-scripts/ifcfg-eth0 中配置静态ip),ip不变有利于后面的操作,但其实变了也只需要修改hosts文件即可,这就是用计算机名的好处。

关于修改网络,当虚拟机是克隆的时候会出现一个网络不通问题,原因是原来的机器本身有一个eth0的配置信息,克隆后的机器启动连接网卡后会生成的网卡名称就会为eth1,而且在配置文件中并没有ifcfg-eth1文件
解决方式:需要将eth1–>eth0
vi /etc/udev/rules.d/70-persistent-net.rules ----》将原来老的eth0删掉,将生成的新的eth1修改为eth0,然后记录该mac地址用于后面的ifcfg-eth0文件的配置使用

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.



# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f1:7d:32", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

vi /etc/sysconfig/network-scripts/ifcfg-eth0 --》修改mac地址为刚才记录的mac地址
并且去掉UUID这行(或者重新生成UUID加入到这里来),否则启动网卡会失败。

某个网卡的UUID改错了或者删除了,重新配置的时候需要UUID怎么办
在Linux或CentOS中,可以通过如下命令获取网卡的uuid信息:
[root@node01 ~]# uuidgen eth1
07d07031-eb0f-4691-8606-befb46645433
获取到eth1网卡的uuid,即可完成对ifcfg-eth1配置文件的修改,最后通过service network restart命令重启网卡,OK。

DEVICE=eth0
HWADDR=00:0c:29:f1:7d:32
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none

IPADDR=192.168.222.132
PREFIX=24
GATEWAY=192.168.222.2
DNS1=114.114.114.114
DNS2=8.8.8.8

因为每台主机与网络间,每个局域网与外网间都存在防火墙,会拦截一些命令
跨主机和跨网络通信的时候需要关闭防火墙:
chkconfig iptables off 关闭防火墙-》重启后生效
service iptables status 查看防火墙的状态
service iptables stop 临时停止防火墙
一块运用可以避免重启

1.为了配置后面的文件需要知道计算机名 (hostname) 或者 修改计算机名(vim /etc/sysconfig/network ) 或者 直接打算用ip都可以(ifconfig查看ip)
注意:它不会立即生效,在从下次重启后才开始生效,可以配合 hostname + 新名字 来避免重启,这条命令是临时有效,重启就按照文件中的恢复了

2.一般都用计算机名(因为不同环境下ip可能会变,但是计算机名一般不变,利于修改),这时候就需要配置hosts文件(/etc/hosts)
格式:ip + 计算机名 加在文件最后面就行,一条一行

3.ssh免密登录,避免节点间通信需要不断的输入密码,自己与自己的ssh连接也需要免密,否则也要输入密码。
免密的过程(例如用A去ssh连接其余的节点):
1). A端先生成一个私钥和一个公钥

      ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

2). 将A端的公钥发送到其余电脑的~/.ssh/authorized_keys文件中,其实就是将公钥文件中的内容拷贝到authorized_keys

   	ssh-copy-id -i ~/.ssh/id_rsa.pub root@node01

4.先在一台机器上安装jdk,并加入系统环境变量(/etc/profile)然后source /etc/profile使生效

export JAVA_HOME=/home/jdk1.8.0			<!-- 你的JDK安装目录 -->
export PATH=$JAVA_HOME/bin:$PATH   <!-- 将java配置到path的前面,放前面的优先 -->

5.先在一台机器上安装hadoop,并加入系统环境变量(/etc/profile),也可以加入用户的环境变量(~/.bashrc),然后source /etc/profile使生效

    export HADOOP_HOME=/home/hadoop-2.7.5		<!-- 你的hadoop 安装路径 -->
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

6.对hadoop包中etc的配置文件的配置
这三个文件依据搭建的分布式模式不同会有所不同
hdfs-site.xml
core-site.xml
slaves–>配置所有的从节点,一个从节点占一行

hadoop-env.sh–>配置完 source hadoop-env.sh 生效

    # The java implementation to use.  否则会报JAVA_HOME没找到的错误
    export JAVA_HOME=/home/jdk1.8.0
    # 在hadoop-env.sh 配置一条hadoop配置文件所在目录,否则可能会在报/tmp/...找不到配置文件的错误
    export HADOOP_CONF_DIR=/home/hadoop-2.7.5/etc/hadoop

7.第4,5步如果不是伪分布式,也就是说不是在一台机器上,那么
①你就得使用

scp -r hadoop-2.7.5 root@node02:`pwd`   这个pwd会解析成当前路径,你也可以写具体的路径

来将文件包以及环境变量的配置文件发送到其余的电脑上。
注意:前提是这个目录在对面的机器上也要存在,否则会丢失一层顶级目录

②另一方面还需要各台机器时间同步(否则时间相差太多会使信息失效,例如差1年,那么这个信息1年后到达就没有了时效性)
首先在各个节点上使用yum install ntp安装ntp命令
执行ntpdate ntp1.aliyun.com来同步时间(这里使用阿里云服务器的时间)

③每个机器的hosts文件中,自己的配置是必须的,而且还要有主namenode的,因为需要通信,所以为了方便,直接配置好了所有的ip+计算机名 ,然后将这个/etc/hosts文件用scp命令直接传送到其余电脑上,就省去了慢慢配置了。例如完全分布式的secondaryNamenode没有启动,有可能是没有配置hosts,报无法找到node01(主namenode的计算机名)的错误

8.对一些节点进行格式化操作,以及启动操作,注意根据模式不同,所需要的节点也会有所不同,那么启动以及格式化的时候一定要注意启动的顺序,因为有些节点之间是有依赖关系的(需要分不同的模式详细来说)

启动hdfs的命令 start-dfs.sh
停止hdfs的命令 stop-dfs.sh

9.通过jps命令,来查看java进程的启动情况
通过kill -9 进程号 来强制杀死一些进程

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值