ms133 发表于 2018-10-31 09:14:07

生产环境下Hadoop大集群安装与配置+DNS+NFS-DavideyLee

  一环境
  Linux ISO:CentOS-6.0-i386-bin-DVD.iso   32位
  JDK version:"1.6.0_25-ea"   forlinux
  Hadoop software version:hadoop-0.20.205.0.tar.gz   forlinux
  VMware® Workstation   Version: 7.0.0 build-203739
  我的linux虚拟机配置   master   slave1   slave2    信息如下
  主机名
  IP
  节点名
  备注
  h1
  192.168.2.102
  master
  namenode和jobtracker
  h2
  192.168.2.103
  slave1
  datanode和tasktracker
  H4
  192.168.2.105
  slave2
  datanode和tasktracker
  DNS服务器安装与配置参考链接,感谢yanggw8071   mikeliu   chizeng
  1.http://f.dataguru.cn/thread-49108-1-1.html
  2.http://f.dataguru.cn/thread-52579-1-1.html
  3.http://f.dataguru.cn/thread-56022-1-3.html
  二Bind安装DNS服务器并成功解析主机名
  1.说明一下,我把DNS服务器安装到h1节点(master上)然后对h1 h2 h4 节点的主机名进行解析
  2.需要h1节点可以上网,因为我们需要使用yum方式安装DNS的rpm包,上网方式如下
  CentOS需要能连入网络,这个比较简单,可以参考《NOSQL系列-memcached安装管理与repcached高可用性》,这篇文章在一开始就介绍了虚拟机如何连接上网
  http://f.dataguru.cn/thread-46905-1-1.html
  3.原来我们使用的hosts文件来解析主机名,现在可以不使用了直接删除即可,我呢直接改名吧,这样留着备用
  # mv /etc/hosts /etc/hosts_20130126
  4.有的筒子使用了webmin软件GUI方式配置了DNS服务器,这种方式是挺方便的界面化人性化,但我用惯了命令行(码农的归宿)所以直接使用rpm方式来安装DNS了
  5.检查一下bind包有没有,这也是采用chroot机制
  # rpm -q bind
  package bind is not installed
  # rpm -q bind-chroot
  package bind-chroot is not installed
  这里显示还没有安装,那么我们就需要yum方式安装啦
  6.现在使用yum安装bind 和 bind-chroot 软件包
  # yum -y install bind bind-chroot
  省略。。。。。。
  到此bind 和 bind-chroot包安装完成
  # rpm -q bind
  bind-9.8.2-0.10.rc1.el6_3.6.i686
  # rpm -q bind-chroot
  bind-chroot-9.8.2-0.10.rc1.el6_3.6.i686
  哈哈现在都已经安装好了
  7. yum install bind*还有三个包需要安装
  # yum install bind*
  现在都安装完毕了
  8.修改named.conf文件,目录/etc/named.conf
  # vim /etc/named.conf      修改2处,标红显示
  options {
  listen-on port 53 { any; };       //把127.0.0.1 修改成 any
  listen-on-v6 port 53 { ::1; };
  directory       "/var/named";
  dump-file       "/var/named/data/cache_dump.db";
  statistics-file "/var/named/data/named_stats.txt";
  memstatistics-file "/var/named/data/named_mem_stats.txt";
  allow-query   { any; };      //localhost 修改成 any
  recursion yes;
  dnssec-enable yes;
  dnssec-validation yes;
  dnssec-lookaside auto;
  /* Path to ISC DLV key */
  bindkeys-file "/etc/named.iscdlv.key";
  managed-keys-directory "/var/named/dynamic";
  };
  logging {
  channel default_debug {
  file "data/named.run";
  severity dynamic;
  };
  };
  zone "." IN {
  type hint;
  file "named.ca";
  };
  include "/etc/named.rfc1912.zones";
  include "/etc/named.root.key";
  9. 修改named.rfc1912.zones文件,目录/etc/named.rfc1912.zones
  配置正向反向配置文件
  # vim /etc/named.rfc1912.zones   在这个文件末尾添加如下内容,红色是注意的地方
  zone "leonarding.com" IN {
  type master;
  file "leonarding.com.zone";       注意这是你自己设置的域名,要牢牢记住
  allow-update { none; };
  };
  zone "2.168.192.in-addr.arpa" IN {
  type master;
  file "2.168.192.in-addr.zone";      这是反向配置文件
  allow-update { none; };
  };
  10.创建leonarding.com.zone和2.168.192.in-addr.zon 文件
  # cd /var/named          进入这个目录
  # cp -p named.localhost leonarding.com.zone
  # cp -p named.localhost 2.168.192.in-addr.zone
  对这2个文件进行修改,修改成新的文件,这2个文件就是区域文件,一定要写对了,否则会报错
  添加正向文件并且配置
  # vim leonarding.com.zone
  $TTL 86400
  @    IN    SOAh1.leonarding.com. chizk.www.leonarding.com. (
  0 ; serial (d. adams)
  1D ; refresh
  1H ; retry
  1W ; expiry
  3H ) ; minimum
  @    IN    NSh1.leonarding.com.
  h1.leonarding.com. IN A 192.168.2.102
  h2.leonarding.com. IN A 192.168.2.103
  h4.leonarding.com. IN A 192.168.2.105
  添加反向文件并且配置
  # vim 2.168.192.in-addr.zone
  $TTL 86400
  @    IN    SOAh1.leonarding.com. chizk.www.leonarding.com. (
  0 ; serial (d. adams)
  1D ; refresh
  1H ; retry
  1W ; expiry
  3H ) ; minimum
  @    IN    NSh1.leonarding.com.
  102 IN PTR h1.leonarding.com.
  103 IN PTR h2.leonarding.com.
  105 IN PTR h4.leonarding.com.
  修改正向文件和反向文件属组,使用chgrp即可
  # chgrp named leonarding.com.zone
  # chgrp named leonarding.com.rev
  11.修改/etc/resolv.conf 添加DNS域名服务器ip
  h1(master)
  # vim /etc/resolv.conf
  nameserver 192.168.2.102          在最后面追加此条即可,就是我的master机器ip说明我们是把master机器作为DNS域名解析服务器,
  h2(slave)
  # vim /etc/resolv.conf
  nameserver 192.168.2.102
  h4(slave)
  # vim /etc/resolv.conf
  nameserver 192.168.2.102
  添加DNS域名服务器ip,当有域名或主机名解析的时候,就知道去哪台机器上进行映射了
  12.启动DNS服务器
  # service named start
  启动named:【确定】
  13.使用nslookup命令测试域名解析
  测试之前关闭防火墙
  # service iptables status
  Iptables:未运行防火墙
  正向解析域名->IP
  # nslookup h1.leonarding.com
  Server:          192.168.2.102                  指域名服务器ip地址
  Address:       192.168.2.102#53                     ip+端口号,DNS默认53端口
  Name:   h1.leonarding.com                  域名解析
  Address: 192.168.2.102                     映射ip
  # nslookup h2.leonarding.com
  Server:          192.168.2.102                  指域名服务器ip地址
  Address:       192.168.2.102#53                     ip+端口号,DNS默认53端口
  Name:   h2.leonarding.com                  域名解析
  Address: 192.168.2.103                     映射ip
  # nslookup h4.leonarding.com
  Server:          192.168.2.102                  指域名服务器ip地址
  Address:       192.168.2.102#53                  ip+端口号,DNS默认53端口
  Name:   h4.leonarding.com                  域名解析
  Address: 192.168.2.105                     映射ip
  反向解析IP->域名
  # nslookup 192.168.2.102
  Server:          192.168.2.102
  Address:       192.168.2.102#5
  102.2.168.192.in-addr.arpa   name = h1.leonarding.com.
  # nslookup 192.168.2.103
  Server:          192.168.2.102
  Address:       192.168.2.102#53
  103.2.168.192.in-addr.arpa   name = h2.leonarding.com.
  # nslookup 192.168.2.105
  Server:          192.168.2.102
  Address:       192.168.2.102#53
  105.2.168.192.in-addr.arpa   name = h4.leonarding.com.
  我们还可以使用host命令做解析测试
  # host h2.leonarding.com
  h2.leonarding.com has address 192.168.2.103
  # host 192.168.2.103
  103.2.168.192.in-addr.arpa domain name pointer h2.leonarding.com.
  小结:到此我们使用Bind安装DNS服务器与配置,终于大功告成了,太不容易了,这是第一次独立完成DNS的配置和排除故障,之前也做过但一直顺风顺水,这次遇到了困难,还是应该多仔细认真反复查询测试,在此感谢ask兄的点拨!
  三生产环境下hadoop大集群NFS安装与配置
  1.说明一下,我还是把NFS系统安装到h1节点(master上)然后把共享目录挂载到h1 h2 h4节点,实现ssh密钥的共享
  2.NFS参考链接,感谢chizeng   gaojian309
  http://f.dataguru.cn/thread-56101-1-4.html
  http://f.dataguru.cn/thread-56037-1-1.html
  3.三台虚拟操作系统如下
  主机名
  IP
  节点名
  备注
  h1
  192.168.2.102
  master
  namenode和jobtracker
  h2
  192.168.2.103
  slave1
  datanode和tasktracker
  H4
  192.168.2.105
  slave2
  datanode和tasktracker
  4.我们开始做实验啦
  检查NFS包是否已经安装
  # rpm -qa | grep nfs
  nfs-utils-1.2.2-7.el6.i686
  nfs4-acl-tools-0.3.3-5.el6.i686
  nfs-utils-lib-1.1.5-1.el6.i686
  现在都已经安装到系统中了
  检查rpcbind包是否已经安装
  # rpm -qa | grep rpcbind
  rpcbind-0.2.0-8.el6.i686
  现在都已经安装到系统中了
  如果你的系统显示没有安装,可以使用yum install nfs-utils rpcbind进行安装,然后配置
  5.我们查看一下NFS服务和rpcbind服务是否启动
  # service nfs status
  rcp.svcgssd已停
  rpc.mountd已停
  nfsd      已停
  rpc.rquotad已停                nfs已经停止了,我们现在应该启动nfs服务
  # service rpcbind status
  rpcbind (pid1431)正在运行…….
  6.启动服务
  # service nfs start
  启动NFS服务【确定】
  关掉NFS配额【确定】
  启动FNS守护进程【确定】
  启动NFS mountd                【确定】
  设置开机启动
  # chkconfig nfs on
  # chkconfig rpcbind on
  7.把/home/grid/目录设置为共享目录
  # vim /etc/exports            在exports文件中添加/home/grid *(sync,rw)字符串
  /home/grid *(sync,rw)
  解释
  /home/grid       是NFS要共享的目录
  星号代表所有ip地址
  Rw为读写,ro为只读
  Sync为立刻写入硬盘,rsync为优先写入缓存
  No_root_squas root用户具有根目录的完全管理访问权限(这个如果不配置会造成远程root用户只读)
  # cat /etc/exports
  /home/grid *(sync,rw)
  8.重启rpcbind和nfs服务
  # service rpcbind restart
  停止 rpcbind:【确定】
  正在启动rpcbind                  【确定】
  # service nfs restart
  全部启动
  注意这里也要关闭防火墙设置
  9.输出本地挂载点(即master上的共享目录)
  # showmount -e localhost
  Export list for localhost:
  /home/grid *
  解释:
  /home/grid       是NFS要共享的目录
  星号代表所有ip地址
  10.客户端h2 h4上配置
  登陆h2
  # mkdir /nfs_share               在根目标下创建挂载点
  # mount -t nfs 192.168.2.102:/home/grid /nfs_share/
  在h2上访问h1把/home/grid目录挂载到/ nfs_share/目录下
  drwx------.38 grid hadoop4096   12月   15 15:00 nfs_share
  切换到grid用户进入共享目录查看
  $ cd /nfs_share/
  -bash: cd: nfs_share/:权限不够
  报错啦,权限不够,这是为什么呢,经过了激烈的测试,发现是h1中/home/grid目录权限问题
  # chmod -R 777 grid   为了方便我直接给了全部权限,在h1上操作
  # mount 192.168.2.102:/home/grid/ /nfs_share/    在h2上重新挂载目录
  # su – grid               切换用户
  $ cd nfs_share/             ok我们现在可以畅通无阻了
  $ cd .ssh         没有问题进来啦,成功
  11.小测试
  测试什么呢,我们不是设置了共享目录嘛,我在h1的共享目录上创建一个11111111.txt文件,然后登陆h2的挂载点,看看能不能查询到
  h1   服务端
  # touch 11111111.txt
  # ll | grep 11111111.txt
  h2   客户端
  $ ll | grep 11111111.txt
  -rw-r--r--.1 root root          0    1月    27 14:27 11111111.txt
  12.设置开机后自动挂载nfs共享目录
  修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
  # vim /etc/fstab                     在最后添加这行命令
  192.168.2.102:/home/grid/nfs_share            nfs   defaults      1 1
  # cat /etc/fstab
  tmpfs                   /dev/shm                tmpfs   defaults      0 0
  devpts                  /dev/pts                devptsgid=5,mode=6200 0
  sysfs                   /sys                  sysfs   defaults      0 0
  proc                  /proc                   proc    defaults      0 0
  192.168.2.102:/home/grid/nfs_share            nfs   defaults      1 1
  现在NFS配置成功
  13.使用NFS共享密钥文件
  h2   客户端
  $ pwd
  /nfs_share/.ssh
  $ ln -s authorized_keys /home/grid/.ssh/authorized_keys
  这种方式可能会导致软链接文件符号链接的层次过多,创建失败,但会有文件名注意文件名是红色的,这是不正常的,避免的方法是都使用绝对路径
  还有另一种方法
  $ cd ~/.ssh/
  $ ln -s /nfs_share/.ssh/authorized_keys authorized_keys
  authorized_keys -> /nfs_share/.ssh/authorized_keys
  第一个authorized_keys指的是h2上的,第二个authorized_keys指的是h1上的,注意区分
  我们用h1的authorized_keys文件来创建h2上authorized_keys文件软链接
  注意如果原来h2上就有/home/grid/.ssh/authorized_keys文件需要先删除在创建
  rm -rf /home/grid/.ssh/authorized_keys
  我们在h2上看一下h1的authorized_keys文件内容
  $ cat /nfs_share/.ssh/authorized_keys
  我们在看看h2的软链接文件内容是不是已经链过去了
  $ cat authorized_keys
  看一模一样
  在H4节点上共享密钥文件
  h4
  # mkdir /nfs_share                      在根目标下创建挂载点
  # mount -t nfs 192.168.2.102:/home/grid /nfs_share/
  在h4上访问h1把/home/grid目录挂载到/ nfs_share/目录下
  # su – grid          切换到grid用户
  $ cd nfs_share/.ssh/   我们可以成功进入共享目录来访问h1中的文件
  修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
  # vim /etc/fstab
  tmpfs                   /dev/shm                tmpfs   defaults      0 0
  devpts                  /dev/pts                devptsgid=5,mode=6200 0
  sysfs                   /sys                  sysfs   defaults      0 0
  proc                  /proc                   proc    defaults      0 0
  192.168.2.102:/home/grid/nfs_share            nfs   defaults      1 1
  在最后添加红色字符串一行,这样在重启时系统就会自动挂载NFS共享目录
  $ cd ~/.ssh/      进入h4的.ssh目录
  $ rm -rf authorized_keys    发现原来存在authorized_keys文件顾删除
  $ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys
  authorized_keys -> /nfs_share/.ssh/authorized_keys软链接文件已经生成
  $ cat authorized_keys               查看软链接文件内容
  小结:通过对比我们知道h1的authorized_keys授权文件和h2 h4上的软链接文件内容都是一模一样的,到此我们就可以免密码连入了

页: [1]
查看完整版本: 生产环境下Hadoop大集群安装与配置+DNS+NFS-DavideyLee