KickStart安装CentOS,同时安装和配置hadoop

声明:这篇文章是前面是拾人牙慧,我是结合 http://www.111cn.net/sys/linux/59969.htm 和 http://www.cnblogs.com/mchina/p/centos-pxe-kickstart-auto-install-os.html 两篇博客写的。

后面关于IP的部分是自己的

一:系统环境

  实验平台:win7,VMware 12.0.0 build-2985596

  要安装的系统:CentOS 6.7 64位

  要安装的软件:hadoop 1.2.1,java

  假设每台机器的网卡都是eth0

二:实验步骤

  1.在VMware上先安装一个CentOS 6.7 64,网络采用桥接模式;这台机器是DHCP服务器,HTTP服务器,TFTP服务器一体的;这里假设它的IP是192.168.0.57,并且为了方便,我把这台机器叫server,下面所有的配置都是在server上进行的。

  2.关闭server的防火墙和selinux

    service iptables stop     #临时关闭防护墙

    setenforce 0                 #临时关闭selinux

  3.安装并配置http服务

    yum -y install httpd               #安装httpd

    /etc/init.d/httpd start            #启动http服务

    mkdir -p /var/www/html/       #http服务默认的根目录就是这个文件夹,如果没有的话就新建

    http服务默认的端口是80,可以在 /var/www/html/中随便放一个文件如test.txt ,然后在浏览器中输入 http://192.168.0.57:80/test.txt 看看是否显示

  4.挂载Centos的ISO文件

    使用任何方法找一个CentOS的ISO文件,我用的是CentOS-6.7-x86_64-bin-DVD1.iso,把它放入server中某一个位置,我放在 /root 文件夹中(因为是用root操作server的)

    mkdir -p /var/www/html/os                        #新建一个os文件夹用来存放ISO中的所有文件

    mount -t iso9660 -o loop /root/CentOS-6.7-x86_64-bin-DVD1.iso /var/www/html/os     #把ISO挂载到os文件夹下

    cd /var/www/html/os & ll           #看看是否挂载成功

  5.配置TFTP服务

    yum -y install tftp-server

    修改配置文件:/etc/xinetd.d/tftp    

service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no                         #修改的是这行,原来是yes,改为no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

    /etc/init.d/xinetd restart           #因为tftp服务是挂载在超级进程xinetd 下的,所以通过启动xinetd 来启动tftp服务。

  6.配置DHCP服务

    yum -y install dhcp

    cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf               #注意这里的4.1.1是dhcp的版本,可能会不一样

    修改/etc/dhcp/dhcpd.conf 配置文件,内容如下:    

ddns-update-style interim;
ignore client-updates;
filename "pxelinux.0";         #pxelinux 启动文件位置;
next-server 192.168.0.57;  #这里是server的IP地址

subnet 192.168.111.0 netmask 255.255.255.0 {

        option routers                  192.168.0.57;    #这里还是server的IP地址
        option subnet-mask              255.255.255.0;

        range dynamic-bootp 192.168.0.2 192.168.0.200;   #这是分配的IP地址的范围
        default-lease-time 21600;
        max-lease-time 43200;
}

    /etc/init.d/dhcpd start    #启动DHCP服务

  7.配置支持PXE的启动程序

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

    cp /var/www/html/cdrom/images/pxeboot/initrd.img  /var/lib/tftpboot/

    cp /var/www/html/cdrom/images/pxeboot/vmlinuz  /var/lib/tftpboot/

    cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/

    mkdir /var/lib/tftpboot/pxelinux.cfg

    vi /var/lib/tftpboot/pxelinux.cfg/default    #default中的所有内容如下,    

default ks     #默认启动的是 ‘label ks‘ 中标记的启动内核
prompt 1          #显示 ‘boot: ‘ 提示符。为 ‘0‘ 时则不提示,将会直接启动 ‘default‘ 参数中指定的内容。
timeout 6      #在用户输入之前的超时时间,单位为 1/10 秒。
display boot.msg  #显示某个文件的内容,注意文件的路径。默认是在/var/lib/tftpboot/ 目录下。也可以指定位类似 ‘/install/boot.msg‘这样的,路径+文件名。
F1 boot.msg     #按下 ‘F1‘ 这样的键后显示的文件。
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux       #‘label‘ 指定你在 ‘boot:‘ 提示符下输入的关键字,比如boot: linux[ENTER],这个会启动‘label linux‘ 下标记的kernel 和initrd.img 文件。
  kernel vmlinuz  #kernel 参数指定要启动的内核。
  append initrd=initrd.img #append 指定追加给内核的参数,能够在grub 里使用的追加给内核的参数,在这里也都可以使用。
label text
  kernel vmlinuz
  append initrd=initrd.img text
label ks
  kernel vmlinuz
  append ks=http://192.168.0.57/ks.cfg initrd=initrd.img    #告诉系统,从哪里获取ks.cfg文件 ,这里的IP是server的IP
label local
  localboot 1
label memtest86
  kernel memtest
  append -

  8.安装Kickstart并配置ks.cfg文件

    yum install system-config-kickstart

    如果已经安装了X Windows 和Desktop,或者就是在图形环境中操作的server,那么运行命令

    system-config-kickstart    #启动图形界面,配置ks.cfg

    如果没有图形界面,那也无所谓,自己生成个ks.cfg也可以。

    按照下面的图形一步步来,最后 File  -> Save 保存到 /var/www/html/文件夹下,文件名是ks.cfg

    

    

    

    

    

    

    

    

    

    

  到这里server的所有配置项已经好了

10. 实验

  再用VMware新建一个空白硬盘的虚拟器,网络还是桥接模式,启动之后会看到屏幕有一行DHCP:/ 然后就进入安装了

关于IP,在hadoop集群中有N多台机器,我需要知道它们的IP并把它们设置到DNS服务器中去,那么我们就需要一个方法收集所有机器的IP!另外每台机器的IP都应该是固定的,不应该是通过DHCP动态获得的!

1.关于收集IP,我一个思路,在server上配置NFS,假设把/ips文件夹共享出去,在每台机器上mount这个文件夹,同时在里面新建一个文件,文件的名称就是该台机器的IP

2.设置静态IP,这个只能通过修改/etc/sysconfig/network-scripts/ifcfg-eth0来进行

还记得上面第9步的最后一幅图吗?他是设置 Post-Installation Script,那么我们就可以写一个脚本,来实现上面的1,2两步,把下面的脚本拷贝到Post-Installation Script中去,当然该脚本还实现了其他功能,我都有注释。

其他功能包括添加hadoop用户,远程下载hadoop和java,配置PATH,mount hadoop的master服务器的公钥,配置dns,(如果用nfs分享hadoop的配置文件,下面也有)。

#declare -i number=$RANDOM*100/32768         #这两行我注释了,如果集群很大的话,最好取消注释。因为下面很多操作会访问http服务器,如果集群很大同时访问的话,http服务器可能会爆掉,所以先让主线程休眠随机的秒数再开始进行下面的工作
#sleep ${number}                  

NFS_SERVER_ID=192.168.0.57                   #不是说要用NFS吗?这里就是NFS服务器的地址
NFS_SERVER_PATH_IPS=/ips             #NFS服务器共享出去的文件夹,这个文件夹的作用是存放名称就是各台机器IP的文件NFS_SERVER_PATH_HADOOP_CONF=/conf            #干脆hadoop的配置文件也有NFS服务器提供吧^_^。这个文件夹的作用是存放hadoop的所有配置文件,不过这样做其实增大了风险,如果NFS服务器挂了。。。NFS_SERVER_PATH_SSH=/ssh             #要用NFS共享hadoop的master的公钥,这个文件夹的作用是存放master的公钥
PXE_URL=http://192.168.0.57           #http服务器的地址,我这里还提供了hadoop 和 java的下载; 还记得上面有个文件夹/var/www/html吗?把hadoop和java的gz压缩文件都放在/var/www/html下面就可以了
ROOT_DIR=/opt/modules               # hadoop和java的安装地址
DNS=192.168.0.116                            #大型集群肯定用DNS服务器啦,这个是DNS服务器的地址

#yum -y install rpcbind nfs-utils            #每个datanode也是NFS的一个客户端,得装上客户端软件,我把这一行注释了,因为在生成ks.cfg文件时,在 Package Selection时可以选择 Servers -> NFS file server
/etc/init.d/rpcbind start            #就算是NFS的client,也得启动这两个服务
/etc/init.d/nfslock start
chkconfig rpcbind on                         #开机启动,要不然hadoop就没有conf文件了!!!
chkconfig nfslock on
useradd hadoop                               #添加一个用户 hadoop
echo ‘123456‘ | passwd --stdin hadoop        #把hadoop用户的密码设置为 123456

mkdir -p ${ROOT_DIR}               #新建hadoop和java的安装根目录
cd ${ROOT_DIR}                   #进入安装根目录
#get hadoop and java
wget "${PXE_URL}/jdk-7u79-linux-x64.tar.gz" "${PXE_URL}/hadoop-1.2.1.gz"       #从http服务器上下载hadoop和java
tar -xf jdk-7u79-linux-x64.tar.gz             #解压hadoop
tar -xf hadoop-1.2.1.gz                       #解压java
chown -R hadoop ${ROOT_DIR}                    #把安装根目录下的所有文件和文件夹的所有者改成hadooprm -rf ${ROOT_DIR}/hadoop-1.2.1/conf/*         #把hadoop现有的配置文件先都删除了mount -t nfs ${NFS_SERVER_ID}:${NFS_SERVER_PATH_HADOOP_CONF} ${ROOT_DIR}/hadoop-1.2.1/conf/   #把远程的hadoop配置文件mount到本地

ROUTE=$(route -n|grep "^0.0.0.0"|awk ‘{print $2}‘)                                             #一直到下面的红色的EOF都是设置静态IP,同时还设置了DNS
BROADCAST=$(/sbin/ifconfig eth0|grep -i bcast|awk ‘{print $3}‘|awk -F":" ‘{print $2}‘)
HWADDR=$(/sbin/ifconfig eth0|grep -i HWaddr|awk ‘{print $5}‘)
IPADDR=$(/sbin/ifconfig eth0|grep "inet addr"|awk ‘{print $2}‘|awk -F":" ‘{print $2}‘)
NETMASK=$(/sbin/ifconfig eth0|grep "inet addr"|awk ‘{print $4}‘|awk -F":" ‘{print $2}‘)
cat >/etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
BOOTPROTO=static
BROADCAST=$BROADCAST
HWADDR=$HWADDR
IPADDR=$IPADDR
NETMASK=$NETMASK
GATEWAY=$ROUTEroo
ONBOOT=yes
DNS1=$DNS
EOF
mkdir -p /ips
mount -t nfs ${NFS_SERVER_ID}:${NFS_SERVER_PATH_IPS} /ips  #把NFS远程文件夹mount到本地
touch /ips/${IPADDR}                                      #在远程文件夹中新建一个文件,文件名称就是该机器的IP,那么在NFS服务器中就收集了整个集群的所有机器的IP
echo "export JAVA_HOME=${ROOT_DIR}/jdk1.7.0.79" >> /home/hadoop/.bash_profile                           #这三行只是为了操作java和hadoop时方便,也可以不要
echo "export HADOOP_HOME=${ROOT_DIR}/hadoop-1.2.1" >> /home/hadoop/.bash_profile
echo "export PATH=\${JAVA_HOME}/bin:\${HADOOP_HOME}/bin:\${HADOOP_HOME}/sbin:\${PATH}"   >> /home/hadoop/.bash_profile

service network restart                                  #重新启动网络服务,或者这里直接reboot也可以,反正是在装系统,装系统时重启不是很正常吗

  

时间: 2024-08-03 15:21:59

KickStart安装CentOS,同时安装和配置hadoop的相关文章

vm virtualbox 虚拟安装centos,安装nginx,mysql,PHP,及网络配置

在自己得电脑虚拟机上安装centos之后一般是不会连接到外网的此时使用yum无法安装gcc,gcc++等编译软件,那么就没法编译安装 apache.mysql,此时需要更改 网路配置文件. 在虚拟机里设置 网路1为 网路地址转换NAT而非NAT模式, 网路2为桥接模式. vi /etc/sysconfig/network-scripts/ifcfg-eth0 在里面做如下配置 DEVICE=eth1            //网卡名    ONBOOT=yes            //启动  

使用kickstart实现CentOS自动化安装--我的学习记录

简单介绍: 本次所记录的学习内容是,通过anaconda程序读取kickstart配置文件来实现CentOS的自动化安装.作为学习运维的人员,我觉得学会这项技能是非常必要的. kickstart配置文件的组成: (自行查看 /boot/anaconda-ks.cfg) 命令段:设置一些基本功能(时区,键盘类型等) 程序包段:指明要安装的程序包或者包组(包组名用@开头) 脚本段: %pre :安装前脚本:此时linux环境不完整,因此脚本应该设置较为简单. %post:安装后脚本:此时linux环

在VM上安装centOS后的网络配置

花了点时间,研究了下VM上的linux虚拟机的网络配置问题.1.环境主机:winXP SP2,家庭宽带,局域网连到路由器,ip地址为192.168.1.101. 虚拟机:centOS(redhat linux的开源免费版本),纯文本模式. 在VM安装了了CentOS后,发现在主机上多了两个网络连接:VMNet1和VMNet8.每个网络连接都设有ip地址和子网掩码.VMNet1的是:192.168.229.1/255.255.255.0VMNet8的是:192.168.30.1/255.255.2

VMware 下安装centos 6.5 网络配置

由于我的centos是采用克隆出来的 所以先删掉eth1 网卡 vi /etc/udev/rules.d/70-persistent-net.rules 修改正确网卡地址  配置正确IP vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet UUID=830ca935-8ddd-40a7-92cc-3bb957930242 ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=none

VMware安装CentOS 7后,配置网络连接

解决办法: 1,在VMware工具栏选择“编辑”选项,选择“虚拟网络编辑器”, 2,以root权限编辑/etc/sysconfig/network-scripts/ifcfg-eno16777736这个文件 参数说明: BOOTPROTO=static  #设置静态Ip ONBOOT=yes  #这里如果为no的话就改为yes,表示网卡设备自动启动    GATEWAY=192.168.10.2    # 这里的网关地址就是第二步获取到的那个网关地址 IPADDR=192.168.10.150 

在VMware安装Centos再安装Oracle数据库(个人学习使用)

打开VMware 选择稍后安装 自定义安装 小生安装的是64位的Centos 给虚拟机设置名称和安装位置 设置虚拟机打处理器并分配内存(oracle12G我建议内存为2G以上) 网络类型选择仅主机模式 按推荐来,创建新的虚拟磁盘 磁盘大小设为40G,不要太小,会有错误.指定磁盘文件路径 选择自定义硬件,将Centos ISO镜像文件挂载上 启动虚拟机,进入Centos安装界面 跳过检测 选择英文 键盘格式为英文 选择YES,清空数据 点击Configure Network 设置System et

PXE自动化安装centos系统

PXE自动化安装centos系统 ①安装前准备:关闭防火墙和SELINUX,DHCP服务器静态IP iptables -vnL #查看防火墙状态 systemctl stop firewall #关闭防火墙 getenforce #查看SELinux状态 setenforce 0 #禁用SELinux cat > /etc/sysconfig/network-scripts/ifcfg-ens37 <<EOF DEVICE=ens37 #网卡名称 ONBOOT=yes #开启网卡 BOO

关于uefi的机器win8下安装CentOS双系统

在老机器上win7上装过ubuntu,可以直接用easyBCD,无需U盘,顺利S装上. 这次在win8下无法使用easyBCD,上网搜索,搜到需要用rEFInd这个软件. 安装方法: 下载地址:http://refit.sourceforge.net/#download windows下安装 下载压缩包后解压,然后桌面左下角右键打开一个命令提示符(管理员),运行 mountvol S: /S  ----将EFI系统分区映射到S盘 cd 转到rEFInd解压目录 xcopy /E refind S

在虚拟机上安装centos

摘自<跟阿铭学linux> 安装虚拟机 当前流行的虚拟机有好多种,阿铭用的是vmware虚拟机.目前最新版本已经到版本v9.0了,但阿铭一直在使用v6.0.1, 如果你不想去下载最新版,那直接使用阿铭提供的链接下载v6.0.1吧,下载地址(含注册机):点这里 下载后安装一下vmware6.0.1, 安装完后需要输入注册码才可以使用,阿铭提供的注册机很好用,直接生成一个即可.近期发现,很多朋友反馈这个6版本的虚拟机不能顺利安装centos,所以阿铭再提供一个10.0的版本,下载地址是http:/

centos 7 安装笔记

已经记不清楚这是第几次安装LINUX 了,从最早的TURBOLINUX开始接触LINUX,再到RED HAT,DIBIAN,UBUNTU,GENTOO,CENTOS,RHEL.我不知道LINUX为什么这样吸引我,每换一台电脑或者换个环境,就想着安装上LINUX.如果时间充裕,就会安装上GENTOO,经历着它那种定制式的编译过程,就象过足了瘾一样,不然就安装一些好安装的,如CENTOS.每一次安装,都是不小的折腾,安装系统.配置网络.安装桌面.安装显卡(尤其是笔记本上杂交显卡ATI)驱动.虚拟机.