搭建环境在vmware中,操作系统为centos6.6,jdk1.8,hadoop版本为hadoop2.8.3,由于是学习环境,为了减少不必要的麻烦,账户均使用root
准备工作:
这里启动了三台虚拟机来模拟,主机名分别为master,slave1,slave2
1.分别在/etc/hosts中配置域名与ip映射,我的配置如下
c:/windows/system32/drivers/etc/hosts
2.分别配置静态ip
文件目录为/etc/sysconfig/network-scripts/ifcfg-eth0
,如下配置
IPADDR=192.168.142.11 #ip地址,3台分别配置相应ip
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.142.2 #网关
DNS1=114.114.114.114 #dns1
DNS2=8.8.8.8 #dns2
配置完毕后重启服务:service network restart
3.关闭防火墙
关闭防火墙:service iptables stop
关闭防火墙自启: chkconfig iptables off
4.安装jdk
hadoop需要jdk做支持,这里我使用的是jdk1.8,下载jdk.tgz包解压,并配置环境变量,输入java -version看到输出就说明配置成功,具体配置网上教程很多,这里就不叙述了.
5.安装scp命令,在openssh-clients这个包,并配置免密登录,免得使用scp传送文件或者ssh执行指令时需要输入密码
yum install openssh-clients
ssh-keygen #一路回车生成公钥和私钥
ssh-copy-id slave1 #将公钥发送到slave1
ssh-copy-id slave2 #将公钥发送到slave2
6.安装hadoop,我这里使用hadoop2.8.3
将hadoop解压 tar -zxvf hadoop-2.8.3.tar.gz -C ~/apps
7.配置相关配置文件
配置文件路径为:~/apps/hadoop-2.8.3/etc/hadoop/
修改hadoop-env.sh
vim hadoop-env.sh
找到export JAVA_HOME=你安装jdk时配置的java_home
修改core-site.xml,指定默认的namenode节点
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
configuration>
修改hdfs-site.xml 配置namenode和datanode生成路径和secondary的运行地址
dfs.namenode.name.dir
/root/hdfs/name
dfs.datanode.data.dir
/root/hdfs/data
dfs.namenode.secondary.http-address
slave2:50090
8.配置环境变量 /etc/profile,在最后追加
export JAVA_HOME=/root/apps/jdk1.8.0_60
export HADOOP_HOME=/root/apps/hadoop-2.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存后,使用source /etc/profile
,使配置生效
9.使用scp命令将上述复制到另外两台机器中
scp -r /root/apps/hadoop-2.8.3 slave1:/root/apps/
scp -r /root/apps/hadoop-2.8.3 slave2:/root/apps/
scp /etc/profile slave1:/etc/profile
scp /etc/profile slave1:/etc/profile
这样3台(1主2从)配置基本完毕
使用:
1.第一次使用,初始化namenode的元数据存储目录
hadoop namenode -format
2.在master上启动namenode
hadoop-daemon.sh start namenode
在浏览器中访问http://master:50070,出现hadoop页面,则启动成功
3.在三台中随意启动datnode(master上也可以启动)
hadoop-daemon.sh start datanode
刷新http://master:50070,发现datanode数由0变为3,启动成功
也可以输入jps查看,查看是否有namenode进程或datanode进程
4.这样一台一台启动比较麻烦,hadoop提供了批量启动
首先配置slave
vim ~/apps/hadoop-2.8.3/etc/hadoop/slaves #我这里配置了3个slave
master
slave1
slave2
使用start-dfs.sh启动整个集群
使用stop-dfs.sh关闭整个集群
由此一个简单的hadoop集群启动配置完毕。