Centos7.6安装hadoop3.1.2、hive3.1.2、zookeeper3.6.2、hbase2.2.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

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

rpm -qa | grep openssh
rpm -qa | grep rsync

出现如下信息,则已经安装了SSH
Centos7.6安装hadoop3.1.2、hive3.1.2、zookeeper3.6.2、hbase2.2.6_第1张图片
如果没有安装 ssh 和 rsync,则通过下面的命令安装

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

master 机器上生成 秘钥对

ssh-keygen -t rsa

Centos7.6安装hadoop3.1.2、hive3.1.2、zookeeper3.6.2、hbase2.2.6_第2张图片

拷贝和权限

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

注意:在slave1机创建目录

#root登录后
mkdir .ssh

复制公钥到slave1机、slave2机(此处[email protected] ,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

可以测试一下:

#ssh 192.168.95.133
#exit

ssh 192.168.95.134
exit

修改主机名

vi /etc/hosts
127.0.0.1 localhost
192.168.95.132 master
192.168.95.133 slave1
192.168.95.134 slave2

复制这个配置到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

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

解压并配置hadoop

cd /opt
tar -zxvf hadoop-3.1.2.tar.gz

配置hadoop的java home

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

创建文件目录

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

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>

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>

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>

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>

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

slave1
slave2

配置可以使用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/

格式化hadoop

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

在master启动hadoop

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

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

进入到/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>

复制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

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

初始化

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

启动hive

cd /opt/apache-hive-3.1.2-bin/bin
./hive

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)

zookeeper安装:

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

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

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

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

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

复制并重命名主配置文件

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

配置zoo.cfg 文件

Centos7.6安装hadoop3.1.2、hive3.1.2、zookeeper3.6.2、hbase2.2.6_第3张图片

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

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

①、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字样则表示被占用

创建 myid 文件

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

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

复制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/

到slave服务器修改myid 文件

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

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

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

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

4.配置hbase-site.xml


            
                  hbase.tmp.dir
                  /usr/local/hbase-2.2.6/hbaseData
            
            
                    hbase.rootdir
                    file:/usr/local/hbase-2.2.6
            
    

创建目录/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

8.进入hbase–shell

#cd /usr/local/hbase-2.2.6/bin
#./hbase shell

hbase安装集群版:

将文件上传至/opt并解压

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

(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的核心配置文件




  
  
    hbase.zookeeper.quorum
      master:2181,slave1:2181,slave2:2181
  
  
  
    hbase.rootdir
    hdfs://master:9000/hbase
  
  
  
    hbase.cluster.distributed
    true
  

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

slave1
slave2

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

#cd /opt/hbase-2.2.6/conf
#vi backup-masters
内容为slave1

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

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

从master节点启动HBASE

#cd /opt/hbase-2.2.6/bin
#./start-hbase.sh

通过浏览器访问
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版本选择

你可能感兴趣的:(hadoop,大数据)