马士兵-Hadoop环境的搭建

马士兵老师是一位很棒的老师。。灰常感谢老师的课程分享。


(一)搭建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:笔记整理得有点乱~~~下次一定好好写吼吼吼~~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值