CentOS7安装Hadoop和zookeeper的各种问题

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

虚拟机的安装

安装过程按照书上面来基本没有什么问题,需要注意的地方是:
选择启用网络和最小安装,还有设置root密码
(最小安装时没有图形界面,不过咱们也用不上)
CentOS7安装Hadoop和zookeeper的各种问题_第1张图片CentOS7安装Hadoop和zookeeper的各种问题_第2张图片
CentOS7安装Hadoop和zookeeper的各种问题_第3张图片

安装ifconfig

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

SSH连接进行操作

经过ifconfig得到IP地址后我们就可以用ssh来操作了,这样复制粘贴都还方便点。ssh连接的软件有很多,个人觉得Mobaxterm挺不错的。
CentOS7安装Hadoop和zookeeper的各种问题_第5张图片CentOS7安装Hadoop和zookeeper的各种问题_第6张图片
新建Session,填入IP地址和root,双击左边侧栏出现的选项就可以连接
CentOS7安装Hadoop和zookeeper的各种问题_第7张图片
左侧是目录,方便我们找到文件路径,也可以进行一些文件上传的操作(后面上传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,如图
    CentOS7安装Hadoop和zookeeper的各种问题_第8张图片
  • 将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查看
CentOS7安装Hadoop和zookeeper的各种问题_第9张图片
后面复制出5台虚拟机后,也要修改这里的HWADDR为实际值,还有DEVICE="eth0"NAME="eth0"也是要改的(eth1、eth2…)
修改完注意要重启虚拟机

  • 修改完IP地址后,Mobaxterm的ssh对应IP地址也要修改,VMware也要相应地修改:
    CentOS7安装Hadoop和zookeeper的各种问题_第10张图片
    CentOS7安装Hadoop和zookeeper的各种问题_第11张图片
    CentOS7安装Hadoop和zookeeper的各种问题_第12张图片

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.replicationname>
   <value>3value>
 property>
 <property>
   <name>dfs.nameservicesname>
   <value>myclustervalue>
 property>
 <property>
   <name>dfs.ha.namenodes.myclustername>
   <value>nn1,nn2value>
 property>
 <property>
   <name>dfs.namenode.rpc-address.mycluster.nn1name>
   <value>HAMaster001:9000value>
 property>
 <property>
   <name>dfs.namenode.rpc-address.mycluster.nn2name>
   <value>HAMaster002:9000value>
 property>
 <property>
   <name>dfs.namenode.http-address.mycluster.nn1name>
   <value>HAMaster001:50070value>
 property>
 <property>
   <name>dfs.namenode.http-address.mycluster.nn2name>
   <value>HAMaster002:50070value>
 property>
 <property>
   <name>dfs.namenode.shared.edits.dirname>
   <value>qjournal://HASlave001:8485;HASlave002:8485;HASlave003:8485/QJClustervalue>
 property>
 <property>
   <name>dfs.journalnode.edits.dirname>
   <value>/home/hadoop/software/hadoop-2.9.2/QJEditsDatavalue>
 property>
 <property>
   <name>dfs.ha.automatic-failover.enabledname>
   <value>truevalue>
 property>
 <property>
   <name>dfs.client.failover.proxy.provider.myclustername>
   <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvidervalue>
 property>
 <property>
   <name>dfs.ha.fencing.methodsname>
   <value>
       sshfence
       shell(/home/hadoop/software/hadoop-2.9.2/ensure.sh)
   value>
 property>
 <property>
   <name>dfs.ha.fencing.ssh.private-key-filesname>
   <value>/home/hadoop/.ssh/id_rsavalue>
 property>
 <property>
   <name>dfs.ha.fencing.ssh.connect-timeoutname>
   <value>30000value>
 property>
configuration>
  • core-site.xml
<configuration>
<property>
        <name>ha.zookeeper.quorumname>
        <value>HASlave001:2181,HASlave002:2181,HASlave003:2181value>
property>
<property>
        <name>hadoop.tmp.dirname>
        <value>/home/hadoop/software/hadoop-2.9.2/tmpvalue>
property>
<property>
        <name>fs.defaultFSname>
        <value>hdfs://myclustervalue>
property>
<property>
        <name>ipc.client.connect.retry.intervalname>
        <value>10000value>
property>
<property>
        <name>ipc.client.connect.max.retriesname>
        <value>100value>
property>
configuration>
  • yarn-site.xml
<configuration>

  
  <property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
  property>
  <property>
    <name>yarn.resourcemanager.ha.enabledname>
    <value>truevalue>
  property>
  <property>
    <name>yarn.resourcemanager.cluster-idname>
    <value>RMHAvalue>
  property>
  <property>
    <name>yarn.resourcemanager.ha.rm-idsname>
    <value>rm1,rm2value>
  property>
  <property>
    <name>yarn.resourcemanager.hostname.rm1name>
    <value>HAMaster001value>
  property>
  <property>
    <name>yarn.resourcemanager.hostname.rm2name>
    <value>HAMaster002value>
  property>
  <property>
    <name>yarn.resourcemanager.zk-addressname>
    <value>HASlave001:2181,HASlave002:2181,HASlave003:2181value>
  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

配置成功效果

CentOS7安装Hadoop和zookeeper的各种问题_第13张图片

One More Thing

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

你可能感兴趣的:(日常折腾)