【教程】Centos7的Docker环境下MySQL和Hive的配置

发布时间:2026/10/15 18:58:06
【教程】Centos7的Docker环境下MySQL和Hive的配置 基于你当前的实际环境MySQLmysql-5.7.36-linux-glibc2.12-x86_64.tar.gzMySQL 驱动mysql-connector-java-5.1.46.tar.gzHiveapache-hive-1.2.2-bin.tar.gz任务一安装与配置 MySQL在 master1 容器内操作Hive 默认使用 Derby 数据库但 Derby 不支持多用户并发因此我们需要将 Hive 的元数据存储在 MySQL 中。1. 准备安装包在宿主机执行在宿主机新开一个终端不要退出容器执行# 复制 MySQL 安装包 (5.7.36)dockercp/opt/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz master1:/opt/# 复制 MySQL 驱动包 (5.1.46)dockercp/opt/mysql-connector-java-5.1.46.tar.gz master1:/opt/# 复制 Hive 安装包 (注意是 1.2.2)dockercp/opt/apache-hive-1.2.2-bin.tar.gz master1:/opt/回到 master1 容器内继续操作# 进入master1容器dockerexec-itmaster1bashcd/opt ll你应该能看到mysql-5.7.36...tar.gz、mysql-connector-java-5.1.46.tar.gz和apache-hive-1.2.2-bin.tar.gz。2. 安装依赖软件yuminstall-yinitscripts libaio numactl3. 解压 MySQL 并重命名# 创建 simple 目录mkdir/simple# 解压 MySQL 到 /simple 目录 (注意文件名是 5.7.36)tar-zxvfmysql-5.7.36-linux-glibc2.12-x86_64.tar.gz-C/simple# 进入 /simple 目录并重命名cd/simplemvmysql-5.7.36-linux-glibc2.12-x86_64 mysql4. 配置 MySQL 环境变量vi~/.bashrc在文件末尾追加以下内容exportMYSQL_HOME/simple/mysqlPATH$PATH:$MYSQL_HOME/bin保存退出先按esc然后输入:wq回车后使环境变量生效source~/.bashrc5. 创建 MySQL 用户和组并修改权限# 创建 mysql 组和用户groupaddmysqluseradd-r-gmysql mysql# 进入 mysql 目录更改所属组和用户cd/simple/mysqlchgrp-Rmysql.chown-Rmysql.6. 初始化 MySQL 数据库注意这一步会生成临时密码请务必复制并保存下来mysqld--initialize--usermysql--basedir/simple/mysql--datadir/simple/mysql/data在输出结果的最后一行你会看到类似[Note] A temporary password is generated for rootlocalhost: wj(_gG-f5:h的信息。就比如我的图片wj(_gG-f5:h这个密码记下来一定要记下来下面会用到。7. 修改目录所有者cd/simple/mysqlchown-Rroot.chown-Rmysql data8. 配置 MySQL 启动文件# 复制启动脚本cpsupport-files/mysql.server /etc/init.d/mysql# 编辑启动脚本vi/etc/init.d/mysql在文件中找到basedir和datadir修改为以下内容如果找不到直接在文件开头添加basedir/simple/mysqldatadir/simple/mysql/data改成保存退出先按esc然后输入:wq回车。9. 启动 MySQL 并修改密码# 启动 MySQL 服务servicemysql start# 登录 MySQL (使用刚才记下的临时密码)mysql-uroot-p# 输入临时密码回车就是刚才上面保存的那个这里是没有回显了直接粘贴进去就行在 MySQL 命令行中执行-- 修改 root 密码为 123456setpasswordforrootlocalhostpassword(123456);-- 创建 Hive 使用的数据库createdatabasemyhive;-- 刷新权限flushprivileges;-- 退出 MySQLexit;10. 验证 MySQLmysql-uroot-p# 输入 123456# 看到 mysql 提示符即成功exit;任务二基于 HDFS 和 MySQL 的 Hive 环境搭建在 master1 容器内操作1. 解压 Hive 安装包cd/opt# 解压 Hive 到 /simple 目录 (注意是 1.2.2)tar-zxvfapache-hive-1.2.2-bin.tar.gz-C/simple# 进入 /simple 目录重命名 (注意是 hive1.2.2)cd/simplemvapache-hive-1.2.2-bin hive1.2.22. 配置 Hive(1) 复制 MySQL 驱动包# 解压 MySQL 驱动包 (注意是 5.1.46)cd/opttar-zxvfmysql-connector-java-5.1.46.tar.gz# 复制驱动 jar 包到 Hive 的 lib 目录 (注意驱动包和 hive 目录版本)cp/opt/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /simple/hive1.2.2/lib/(2) 配置 hive-env.shcd/simple/hive1.2.2/conf# 复制模板文件cphive-env.sh.template hive-env.sh# 编辑 hive-env.shvihive-env.sh找到HADOOP_HOME这一行修改为如果被注释了去掉#HADOOP_HOME/usr/local/hadoop保存退出。(3) 配置 hive-site.xml# 进入 Hive 配置目录注意你的版本是 hive1.2.2cd/simple/hive1.2.2/conf# 直接用 cat 和 EOF 写入完整配置一步到位cathive-site.xmlEOF ?xml version1.0 encodingUTF-8 standaloneno? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl? configuration property namejavax.jdo.option.ConnectionURL/name valuejdbc:mysql://localhost:3306/myhive?createDatabaseIfNotExisttrueamp;useSSLfalse/value /property property namejavax.jdo.option.ConnectionDriverName/name valuecom.mysql.jdbc.Driver/value /property property namejavax.jdo.option.ConnectionUserName/name valueroot/value /property property namejavax.jdo.option.ConnectionPassword/name value123456/value /property /configuration EOF3. 修改 Hive 配置文件 hive-config.sh# 进入 Hive 的 bin 目录 (注意是 hive1.2.2)cd/simple/hive1.2.2/bin# 编辑 hive-config.shvihive-config.sh在文件末尾添加以下内容exportJAVA_HOME/usr/lib/jdk1.8.0exportHIVE_HOME/simple/hive1.2.2exportHADOOP_HOME/usr/local/hadoop保存退出。4. 配置系统环境变量vi~/.bashrc在末尾追加注意是 hive1.2.2exportHIVE_HOME/simple/hive1.2.2exportPATH$PATH:$HIVE_HOME/bin保存退出并生效source~/.bashrc5. 启动 Hive 并验证前提确保 Hadoop 集群已经启动。在master1执行start-all.sh然后jps确认NameNode、DataNode、ResourceManager等进程都在。# 启动hadoopstart-all.sh# 启动 Hive Shellhive如果一切正常你会看到hive提示符。测试 Hive 基本操作-- 查看所有数据库showdatabases;-- 创建测试表createtabletest_table(idint,name string);-- 查看表结构describetest_table;-- 退出 Hiveexit;常见问题排查MySQL 启动失败检查/simple/mysql/data/master1.err日志文件通常是因为权限问题或端口被占用。Hive 启动报错检查hive-site.xml中的 MySQL 连接信息是否正确密码123456数据库myhive是否存在以及 MySQL 驱动包是否放到了lib目录下。Hive 查询卡住检查 Hadoop 集群是否正常启动jps查看进程。如果DataNode没起来可能是多次格式化导致clusterID不一致需要清理data目录重新格式化注意格式化只能在 master1 执行一次。希望你可以顺利完成本次 Hive 环境搭建与基本操作的实验

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询