上周末参加了开源中国的会议,现在最热的果然还是云计算、大数据啊。之前也在断断续续的看hadoop方便的资料,这两天终于把hadoop集群跑起来了。下面总结下笔记:1,安装一台linux虚拟机,我安装的是一台32位的CentOS6.5,虚拟机基本信息为:
主机名:burns1,普通用户:burns1,超级用户root
2,配置网络:
为了方便操作,建议使用“仅主机(Host-Only)适配器”模式,不过由于我自己的虚拟机软件版本有问题,采用的是桥接模式:
a),我物理机的ip信息为:ip:192.168.1.161,子网掩码:255.255.255.0,网管192.168.1.1
b),虚拟机burns1的信息配置为:ip:192.168.1.191,子网掩码:255.255.255.0,网管192.168.1.1
c),重启网卡,启用配置的网络:service network restart
4),用物理机和虚拟机互相ping以下,确保连通
使用桥接或者nat模式联网的时候,系统不会自动联网,解决办法如下:
/etc/sysconfig/network-scripts/目录下ifcfg-eth0这个文件,把ONBOOT="no"改为yes,下一次就不用手动连接了。
3,配置hosts文件:
编辑虚拟机enlu1的/etc/hosts文件,增加如下内容:
192.168.1.191 burns1
192.168.1.192 burns2
192.168.1.193 burns3
192.168.1.194 burns4
192.168.1.195 burns5
4,禁用防火墙:
查看防火墙状态:service iptables status
禁用防火墙:service iptables stop
禁用防火墙随机启动:chkconfig iptables off
5,安装jdk
因为操作系统是32位的,所以下载32位版本的jdk1.7: jdk-7u67-linux-i586.rpm
安装:rpm -ivh jdk-7u67-linux-i586.rpm
配置环境变量:
vi /etc/profile在最后添加如下内容:
JAVA_HOME=/usr/java/jdk1.7.0_65
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
启用环境变量:
source /etc/profile
6,从burns1虚拟机克隆4份,分别作为burns2,burns3,burns4,burns5
clone完成后:a),将这4个虚拟机的ip地址分别配置为1921.68.1.192到192.168.1.195;
b),将这4个虚拟机的主机名分别命名为:burns2到burns5;
c),配置方式:vi /etc/sysconfig/network,更改其中的HOSTNAME值
d),将这4个虚拟机的用户名分别命名为:burns2到burns5;
1)删除原来的用户和用户组burns1,
删除方法:
userdel burns1
groupdel burns1
2)新增相应的用户和用户组burns(2-5) ,用户和用户组名称一致即可,
创建方法如下(以虚拟机burns2为例子):
useradd -g burns2 burns2
passwd burns2
7,配置ssh,免密码登录
在burns1上,执行:ssh-keygen –t rsa,
然后:cd ~/.ssh 差看文件ls 查看到两个文件
ssh-copy-id –i burns2 复制公钥到对方burns2的节点上同理执行命令复制公钥到burns3/lburns4/burns5/lburns6上,然后再在burns2上执行命令ssh-keygen –t rsa 将公钥复制到burns1/burns3/burns4/burns5/burns6上
8,配置hadoop
省略
9,配置完毕后,将hadoop从burns1拷贝到其他机器上burns2到burns5
scp /usr/hadoop2 burns2:/usr/
.....
10,启动hadoop,
首先启动journalnode集群 分别在burns1,burns2,burns3上执行命令sbin/hadoop-daemon.sh start journalnode(注意这里我们没有配置hadoop的环境变量所以要cd /usr/local/hadoop2下执行这个命令)
格式化namenode和启动namenode
在burns1上执行bin/hdfs namenode –format
在burns1上分别执行sbin/hadoop-daemon.sh start namenode
在burns2上执行hadoop/bin/hdfs namenode –bootstrapStandby
在burns2上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
在burns1上执行hadoop/bin/hdfs haadmin -failover --forceactive burns2 burns1
上面的命令为啥不一样呢?(因为我们在启动namenode的时候namenode一个是主运行节点,一个是备用的节点,所以需要俩个不同的命令来执行)下面的hadoop/bin/hdfs haadmin -failover --forceactive burns1 burns2这个命令其实在burns1和burns2上随便那个上面执行都可以,这个是将burns2设置为主运行节点,将burns1设置为备用节点,可以在浏览器中开启俩个页面分别输入burns1:50070 和burns2:50070发现burns2是active 而burns1还是standby
启动datanode
在burns1上分别执行sbin/hadoop-daemons.sh start datanode
启动resourcemanager和nodemanager
在burns1上执行 hadoop/sbin/start-yarn.sh start resourcemanager
在这个命令执行之后nodemanager自动启动了
要查看nodemanager在浏览器中输入 burns1:8088 resourcemanager和nodemanager的端口号是8088
|
|