马士兵老师是一位很棒的老师。。灰常感谢老师的课程分享。
(一)搭建Hadoop环境需要安装:VMware ,centos7 ,hadoop-2.7.3.jar jdk8 ,xshell ,Xftp(我用得WinSCP。。因为原来有,懒得再装xftp了~~)。
(二)虚拟机的安装与配置。
设置虚拟机网络前,先设置宿主机的VMware Network Adapter VMnet,打开网络共享中心-->更改适配器设置,IPv4处设置IP和子网掩码。
- 设置虚拟机中的网络设置
- vi /etc/sysconfig/network
NETWORKING=yes
GATEWAY=192.168.xx.1 #windows IP
- vi /etc/sysconfig/network-sripts/ifcfg-enp0s3 TYPE=Ethernet IPADDR=192.168.xx.100 #linux IP
- NETMASK=255.255.255.0
- 修改主机名hostnamectl set-hostname master (主机名千万不能有下划线哦!)
- 重启网络service network restart
- 检查ssh服务的状态 service network restart
- 互相ping,看是否测试成功,若不成功,注意防火墙的影响。关闭windows或虚拟机的防火墙。
systemctl stopfirewalld.service
systemctl disablefirewalld.service以后重启都不会自己启动
- 使用XShell登陆
检查ssh服务状态systemctlstatus sshd (service sshd status),验证使用XShell是否能登陆成功。
- 将hadoop和jdk通过WinSCP上传到虚拟机
- 安装JDK rpm -ivh ./xxxxx.jdk,验证rpm -qa | grep jdk,在命令行中敲java命令,确认jdk已经安装完成
jdk默认安装在/usr/java目录下
- 安装hadoop
cd /usr/local
tar –xvf ./hadoop-2.7.2.tar.gz
把目录修改为hadoop 使用命令mv hadoop-2.xx hadoop使其更简洁
修改hadoop-env.sh
vi hadoop-env.sh
修改exportJAVA_HOME 语句为export JAVA_HOME=/usr/java/default
把/usr/hadoop/bin和/usr/hadoop/sbin设到PATH中
vi /etc/profile
追加export PATH=$PATH:/usr/hadoop/bin:/usr/local/hadoop/sbin
source etc/profile
测试hadoop命令是否可以直接执行,任意目录下敲hadoop
- 关闭虚拟机(shutdown –h now) ,复制3份
- 修改主机名 hostnamectl set-hostname slave1
分别修改虚拟机的ip(同上)和hostname,
重启网络服务 service network restart
确认互相能够ping通,用ssh登陆,同时修改所有虚拟机的/etc/hosts,确认使用名字可以ping通
修改4台机器的vi /etc/hosts,让他们通过名字认识对方,测试一下互相用名字可以ping通。
192.168.xx.100 master
192.168.xx.101 slave1
192.168.xx.102 slave2
192.168.xx.103 slave3
####
master上文件名字都存在namenode 中,记录了文件存储在哪台机器上等等,通过namenode来管理datanode,
slave 中datanode存放数据。。是真正存储数据的机器。
启动hadoop
cd /usr/local/Hadoop/etc/Hadoop
其中core-site.xml配置master的信息。
Vi core-site
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
(三)启动namenode和datanode
master上首先需要格式化namenode,执行指令:
hdfs namenode -format
启动master上的namenode,在master上执行:
hadoop-daemon.sh start namonode
启动slave上的datanode,在每个slave上执行:
hadoop-daemon.sh start datanode
使用jps命令查看namenode和datanode的启动情况。
在master上使用hdfs dfsadmin –report命令观察集群配置情况
如果这个命令显示的是0个datanode 问题原因是centos 7防火墙关闭命令变化了,
使用centos 7最新的命令关闭并禁用防火墙后systemctl stop firewalld.service #停止,
systemctl disablefirewalld.service #禁用。重新格式化HDFS文件系统hadoop namenode -format,然后重新进入/sbin里 ./start-all.sh 重启Hadoop即可解决问题。(我是关闭防火墙之后就正常了)
另外有一种直观地反应集群配置情况的方式,通过web界面
netstat -ntlp
查看namenode起来后在哪些端口进行监听,使用http:masterIP:对外提供web端口就可以访问美美哒的web界面啦。
PS:笔记整理得有点乱~~~下次一定好好写吼吼吼~~