设为首页 收藏本站
查看: 892|回复: 0

[经验分享] 生产环境下Hadoop大集群安装与配置+DNS+NFS-DavideyLee

[复制链接]

尚未签到

发表于 2018-10-31 09:14:07 | 显示全部楼层 |阅读模式
  一环境
  Linux ISO:CentOS-6.0-i386-bin-DVD.iso     32位
  JDK version:"1.6.0_25-ea"   for  linux
  Hadoop software version:hadoop-0.20.205.0.tar.gz   for  linux
  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文件来解析主机名,现在可以不使用了直接删除即可,我呢直接改名吧,这样留着备用
  [root@h1 etc]# mv /etc/hosts /etc/hosts_20130126
  4.有的筒子使用了webmin软件GUI方式配置了DNS服务器,这种方式是挺方便的界面化人性化,但我用惯了命令行(码农的归宿)所以直接使用rpm方式来安装DNS了
  5.检查一下bind包有没有,这也是采用chroot机制
  [root@h1 ~]# rpm -q bind
  package bind is not installed
  [root@h1 ~]# rpm -q bind-chroot
  package bind-chroot is not installed
  这里显示还没有安装,那么我们就需要yum方式安装啦
  6.现在使用yum安装bind 和 bind-chroot 软件包
  [root@h1 ~]# yum -y install bind bind-chroot
  省略。。。。。。
  到此bind 和 bind-chroot包安装完成
  [root@h1 ~]# rpm -q bind
  bind-9.8.2-0.10.rc1.el6_3.6.i686
  [root@h1 ~]# rpm -q bind-chroot
  bind-chroot-9.8.2-0.10.rc1.el6_3.6.i686
  哈哈现在都已经安装好了
  7. yum install bind*还有三个包需要安装
  [root@h1 etc]# yum install bind*
  现在都安装完毕了
  8.修改named.conf文件,目录/etc/named.conf
  [root@h1 etc]# 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
  配置正向反向配置文件
  [root@h1 etc]# 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 文件
  [root@h1 etc]# cd /var/named          进入这个目录
  [root@h1 named]# cp -p named.localhost leonarding.com.zone
  [root@h1 named]# cp -p named.localhost 2.168.192.in-addr.zone
  对这2个文件进行修改,修改成新的文件,这2个文件就是区域文件,一定要写对了,否则会报错
  添加正向文件并且配置
  [root@h1 named]# vim leonarding.com.zone
  $TTL 86400
  @    IN    SOA  h1.leonarding.com. chizk.www.leonarding.com. (
  0 ; serial (d. adams)
  1D ; refresh
  1H ; retry
  1W ; expiry
  3H ) ; minimum
  @    IN    NS  h1.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
  添加反向文件并且配置
  [root@h1 named]# vim 2.168.192.in-addr.zone
  $TTL 86400
  @    IN    SOA  h1.leonarding.com. chizk.www.leonarding.com. (
  0 ; serial (d. adams)
  1D ; refresh
  1H ; retry
  1W ; expiry
  3H ) ; minimum
  @    IN    NS  h1.leonarding.com.
  102 IN PTR h1.leonarding.com.
  103 IN PTR h2.leonarding.com.
  105 IN PTR h4.leonarding.com.
  修改正向文件和反向文件属组,使用chgrp即可
  [root@h1 named]# chgrp named leonarding.com.zone
  [root@h1 named]# chgrp named leonarding.com.rev
  11.修改/etc/resolv.conf 添加DNS域名服务器ip
  h1(master)
  [root@h1 named]# vim /etc/resolv.conf
  nameserver 192.168.2.102          在最后面追加此条即可,就是我的master机器ip说明我们是把master机器作为DNS域名解析服务器,
  h2(slave)
  [root@h2 sysconfig]# vim /etc/resolv.conf
  nameserver 192.168.2.102
  h4(slave)
  [root@h4 .ssh]# vim /etc/resolv.conf
  nameserver 192.168.2.102
  添加DNS域名服务器ip,当有域名或主机名解析的时候,就知道去哪台机器上进行映射了
  12.启动DNS服务器
  [root@h1 named]# service named start
  启动  named:【确定】
  13.使用nslookup命令测试域名解析
  测试之前关闭防火墙
  [root@h1 named]# service iptables status
  Iptables:未运行防火墙
  正向解析域名->IP
  [root@h1 named]# 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
  [root@h1 named]# 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
  [root@h1 named]# 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->域名
  [root@h1 named]# 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.
  [root@h1 named]# 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.
  [root@h1 named]# 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命令做解析测试
  [root@h1 named]# host h2.leonarding.com
  h2.leonarding.com has address 192.168.2.103
  [root@h1 named]# 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包是否已经安装
  [root@h1 ~]# 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包是否已经安装
  [root@h1 ~]# rpm -qa | grep rpcbind
  rpcbind-0.2.0-8.el6.i686
  现在都已经安装到系统中了
  如果你的系统显示没有安装,可以使用yum install nfs-utils rpcbind  进行安装,然后配置
  5.我们查看一下NFS服务和rpcbind服务是否启动
  [root@h1 ~]# service nfs status
  rcp.svcgssd  已停
  rpc.mountd  已停
  nfsd        已停
  rpc.rquotad  已停                nfs已经停止了,我们现在应该启动nfs服务
  [root@h1 ~]# service rpcbind status
  rpcbind (pid  1431)  正在运行…….
  6.启动服务
  [root@h1 ~]# service nfs start
  启动NFS服务【确定】
  关掉NFS配额【确定】
  启动FNS守护进程【确定】
  启动NFS mountd                【确定】
  设置开机启动
  [root@h1 ~]# chkconfig nfs on
  [root@h1 ~]# chkconfig rpcbind on
  7.把/home/grid/目录设置为共享目录
  [root@h1 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用户只读)
  [root@h1 grid]# cat /etc/exports
  /home/grid *(sync,rw)
  8.重启rpcbind和nfs服务
  [root@h1 grid]# service rpcbind restart
  停止 rpcbind:【确定】
  正在启动rpcbind                  【确定】
  [root@h1 grid]# service nfs restart
  全部启动
  注意这里也要关闭防火墙设置
  9.输出本地挂载点(即master上的共享目录)
  [root@h1 grid]# showmount -e localhost
  Export list for localhost:
  /home/grid *
  解释:
  /home/grid       是NFS要共享的目录
  星号代表所有ip地址
  10.客户端h2 h4上配置
  登陆h2
  [root@h2 ~]# mkdir /nfs_share               在根目标下创建挂载点
  [root@h2 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/
  在h2上访问h1把/home/grid目录挂载到/ nfs_share/目录下
  drwx------.  38 grid hadoop  4096   12月   15 15:00 nfs_share
  切换到grid用户进入共享目录查看
  [grid@h2 ~]$ cd /nfs_share/
  -bash: cd: nfs_share/:  权限不够
  报错啦,权限不够,这是为什么呢,经过了激烈的测试,发现是h1中/home/grid目录权限问题
  [root@h1 home]# chmod -R 777 grid     为了方便我直接给了全部权限,在h1上操作
  [root@h2 /]# mount 192.168.2.102:/home/grid/ /nfs_share/    在h2上重新挂载目录
  [root@h2 /]# su – grid                 切换用户
  [grid@h2 /]$ cd nfs_share/             ok我们现在可以畅通无阻了
  [grid@h2 nfs_share]$ cd .ssh           没有问题进来啦,成功
  11.小测试
  测试什么呢,我们不是设置了共享目录嘛,我在h1的共享目录上创建一个11111111.txt文件,然后登陆h2的挂载点,看看能不能查询到
  h1   服务端
  [root@h1 grid]# touch 11111111.txt
  [root@h1 grid]# ll | grep 11111111.txt
  h2   客户端
  [grid@h2 nfs_share]$ ll | grep 11111111.txt
  -rw-r--r--.  1 root root          0    1月    27 14:27 11111111.txt
  12.设置开机后自动挂载nfs共享目录
  修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
  [root@h2 ~]# vim /etc/fstab                     在最后添加这行命令
  192.168.2.102:/home/grid  /nfs_share            nfs     defaults        1 1
  [root@h2 ~]# cat /etc/fstab
  tmpfs                   /dev/shm                tmpfs   defaults        0 0
  devpts                  /dev/pts                devpts  gid=5,mode=620  0 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   客户端
  [grid@h2 .ssh]$ pwd
  /nfs_share/.ssh
  [grid@h2 .ssh]$ ln -s authorized_keys /home/grid/.ssh/authorized_keys
  这种方式可能会导致软链接文件符号链接的层次过多,创建失败,但会有文件名注意文件名是红色的,这是不正常的,避免的方法是都使用绝对路径
  还有另一种方法
  [grid@h2 .ssh]$ cd ~/.ssh/
  [grid@h2 .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文件内容
  [grid@h2 .ssh]$ cat /nfs_share/.ssh/authorized_keys
  我们在看看h2的软链接文件内容是不是已经链过去了
  [grid@h2 .ssh]$ cat authorized_keys
  看一模一样
  在H4节点上共享密钥文件
  h4
  [root@h4 ~]# mkdir /nfs_share                      在根目标下创建挂载点
  [root@h4 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/
  在h4上访问h1把/home/grid目录挂载到/ nfs_share/目录下
  [root@h4 ~]# su – grid          切换到grid用户
  [grid@h4 /]$ cd nfs_share/.ssh/   我们可以成功进入共享目录来访问h1中的文件
  修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点
  [root@h4 ruby]# vim /etc/fstab
  tmpfs                   /dev/shm                tmpfs   defaults        0 0
  devpts                  /dev/pts                devpts  gid=5,mode=620  0 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共享目录
  [grid@h4 .ssh]$ cd ~/.ssh/      进入h4的.ssh目录
  [grid@h4 .ssh]$ rm -rf authorized_keys    发现原来存在authorized_keys文件顾删除
  [grid@h4 .ssh]$ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys
  authorized_keys -> /nfs_share/.ssh/authorized_keys  软链接文件已经生成
  [grid@h4 .ssh]$ cat authorized_keys               查看软链接文件内容
  小结:通过对比我们知道h1的authorized_keys授权文件和h2 h4上的软链接文件内容都是一模一样的,到此我们就可以免密码连入了


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-628762-1-1.html 上篇帖子: Hadoop入库mysql-kendy 下篇帖子: hadoop之MapReduce自定义二次排序流程实例详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表