文章目录

    • 前言
      • 云耀云服务器L实例简介
      • Docker简介
      • Hive简介
    • 一、配置环境
      • 购买云耀云服务器L实例
      • 查看云耀云服务器L实例状态
      • 重置密码
      • 查看弹性公网IP地址
      • FinalShell连接服务器
    • 二、安装Hive容器
      • 创建Hive容器
      • 宿主机上传hive安装包并解压
      • 修改hive配置文件
      • 上传配置mysql驱动
      • 启动mysql和hadoop容器
      • 创建hive容器
      • 进入hive容器
      • 配置hive环境变量
    • 初始化mysql元数据
    • 三、启动Hive
      • 启动hive和使用beeline连接hive
        • 配置hive自动启动
          • 创建日志保存目录
      • 创建启动脚本
      • 设置脚本执行权限
      • 加入自动启动服务
      • 重启容器
    • 总结

前言

​ 这是Maynor创作的华为云云耀云服务器L实例测评的第四篇,华为云评测系列传送门:

华为云云耀云服务器L实例评测|单节点环境下部署ClickHouse21.1.9.41数据库

华为云云耀云服务器L实例评测|伪分布式环境下部署hadoop2.10.1

华为云云耀云服务器L实例评测|在Docker环境下部署Hadoop

云耀云服务器L实例简介

云耀云服务器L实例是新一代的轻量应用云服务器,专门为中小企业和开发者打造,提供开箱即用的便利性。云耀云服务器L实例提供丰富且经过严格挑选的应用镜像,可以一键部署应用,极大地简化了客户在云端构建电商网站、Web应用、小程序、学习环境以及各类开发测试等任务的过程。

Docker简介

​ Docker是一种开源的容器化平台,它可以帮助开发者将应用程序及其依赖项打包成一个独立的容器,以实现快速、可靠和可移植的应用部署。Docker的核心概念是容器,它是一个轻量级的、可移植的、自包含的软件单元,包含了运行应用程序所需的所有组件,如代码、运行时环境、系统工具和系统库

Hive简介

​ Hive是一个基于Hadoop的数据仓库工具,它提供了类似于SQL的查询语言,使得非技术人员也能够方便地进行数据分析和查询。Hive将结构化的数据映射到Hadoop的分布式文件系统上,并通过HiveQL语言进行查询和分析。它的优势在于能够处理大规模数据集,并且具有高可扩展性和容错性。Hive还支持用户自定义函数和扩展,使得开发人员可以根据自己的需求进行定制。Hive已经成为大数据处理中的重要工具,被广泛应用于数据仓库、数据分析和数据挖掘等领域。

一、配置环境

购买云耀云服务器L实例

在云耀云服务器L实例详情页,点击购买。

  • 检查配置,确认购买。

查看云耀云服务器L实例状态

查看购买的云耀云服务器L实例状态,处在正常运行中。

重置密码

重置密码,点击重置密码选项,需要进行身份验证,选择手机验证后,即可重置密码成功。

查看弹性公网IP地址

  • 复制弹性公网IP地址,远程连接服务器时使用。

FinalShell连接服务器

在FinalShell工具中,填写服务器弹性公网IP地址、账号密码信息,ssh连接远程服务器。

二、安装Hive容器

创建Hive容器

宿主机上传hive安装包并解压

  • 进入/mnt/docker_share目录,上传apache-hive-2.1.0-bin.tar.gz到此目录下

  • 解压到opt目录下

    tar -xvzf apache-hive-2.1.0-bin.tar.gz -C /opt/

修改hive配置文件

cd /opt/apache-hive-2.1.0-bin/conftouch hive-site.xmlvim hive-site.xml
<configuration><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>fs.defaultFS</name><value>hdfs://hadoop.bigdata.cn:9000</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://mysql.bigdata.cn:3306/hive?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=UTF-8</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property><property><name>hive.server2.thrift.bind.host</name><value>hive.bigdata.cn</value></property><property><name>hive.metastore.uris</name><value>thrift://hive.bigdata.cn:9083</value></property></configuration>

上传配置mysql驱动

  • 上传mysql jdbc驱动到宿主机/mnt/docker_share

    • mysql-connector-java-5.1.38-bin.jar
  • 复制mysql的驱动程序到hive/lib下面

    cp /mnt/docker_share/mysql-connector-java-5.1.38-bin.jar /opt/apache-hive-2.1.0-bin/libll /opt/apache-hive-2.1.0-bin/lib | grep mysql

启动mysql和hadoop容器

  • 启动mysql容器

    docker start mysql

  • 启动hadoop容器

    docker start hadoop

创建hive容器

  • 创建hive容器,指定IP(注意一定要添加 –privileged=true否则无法使用系统服务)

    docker run \--privileged=true \--net docker-bd0 \--ip 172.33.0.131 \-v /mnt/docker_share:/mnt/docker_share \-v /etc/hosts:/etc/hosts \-v /opt/hadoop-2.7.0:/opt/hadoop-2.7.0 \-v /opt/jdk1.8.0_141:/opt/jdk1.8.0_141 \-v /opt/apache-hive-2.1.0-bin:/opt/apache-hive-2.1.0-bin \-p 10000:10000 \--name hive -d hadoop:2.7.0

进入hive容器

docker exec -it hive bash

配置hive环境变量

vim /etc/profileexport HIVE_HOME=/opt/apache-hive-2.1.0-binexport PATH=$HIVE_HOME/bin:$PATHsource /etc/profile

初始化mysql元数据

  • 初始化mysql元数据命令

    schematool -initSchema -dbType mysql

  • 进入到mysql容器中,设置hive相关表的编码格式

    docker exec -it mysql bash

  • 进入到mysql中,执行以下几条语句,修改Hive的默认编码方式

    mysql -u root -p

    use hive;-- 修改表字段注解和表注解alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;-- 修改分区字段注解:alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;-- 修改索引注解:alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;-- 查看编码格式show variables like "%char%";

三、启动Hive

启动hive和使用beeline连接hive

  • 启动hive

    nohup hive --service metastore &nohup hive --service hiveserver2 &
  • 使用beeline连接hive

    beeline!connect jdbc:hive2://hive.bigdata.cn:10000

配置hive自动启动
创建日志保存目录

mkdir -p /opt/apache-hive-2.1.0-bin/logs

创建启动脚本

vim /etc/bootstrap.sh# !/bin/shsource /etc/profileDATE_STR=`/bin/date"+%Y%m%d%H%M%S"`HIVE_METASTORE_LOG=${HIVE_HOME}/logs/hiveserver2-metasvr-${DATE_STR}.logHIVE_THRIFTSVR_LOG=${HIVE_HOME}/logs/hiveserver2-thriftsvr-${DATE_STR}.lognohup ${HIVE_HOME}/bin/hive --service metastore >> ${HIVE_METASTORE_LOG} 2>&1 &nohup ${HIVE_HOME}/bin/hive --service hiveserver2 >> ${HIVE_THRIFTSVR_LOG} 2>&1 &

设置脚本执行权限

chmod a+x /etc/bootstrap.sh

加入自动启动服务

vim /etc/rc.d/rc.local/etc/bootstrap.shchmod 755 /etc/rc.d/rc.local 

重启容器

docker restart hivedocker exec -it hive bash

dbserver连接hive

连接成功:

总结

​ 本文介绍了在云耀云服务器L实例上部署Docker容器hive数据库的步骤,包括重置密码、连接服务器、安装Hive容器、配置环境变量、初始化元数据、启动hive和配置自动启动等。