centos7

ε祈祈猫儿з 提交于 2019-12-17 01:01:42

当前使用的是Oracle VM VirtualBox虚拟机软件

1.关闭防火墙

#第一步: 停止firewall
systemctl stop firewalld.service      
#第二步:禁止firewall开机启动
systemctl disable firewalld.service  
#第三步:查看防火墙状态
systemctl status firewalld.servic 
(systemctl status firewalld)

2.增加网卡
在这里插入图片描述
3.修改静态IP

cp /etc/sysconfig/network-scripts/ifcfg-enp0s3  /etc/sysconfig/network-scripts/ifcfg-enp0s8

vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

修改ifcfg-enp0s8内容如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
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和device都是enp0s8;(凭啥?因为先是动态获取,通过ifconfig查看出来的)
NAME=enp0s8
# 所有的网卡uuid不能重复
UUID=60188808-40f9-45d5-83af-4822aadc4711
DEVICE=enp0s8
ONBOOT=yes

# 配置我的ip地址(静态的)
IPADDR=192.168.56.104(这里192.168.56.是可以修改的,最后一位可以随便填写)

如果不知道静态ip前三位是什么,可以根据如下图片查找一下
在这里插入图片描述
4.修改主机名

hostnamectl set-hostname 主机名

5.搭建集群

#ip地址  对应的主机名
192.168.56.101 hadoop101
192.168.56.102 hadoop102
192.168.56.103 hadoop103

6.配置免密登录
生成公钥,私钥

ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到本地机器上

ssh-copy-id loaclhost

要是集群的话,每个服务器上都可按照这步操作 然后把每个服务器上的authorized_keys文件内容,复制到一个文件中 最后分发到各个服务器上
也可以按照文章–hadoop完全分布式(https://blog.csdn.net/weixin_45271668/article/details/103017845)
里的免密配置方法配置

7.安装jdk
上传压缩包:jdk-8u221-linux-x64.rpm
因为上传的jdk安装包是rpm,所以直接安装即可

yum -y install  jdk-8u221-linux-x64.rpm

查看jdk安装在哪了

代码--

whereis javac
ll /usr/bin/javac
ll /etc/alternatives/javac
cd /usr/java/jdk1.8.0_221-amd64/

在这里插入图片描述

8.安装mysql

  1. 下载安装包mysql-8.0.17-1.el7.x86_64.rpm-bundle
  2. 解压 安装包
tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle
  1. 安装
# 一定一定要进入到mysql rpm包所在的目录;
# 安装一下以mysql-community开头,以rpm结尾的几个包;(8个)
yum -y install mysql-community*.rpm
  1. 修改配置文件(/etc/my.cnf);建议先复制;
# 要把my.cnf配置文件复制家里面(/root,/home用户名)
cp /etc/my.cnf ~
  1. 启动服务
# 重启服务
service mysqld restart 
# 服务运行的状态
service mysqld status
  1. 查看密码
vim /var/log/mysqld.log

在这里插入图片描述
7) 登录mysql

mysql -u root -p
  1. 修改密码
#重置密码,所有的操作得先重置密码,要求
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
#修改密码
ALTER USER `root`@`%` IDENTIFIED WITH mysql_native_password BY 'Zy123456!' PASSWORD EXPIRE NEVER;
  1. navicat远程连接mysql
    在这里插入图片描述
    9.安装hadoop
    进入apache官网,查看hadoop的版本,下在tar包(这里使用的是3.2.1版本)
    解压tar包
tar -zxvf hadoop-3.2.1.tar.gz

修改配置文件
1.配置:hadoop-env.sh

修改

JAVA_HOME=/usr/ java/ jdk1.8.0 221- amd64

2.配置core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- 核心的hdfs协议访问方式
        董事会
     -->
	<property>
        <name>fs.defaultFS</name>
        <value>hdfs://jh</value>
    </property>
	
	<!-- 所有hadoop的存储目录 -->
	<property>
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/data/hadoop-${user.name}</value>
    </property>
    
    <!-- 告诉hadoop,zookeeper放哪了 -->
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value>
    </property>
</configuration>

3.配置 yarn-site.xml

<?xml version="1.0"?>
<configuration>
	<!-- 配置yarn -->
	<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>

    <!-- yarn开启ha -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!-- yarn董事会的名字 -->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>jh-yarn</value>
    </property>
    <!-- 董事会列表 -->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <!-- hostname,webapp-->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>hadoop101</value>
    </property>
     <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>hadoop101:8088</value>
    </property>
    <!-- 第二台 -->
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>hadoop102</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>hadoop102:8088</value>
    </property>
    <!-- zookeeper -->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>hadoop101:2181,hadoop102:2181,hadoop103:2181</value>
    </property>
</configuration>

4.配置hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- 副本数;默认3个 -->
	<property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

    <!-- 权限检查 -->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>

    <!-- dfs.namenode.name.dir:namenode的目录放的路径在hadoop.tmp.dir之上做了修改
		file://${hadoop.tmp.dir}/dfs/name

		dfs.datanode.data.dir:namenode的目录放的路径在hadoop.tmp.dir之上做了修改
		file://${hadoop.tmp.dir}/dfs/data
     -->
    <!-- 为nameservice起一个别名
        董事会
     -->
    <property>
        <name>dfs.nameservices</name>
        <value>jh</value>
    </property>
    
    <!-- 董事会的成员 -->
    <property>
        <name>dfs.ha.namenodes.jh</name>
        <value>nn1,nn2</value>
    </property>
    <!-- 配置每一个攻事会成员
        每一个配置的时候得有rpc(底层),http(上层==网页)
     -->
    <property>
        <name>dfs.namenode.rpc-address.jh.nn1</name>
        <value>hadoop101:8020</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.jh.nn1</name>
        <value>hadoop101:9870</value>
    </property>
    
    <!-- 第二个成员 -->
    <property>
        <name>dfs.namenode.rpc-address.jh.nn2</name>
        <value>hadoop102:8020</value>
    </property>
    <property>
        <name>dfs.namenode.http-address.jh.nn2</name>
        <value>hadoop102:9870</value>
    </property>
    
    <!-- journalnode:负责hadoop与zk进行沟通 -->
    <property>
        <name>dfs.namenode.shared.edits.dir</name>
        <value>qjournal://hadoop102:8485;hadoop103:8485;hadoop104:8485/jh</value>
    </property>
    
    <!-- 哪个类决定了自动切换
        哪个namenode是活着的(active)
     -->
    <property>
        <name>dfs.client.failover.proxy.provider.jh</name>
        <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    </property>
    
    <!-- journal的存储位置 -->
    <property>
        <name>dfs.journalnode.edits.dir</name>
        <value>/data/hadoop/data/journal/</value>
    </property>

    <!-- 大哥挂了,自动切换到二哥上
        启动故障转移
     -->
    <property>
        <name>dfs.ha.automatic-failover.enabled</name>
        <value>true</value>
    </property>

    <!-- (ssh免密码登录) -->
    <property>
        <name>dfs.ha.fencing.methods</name>
        <value>sshfence</value>
    </property>
    <property>
        <name>dfs.ha.fencing.ssh.private-key-files</name>
        <value>/root/.ssh/id_rsa</value>
    </property>
</configuration>

5.配置mapred-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<!-- yarn -->
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
    <!-- ctrl+shift+/ -->
   <!--  <property>
       <name>mapreduce.application.classpath</name>
       <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
   </property> -->
  
  <!-- 一旦启动了yarn,建议换成必须设置最大内存 -->
  <property>
    <name>mapreduce.map.memory.mb</name>
    <value>200</value>
  </property>
  <property>
    <name>mapreduce.map.java.opts</name>
    <value>-Xmx200M</value>
  </property>
  <property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>200</value>
  </property>
  <property>
    <name>mapreduce.reduce.java.opts</name>
    <value>-Xmx200M</value>
  </property>
</configuration>

如果vim打不开文件
执行

yum -y install vim

6.启动zookeeper

bin/zkServer.sh start

7.启动journalnode

bin/hdfs --daemon start journalnode

8.格式化namenode

bin/hdfs namenode -format

9.把刚才格式化后的元数据拷贝到另外一个namenode上

# 一定要进入到/data/hadoop/data中
scp -r hadoop-root/ node-2:`pwd`

10.启动namenode

sbin/hadoop-daemon.sh start namenode
bin/hdfs --daemon start namenode

11.在没有格式化的namenode上执行:

bin/hdfs namenode -bootstrapStandby

12.启动第二个namenode

sbin/hadoop-daemon.sh start namenode
bin/hdfs --daemon start namenode

13.在其中一个节点上初始化zkfc(一定要启动zookeeper)

bin/hdfs zkfc -formatZK

14.重新启动hdfs

sbin/stop-dfs.sh
sbin/start-dfs.sh
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!