当前位置:   article > 正文

Centos7.6安装hadoop3.1.2、hive3.1.2、zookeeper3.6.2、hbase2.2.6_centos hadoop3.3.6

centos hadoop3.3.6

安装JDK
1、安装JDK
vi /etc/profile
#解压后添加如下内容,然后关闭shell,重新打开一个新shell

export JAVA_HOME=/usr/java/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  • 1
  • 2
  • 3

配置SSH免密登录
1、确认系统已经安装了 SSH

rpm -qa | grep openssh
rpm -qa | grep rsync
  • 1
  • 2

出现如下信息,则已经安装了SSH
在这里插入图片描述
如果没有安装 ssh 和 rsync,则通过下面的命令安装

yum install ssh 安装SSH协议
yum install rsync (rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件)
service sshd restart 启动服务
  • 1
  • 2
  • 3

master 机器上生成 秘钥对

ssh-keygen -t rsa
  • 1

在这里插入图片描述

拷贝和权限

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
  • 1
  • 2

注意:在slave1机创建目录

#root登录后
mkdir .ssh
  • 1
  • 2

复制公钥到slave1机、slave2机(此处root@192.168.95.133 ,root是slave1的登录用户名,192.168.95.133是这台机子的Ip)

scp .ssh/authorized_keys root@192.168.95.133:~/.ssh/authorized_keys
scp .ssh/authorized_keys root@192.168.95.134:~/.ssh/authorized_keys
  • 1
  • 2

可以测试一下:

#ssh 192.168.95.133
#exit

ssh 192.168.95.134
exit
  • 1
  • 2
  • 3
  • 4
  • 5

修改主机名

vi /etc/hosts
127.0.0.1 localhost
192.168.95.132 master
192.168.95.133 slave1
192.168.95.134 slave2
  • 1
  • 2
  • 3
  • 4
  • 5

复制这个配置到slave1和slave2机器(当前由于slave1机器还没有上一步的操作,只能用ip名复制)

scp -r  /etc/hosts root@192.168.95.133:/etc/hosts
scp -r  /etc/hosts root@192.168.95.134:/etc/hosts
  • 1
  • 2

Hadoop安装
1、下载Hadoop
Hadoop下载地址

解压并配置hadoop

cd /opt
tar -zxvf hadoop-3.1.2.tar.gz
  • 1
  • 2

配置hadoop的java home

vi /opt/hadoop-3.1.2/etc/hadoop/hadoop-env.sh
JAVA_HOME=/usr/java/jdk1.8.0_261
  • 1
  • 2

创建文件目录

mkdir /data
mkdir /data/hdfs
mkdir /data/hdfs/tmp
mkdir /data/hdfs/var
mkdir /data/hdfs/logs
mkdir /data/hdfs/dfs
mkdir /data/hdfs/data
mkdir /data/hdfs/name
mkdir /data/hdfs/checkpoint
mkdir /data/hdfs/edits
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

cd /opt/hadoop-3.1.2/etc/hadoop
修改 vi core-site.xml

<property>
  <name>fs.checkpoint.period</name>
  <value>3600</value>
</property>
<property>
  <name>fs.checkpoint.size</name>
  <value>67108864</value>
</property>
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
</property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>file:/data/hdfs/tmp</value>
</property>
<property>
  <name>hadoop.http.staticuser.user</name>
  <value>root</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

cd /opt/hadoop-3.1.2/etc/hadoop
修改vi hdfs-site.xml

<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>

<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/data/hdfs/name</value>
</property>

<property>
  <name>dfs.datanode.data.dir</name>
  <value>file:/data/hdfs/data</value>
</property>

<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>master:50090</value>
</property>

<property>
  <name>dfs.namenode.http-address</name>
  <value>master:50070</value>
  <description>
    The address and the base port where the dfs namenode web ui will listen on.
    If the port is 0 then the server will start on a free port.
  </description>
</property> 

<property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>/data/hdfs/checkpoint</value>
</property>

<property>
  <name>dfs.namenode.checkpoint.edits.dir</name>
  <value>/data/hdfs/edits</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

cd /opt/hadoop-3.1.2/etc/hadoop
修改vi mapred-site.xml

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
<property>
  <name>mapred.job.tarcker</name>
  <value>master:10020</value>
</property>
<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>master:19888</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

cd /opt/hadoop-3.1.2/etc/hadoop
修改vi yarn-site.xml

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master</value>
</property>

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property>
  <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandle</value>
</property>
<property>
  <name>yarn.resourcemanager.resource-tarcker.address</name>
  <value>master:8025</value>
</property>
<property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>master:8030</value>
</property>
<property>
  <name>yarn.resourcemanager.address</name>
  <value>master:8040</value>
</property>
<property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>master:8033</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>master:8088</value>
</property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

配置workers
cd /opt/hadoop-3.1.2/etc/hadoop
vi workers

slave1
slave2
  • 1
  • 2

配置可以使用root用户启动,如果使用非root用户安装的,可以不做此设置
cd /opt/hadoop-3.1.2/sbin
vi start-yarn.sh
vi stop-yarn.sh

在开头空白处添加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

vi start-dfs.sh
vi stop-dfs.sh

在开头空白处添加
HDFS_DATANODE_USER=root
HADOOP_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

把master上配置好的hadoop复制到slave1机器

scp -r /opt/hadoop-3.1.2 root@slave1:/opt/
scp -r /opt/hadoop-3.1.2 root@slave2:/opt/

  • 1
  • 2
  • 3

格式化hadoop

#先格式化(每台机器都做)
cd /opt/hadoop-3.1.2
bin/hdfs namenode -format
  • 1
  • 2
  • 3

在master启动hadoop

cd /opt/hadoop-3.1.2
sbin/start-all.sh
sbin/stop-all.sh
三台机器均使用以下命令查看
jps
  • 1
  • 2
  • 3
  • 4
  • 5

Hive安装
hive仅仅是一个客户端工具,不存在集群概念,因此安装的时候无需每台机器安装,哪个节点需要使用,就安装在哪个节点上。多个节点安装的时候mysql的元数据库一定要相同(即要在同一个mysql同一个库上),否则各个客户端获取的数据不一致

1、下载HIve
Hive下载地址

2、安装mysql
CentOS7安装MySQL8.0图文教程

解压master机器上 解压hive压缩包

cd /opt
tar -zxvf apache-hive-3.1.2-bin.tar.gz
  • 1
  • 2

进入到/conf目录,将hive-default.xml.template文件复制一份,并命名为hive-default.xml

新建hive-site.xml内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- ########################### hive的 JDBC连接 ############################ -->
    <!-- mysql 连接用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <!-- mysql 连接密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
    <!-- mysql 连接URL 如果hive和mysql在同一服务器上,使用localhost -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.95.135:3306/myhive</value>
    </property>
    <!-- mysql 连接驱动 -->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>

</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

复制hive-env.sh.template修改名称为hive-env.sh,添加如下内容

HADOOP_HOME=/opt/hadoop-3.1.2
export HIVE_CONF_DIR=/opt/apache-hive-3.1.2-bin/conf
export HIVE_AUX_JARS_PATH=/opt/apache-hive-3.1.2-bin/lib
  • 1
  • 2
  • 3

将mysql驱动包上传至hive的lib包下

初始化

cd /opt/apache-hive-3.1.2-bin/bin
./schematool -dbType mysql -initSchema
  • 1
  • 2

启动hive

cd /opt/apache-hive-3.1.2-bin/bin
./hive
  • 1
  • 2

hive启动成功后就会出现 hive> 这个符号,我们就可以开始测试hive了

hive> create database test;        # 创建test数据库
OK
Time taken: 0.069 seconds
hive> use test;                    # 进入test数据库
OK
Time taken: 0.068 seconds
hive> create table tt(id int);    # 创建表 tt
OK
Time taken: 1.886 seconds
hive> show tables;                # 查看test库中所有的表
OK
tt
Time taken: 0.093 seconds, Fetched: 1 row(s)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

zookeeper安装:

下载 zookeeper
官网下载地址:http://mirror.bit.edu.cn/apache/zookeeper/

上传下载文件至/opt并解压

#cd /opt
# tar -zxvf apache-zookeeper-3.6.2-bin.tar.gz
  • 1
  • 2

创建data 目录,在zookeeper 目录下创建data目录,存放数据

#mkdir /opt/apache-zookeeper-3.6.2-bin/data
  • 1

复制并重命名主配置文件

#cd /opt/apache-zookeeper-3.6.2-bin/conf
#cp zoo_sample.cfg zoo.cfg
  • 1
  • 2

配置zoo.cfg 文件

在这里插入图片描述

dataDir=/opt/apache-zookeeper-3.6.2-bin/data
server.0=192.168.95.132:2182:2183
server.1=192.168.95.133:2182:2183
server.2=192.168.95.134:2182:2183
  • 1
  • 2
  • 3
  • 4

上面红色框住的内容即是我们修改的内容:

①、tickTime:基本事件单元,这个时间是作为Zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,每隔tickTime时间就会发送一个心跳;最小 的session过期时间为2倍tickTime

②、dataDir:存储内存中数据库快照的位置,除非另有说明,否则指向数据库更新的事务日志。注意:应该谨慎的选择日志存放的位置,使用专用的日志存储设备能够大大提高系统的性能,如果将日志存储在比较繁忙的存储设备上,那么将会很大程度上影像系统性能。

③、client:监听客户端连接的端口。

④、initLimit:允许follower连接并同步到Leader的初始化连接时间,以tickTime为单位。当初始化连接时间超过该值,则表示连接失败。

⑤、syncLimit:表示Leader与Follower之间发送消息时,请求和应答时间长度。如果follower在设置时间内不能与leader通信,那么此follower将会被丢弃。

⑥、server.A=B:C:D

A:其中 A 是一个数字,表示这个是服务器的编号;

B:是这个服务器的 ip 地址;

C:Leader选举的端口;

D:Zookeeper服务器之间的通信端口。

我们需要修改的第一个是 dataDir ,在指定的位置处创建好目录。

第二个需要新增的是 server.A=B:C:D 配置,其中 A 对应下面我们即将介绍的myid 文件。B是集群的各个IP地址,C:D 是端口配置。

查看端口是否被占用

#netstat  -anp  |grep 2181
如果有listen字样则表示被占用
  • 1
  • 2

创建 myid 文件

在 上一步 dataDir 指定的目录下,创建 myid 文件

#cd /opt/apache-zookeeper-3.6.2-bin/data
#vi myid
132的文件内容为0
133的文件内容为1
134的文件内容为2
与zoo.cfg中的server数字相对应
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

复制master上配置好的zookeeper至slave节点

#scp -r /opt/apache-zookeeper-3.6.2-bin root@slave1:/opt/
#scp -r /opt/apache-zookeeper-3.6.2-bin root@slave2:/opt/
  • 1
  • 2

到slave服务器修改myid 文件

#vi /opt/apache-zookeeper-3.6.2-bin/data/myid
  • 1

分别三台机器,启动zookeeper服务

#cd /opt/apache-zookeeper-3.6.2-bin/bin
#./zkServer.sh start  启动
#./zkServer.sh stop 停止
#./zkServer.sh restart 重启
#./zkServer.sh status 查看集群节点状态
  • 1
  • 2
  • 3
  • 4
  • 5

hbase安装
hbase和hadoop存在版本依赖关系,所有安装之前请先确定好hbase和hadoop是否支持,具体版本支持关系可以到hbase官方页面上查看: https://hbase.apache.org/book.html#basic.prerequisites, 在页面中搜索: Hadoop version support matrix 即可。

与hadoop3.12匹配的hbase为HBase-2.2.x、HBase-2.3.x

HBASE的下载地址:
https://www.apache.org/dyn/closer.lua/hbase/

hbase安装单机版:
将压缩包复制到/usr/local
#tar -zxvf hbase-2.2.6-bin.tar.gz

3.配置hbase-env.sh,路径/usr/local/hbase-2.2.6/conf

#开启自带zk
export HBASE_MANAGES_ZK=true
#配置JAVA_HOME
export JAVA_HOME=XXX
  • 1
  • 2
  • 3
  • 4

4.配置hbase-site.xml

<configuration>
            <property>
                  <name>hbase.tmp.dir</name>
                  <value>/usr/local/hbase-2.2.6/hbaseData</value>
            </property>
            <property>
                    <name>hbase.rootdir</name>
                    <value>file:/usr/local/hbase-2.2.6</value>
            </property>
    </configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

创建目录/usr/local/hbase-2.2.6/hbaseData
#mkdir /usr/local/hbase-2.2.6/hbaseData

5.查看主机名(测试环境忽略)
hostname
6.在部署jar包机器上配置host(测试环境忽略)
/etc/hosts--------hbase主服务器 hbase主服务器hostname

7.启动hbase

#cd /usr/local/hbase-2.2.6/bin
#./start-hbase.sh
  • 1
  • 2

8.进入hbase–shell

#cd /usr/local/hbase-2.2.6/bin
#./hbase shell
  • 1
  • 2

hbase安装集群版:

将文件上传至/opt并解压

#cd /opt
#tar -zxvf hbase-2.2.6-bin.tar.gz
  • 1
  • 2

(1)修改hbase-env.sh
修改JAVA_HOME路径 /usr/local/java/jdk1.8.0_211
修改HBASE_MANAGES_ZK的值为false
#export HBASE_MANAGES_ZK=true,如果为true,表示hbase使用自带的zookeeper,这种只适合单机模式

(2)修改hbase-site.xml hbase的核心配置文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <!-- 指定zk的地址,多个用逗号分隔 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
      <value>master:2181,slave1:2181,slave2:2181</value>
  </property>
  <!-- hbase在hdfs上的存储路径 ip:port要和hadoop/core-site.xml中的fs.defaultFS保持一致 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:9000/hbase</value>
  </property>
  <!-- 指定hbase为分布式的 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
</configuration>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

修改regionservers文件,从节点的主机名

slave1
slave2
  • 1
  • 2

修改 backup-masters来指定备用的主节点

#cd /opt/hbase-2.2.6/conf
#vi backup-masters
内容为slave1
  • 1
  • 2
  • 3

复制master上配置好的hbase至slave节点

#scp -r /opt/hbase-2.2.6 root@slave1:/opt/
#scp -r /opt/hbase-2.2.6 root@slave2:/opt/
  • 1
  • 2

从master节点启动HBASE

#cd /opt/hbase-2.2.6/bin
#./start-hbase.sh
  • 1
  • 2

通过浏览器访问
http://192.168.95.132:16010

参考博客:
Hadoop hdfs完全分布式搭建教程
vmware 10 创建的centos7配置jdk.ssh免密 克隆机器
centos7配置hadoop3.1.2
centOS7搭建hadoop环境(非常详细!非常适合新手!)
CentOS7 Hive 安装
HIve的安装与配置
Hadoop中ssh+IP、ssh+别名免秘钥登录配置
namenode无法启动(namenode格式化失败)

CentOS7+Hadoop-3.2.0+MySQL5.7安装配置Hive-3.1.2
centos7下安装hive-3.1.2安装
CentOS7 Hive 安装

zookeeper 集群搭建
Zookeeper 3.6 集群安装

CentOS7 安装 hbase1.3.3
CentOS7服务器安装ZooKeeper3.6.2集群
centos7下安装HBase2.2.0 单机版本
CentOS7 Hbase 安装(完全分布式)
HBase(03)——HBase集群及集群搭建

Hive与HBase的区别与联系

Hive的概念、原理及其与Hadoop和数据库关系(图文讲解)
hadoop系列-hadoop版本选择

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/352753
推荐阅读
相关标签
  

闽ICP备14008679号