文章目录
- 前言
- 云耀云服务器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和配置自动启动等。