CentOS7安装Hadoop和zookeeper的各种问题

最近在上大数据选修课,课程实验需要在CentOS上安装Hadoop和zookeeper,遇到了很多问题,记录一下。(原本准备从头写个完整的安装记录的,发现我实在是不想回头看一遍了,就记录一些需要注意的地方吧)
在这里插入图片描述

虚拟机的安装

安装过程按照书上面来基本没有什么问题,需要注意的地方是:
选择启用网络和最小安装,还有设置root密码
(最小安装时没有图形界面,不过咱们也用不上)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

安装ifconfig

启动系统后输入ifconfig没找到命令
输入yum install net-tools,根据提示输入y就安装完成了,注意安装软件得先切换为root用户。
这时可以输入ifconfig来查看IP地址和网卡名在这里插入图片描述
上面eth0192.168.153.101是我修改好的,刚刚装好的网卡应该是ensxx,比如我的是ens33,修改步骤看下面。

SSH连接进行操作

经过ifconfig得到IP地址后我们就可以用ssh来操作了,这样复制粘贴都还方便点。ssh连接的软件有很多,个人觉得Mobaxterm挺不错的。
在这里插入图片描述在这里插入图片描述
新建Session,填入IP地址和root,双击左边侧栏出现的选项就可以连接
在这里插入图片描述
左侧是目录,方便我们找到文件路径,也可以进行一些文件上传的操作(后面上传hadoop、jdk和zookeeper都可以在这里搞)

修改网卡名和IP地址

刚装好的CentOS7,网卡名称不是书上面说的eth0,所以很多同学改了ifcfg-eth0发现没用效果,所以我们要进行一些修改

  • 首先修改grub
    root用户下,输入
    vi /etc/sysconfig/grub,添加这两个参数,net.ifnames=0 biosdevname=0。如图:
    在这里插入图片描述
    :wq保存退出。
  • 输入grub2-mkconfig -o /boot/grub2/grub.cfg,如图
    在这里插入图片描述
  • 将ifcfg-ens33重命名为ifcfg-eth0
    我们先看一下/etc/sysconfig/network-scripts/下的文件
    在这里插入图片描述
    注意这里的ifcfg-ens33,你的可能是别的名称(跟ifconfig上面显示的一样)。
    重命名,输入
    mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
  • 修改eth0文件,输入
    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    修改为:
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="9f7ed09b-c21b-43e2-b089-688effe1d1fa"
HWADDR=00:0C:29:7E:73:B9
DEVICE="eth0"

ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.153.101
NETMASK=255.255.255.0
GATEWAY=192.168.153.2
DNS1=192.168.153.2

这里的HWADDR修改为你实际的值,通过ip addr查看
在这里插入图片描述
后面复制出5台虚拟机后,也要修改这里的HWADDR为实际值,还有DEVICE="eth0"NAME="eth0"也是要改的(eth1、eth2…)
修改完注意要重启虚拟机

  • 修改完IP地址后,Mobaxterm的ssh对应IP地址也要修改,VMware也要相应地修改:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

CentOS7关闭防火墙

CentOS7关闭防火墙的方式跟书上不一样
停止防火墙:systemctl stop firewalld
开机禁用防火墙:systemctl disable firewalld
查看防火墙状态:systemctl status firewalld

zookeeper安装

zookeeper启动后执行jps后发现没有QuorumPeerMain,可能是装的版本缺少了jar文件,也有可能是前面hadoop配置文件写错了,可以查看输出日志(就是那个xxx.out文件)

  • zookeeper推荐用3.4.14版本的
  • myid文件里面不能有空行

Hadoop配置文件

这里的主机名和hadoop文件路径可能有些人的不一样,要改成自己的

  • hdfs-site.xml

<configuration>
 <property>
   <name>dfs.replication</name>
   <value>3</value>
 </property>
 <property>
   <name>dfs.nameservices</name>
   <value>mycluster</value>
 </property>
 <property>
   <name>dfs.ha.namenodes.mycluster</name>
   <value>nn1,nn2</value>
 </property>
 <property>
   <name>dfs.namenode.rpc-address.mycluster.nn1</name>
   <value>HAMaster001:9000</value>
 </property>
 <property>
   <name>dfs.namenode.rpc-address.mycluster.nn2</name>
   <value>HAMaster002:9000</value>
 </property>
 <property>
   <name>dfs.namenode.http-address.mycluster.nn1</name>
   <value>HAMaster001:50070</value>
 </property>
 <property>
   <name>dfs.namenode.http-address.mycluster.nn2</name>
   <value>HAMaster002:50070</value>
 </property>
 <property>
   <name>dfs.namenode.shared.edits.dir</name>
   <value>qjournal://HASlave001:8485;HASlave002:8485;HASlave003:8485/QJCluster</value>
 </property>
 <property>
   <name>dfs.journalnode.edits.dir</name>
   <value>/home/hadoop/software/hadoop-2.9.2/QJEditsData</value>
 </property>
 <property>
   <name>dfs.ha.automatic-failover.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>dfs.client.failover.proxy.provider.mycluster</name>
   <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
 </property>
 <property>
   <name>dfs.ha.fencing.methods</name>
   <value>
       sshfence
       shell(/home/hadoop/software/hadoop-2.9.2/ensure.sh)
   </value>
 </property>
 <property>
   <name>dfs.ha.fencing.ssh.private-key-files</name>
   <value>/home/hadoop/.ssh/id_rsa</value>
 </property>
 <property>
   <name>dfs.ha.fencing.ssh.connect-timeout</name>
   <value>30000</value>
 </property>
</configuration>
  • core-site.xml
<configuration>
<property>
        <name>ha.zookeeper.quorum</name>
        <value>HASlave001:2181,HASlave002:2181,HASlave003:2181</value>
</property>
<property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/software/hadoop-2.9.2/tmp</value>
</property>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://mycluster</value>
</property>
<property>
        <name>ipc.client.connect.retry.interval</name>
        <value>10000</value>
</property>
<property>
        <name>ipc.client.connect.max.retries</name>
        <value>100</value>
</property>
</configuration>
  • yarn-site.xml
<configuration>

  <!-- Site specific YARN configuration properties -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.resourcemanager.ha.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.resourcemanager.cluster-id</name>
    <value>RMHA</value>
  </property>
  <property>
    <name>yarn.resourcemanager.ha.rm-ids</name>
    <value>rm1,rm2</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname.rm1</name>
    <value>HAMaster001</value>
  </property>
  <property>
    <name>yarn.resourcemanager.hostname.rm2</name>
    <value>HAMaster002</value>
  </property>
  <property>
    <name>yarn.resourcemanager.zk-address</name>
    <value>HASlave001:2181,HASlave002:2181,HASlave003:2181</value>
  </property>
</configuration>
  • hadoop-env.sh只需要改JAVA_HOME路径

启动顺序

  • 先启动三个slave,分别执行
    ~/software/zookeeper-3.4.14/bin/zkServer.sh start
  • 然后在任意一台Master执行
    start-dfs.sh
    start-yarn.sh

两台机器都是standby状态

在任意一台Master执行hdfs zkfc -formatZK,然后重新执行start-dfs.sh

配置成功效果

在这里插入图片描述

One More Thing

有些同学可能不习惯纯命令行的操作,也不习惯用vi或者vim来编辑文本,那就可以试试VSCode的Remote Development,可以直接用vscode来编辑文本,上传文件也可以直接拖进来。如图:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值