鲲鹏BigData Pro解决方案中Hive组件的部署

news2024/12/25 8:59:52

1 介绍

本博文基于《鲲鹏Bigdata pro之Hive集群部署》的实验手册进行,目的是方便Hive学习者重用(从本文复制)相关的指令、配置和代码。同时,会对相关的Bash命令解释,达到增进理解的目的。

2 Hive组件的部署

部署的前提是,启动Hadoop集群。

2.1 在节点1上安装MySQL

步骤 1:添加MySQL用户组合用户

[root@cgznode-0001 ~]# groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M mysql

上述命令式通常的Linux命令,意思是,创建一个系统组;若成功,则创建一个用户mysql,其为系统用户,初始组为mysql,且不能登录。

步骤 2:安装MySQL依赖库

yum install -y libaio*

yum是在线安装软件的命令。上述命令安装了libaio.aarch64和libaio-devel.aarch64。

步骤 3 解压并重命名MySQL 安装包

> tar -xvf /home/extend_tools/mysql-5.7.27-aarch64.tar.gz -C /usr/local/
> mv /usr/local/mysql-5.7.27-aarch64 /usr/local/mysql

上述tar命令的选项:x表示解压,v表示观看解压过程的输出,f表示指定的被解压的文件,C表示解压的目标文件夹。

步骤 4 配置MySQL

> mkdir -p /usr/local/mysql/logs
> chown -R mysql:mysql /usr/local/mysql
> ln -sf /usr/local/mysql/my.cnf /etc/my.cnf
> cp -rf /usr/local/mysql/extra/lib* /usr/lib64/
> mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.old
> ln -s /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6

上述命令都是基本的Linux命令。其中,ln -sf用于创建软链接文件。

步骤 5 设置MySQL 开机启动

> cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
> chmod +x /etc/init.d/mysqld
> /sbin/chkconfig mysqld on

上述命令chmod +x /etc/init.d/mysqld删除也可以,因为文件mysqld本来就具有x权限。命令/sbin/chkconfig mysqld on用于配置mysqld为启动状态。

步骤 6 添加MySQL 环境变量

执行

vim /etc/profile

在上述配置文件的末尾添加:

export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

执行下面指令,使环境变量生效:

source /etc/profile

7 初始化MySQL

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,启动MySQL

> systemctl start mysqld

命令systemctl是系统服务管理命令。可以用systemctl status mysqld查看服务mysqld的状态。

步骤8 MySQL安全配置

> mysql_secure_installation
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
### 是否需要安装密码强度检测插件
Press y|Y for Yes, any other key for No: y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary
file
### 输入0 表示密码认证策略强度低,1 表示策略强度中,2 表示强度高
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.
### 设置root 自定义用户密码, 设置完成后请做好个人记录
New password:
Re-enter new password:
### 显示自定义root 密码评测结果
Estimated strength of the password: 100

### 是否继续使用上一步设置的密码,输入y 继续使用
Do you wish to continue with the password provided?(Press y|Y for Yes,
any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
### 是否移除匿名用户,输入Y 移除
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
### 是否禁止root 用户远程登录权限,输入n 不禁止
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

... skipping.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
### 是否删除test 数据库,输入回车键,跳过选择
Remove test database and access to it? (Press y|Y for Yes, any other key
for No) :
... skipping.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
### 是否重新加载权限表,输入回车键,跳过选择
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
... skipping.
### 完成!
All done!

上面设置的root的密码,要记录在旁边的本子上,后面填写配置文件的时候要用到。
重启MySQL并查看MySQL状态

> systemctl restart mysqld
> systemctl status mysqld

服务mysqld的状态应为:active (running)。

步骤 9 MySQL基本设置

配置MySQL 运行root 远程连接:

> mysql -u root -p
Enter password: 输入步骤8 自定义的root 密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27-log Source distribution
# 切换使用mysql 数据库
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
# 设置远程登录主机与用户名
mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
# 查看设置结果
mysql> select host, user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)
# 刷新配置
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

上面set host = '%'指的是让用户可以远程连接的意思。

步骤10 安装MySQL 的java 连接工具

在MobaXterm中打开一个新的Session,在节点1上安装mysql-connector-java。

[root@cgznode-0001 ~]# yum -y install mysql-connector-java

2.2 部署Hive

步骤 1: 准备Hive组件包

执行下面命令(输出略):

[root@cgznode-0001 ~]# cp /home/extend_tools/apache-hive-2.3.3-bin.tar.gz /home/modules/
[root@cgznode-0001 ~]# cd /home/modules
[root@cgznode-0001 modules]# tar -zvxf apache-hive-2.3.3-bin.tar.gz
[root@cgznode-0001 modules]# mv apache-hive-2.3.3-bin hive-2.3.3
[root@cgznode-0001 modules]# ls
apache-hive-2.3.3-bin.tar.gz  data  hadoop-2.8.3  hbase-2.1.0  hive-2.3.3

步骤2:拷贝jar 连接文件到Hive 指定目录中

cp /usr/share/java/mysql-connector-java.jar /home/modules/hive-2.3.3/lib/

步骤3: 配置hive-site.xml

执行命令:

vim /home/modules/hive-2.3.3/conf/hive-site.xml

录入如下内容:

<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://[你自己的节点1名称]:3306/hive_metadata?createDatabaseIfNotExist=true</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>[你的mysql的root用户密码]</value>
        </property>
        <property>
                <name>hive.strict.checks.cartesian.product</name>
                <value>false</value>
        </property>
</configuration>

步骤 4: 配置hive-env.sh

复制一份hive-env.sh 的模板文件,并修改它:

cp /home/modules/hive-2.3.3/conf/hive-env.sh.template /home/modules/hive-2.3.3/conf/hive-env.sh
vim /home/modules/hive-2.3.3/conf/hive-env.sh

在文件hive-env.sh的末尾添加:

HADOOP_HOME=/home/modules/hadoop-2.8.3

步骤 5: 初始化MySQL数据库

[root@cgznode-0001 modules]# cd /home/modules/hive-2.3.3/bin
[root@cgznode-0001 bin]# ./schematool -initSchema -dbType mysql
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/modules/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slfass]
SLF4J: Found binding in [jar:file:/home/modules/hadoop-2.8.3/share/hadoop/common/lib/slf4j-log4j12taticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL:        jdbc:mysql://cgzNode-0001:3306/hive_metadata?createDatabaseIfNotE
Metastore Connection Driver :    com.mysql.jdbc.Driver
Metastore connection User:       root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed

步骤6: 分发Hive组件

当然,须在节点1下执行:

[root@cgznode-0001 bin]# for i in {2..4};do scp -r /home/modules/hive-2.3.3 root@cgzNode-000${i}:/home/modules/;done

上述命令是一个Bash shell的脚本命令,执行了一个循环。注意:

root@cgzNode-000${i}

一定要替换成你自己的节点名称模式。比如说,你的节点为zs-0001,zs-0002,zs-0003和zs-0004这四个名称,则上面应替换成:

root@zs-000${i}

步骤7 配置环境变量

4个节点上都要分别配置

[root@cgznode-0001 bin]# vim /etc/profile

在/etc/profile的文件末尾,添加:

export HIVE_HOME=/home/modules/hive-2.3.3
export PATH=$HIVE_HOME/bin:$PATH

4个节点上都要分别配置执行命令,使环境变量生效:

[root@cgznode-0001 bin]# source /etc/profile

2.3 启动Hive并验证基本功能

如下图:
启动Hive并验证基本功能
注意:要退出Hive环境,请在hive提示符后输入:exit;。不要忘记加英文分号。

3 总结

从上面的安装部署过程中可以看出,1) 对于MySQL来说,基本上解压缩文件包后,就是相关的设置、服务启动、账号设置、远程连接设置等,这是与Windows系统中安装软件不一样的地方;2)对于Hive来说,解压缩,然后配置、初始化MySQL、 Hive分发、设置环境变量等。整个部署过程与通常情况下的(Windows系统)安装很不一样,希望大家适应。同时,也能感受到,在Linux下,软件的安装是很便利的,都是自动化的指令,避免了界面的手工操作,但也对不会Linux的同学带来了障碍。如何克服障碍,那就是学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索SpringMVC-HandlerAdapter之RequestMappingHandlerAdapter-参数解析

前言 上回&#xff0c;我们大概讲了下HandlerAdapter。今天带大家来认识一下&#xff0c;我们最常用的RequestMappingHandlerAdapter。不过只能给大家先开个头&#xff0c;讲下参数解析。 RequestMappingHandlerAdapter 在介绍HandlerAdapter时&#xff0c;我们就知道Handle…

自己动手写编译器:从NFA到DFA

上一节我们完成了使用NFA来识别字符串的功能。NFA有个问题就是其状态节点太多&#xff0c;使用起来效率不够好。本节我们介绍一种叫“子集构造”的算法&#xff0c;将拥有多个节点的NFA转化为DFA。在上一节我们描述的epsilon闭包操作可以看到&#xff0c;实际上所有由epsilon边…

「ARM32」MMU和页表的映射过程详解

在ARM32中&#xff0c;MMU主要完成虚拟地址到物理地址的映射&#xff0c;并且能够控制内存的访问权限&#xff0c;而页表是实现上述功能的主要手段。页表又分为一级页表、二级页表&#xff0c;在ARM64中甚至还有三级页表。为了便于理解&#xff0c;本章主要讲述一级页表完成段映…

centos7 安装Mysql详细教程

centos7 弃用了Mysql&#xff0c;默认安装了MariaDB&#xff0c;MariaDB是Mysql一个分支&#xff0c;所以要想在centos上安装Mysql&#xff0c;需要先进行卸载MariaDB&#xff0c;避免冲突 本次教程所用环境&#xff1a; 腾讯云服务器&#xff1a;centos7Mysql5.7 1. 卸载Ma…

dubbo源码实践-protocol层-invoker理解

1概述Invoker官方解释&#xff1a;Invoker 是实体域&#xff0c;它是 Dubbo 的核心模型&#xff0c;其它模型都向它靠扰&#xff0c;或转换成它&#xff0c;它代表一个可执行体&#xff0c;可向它发起 invoke 调用&#xff0c;它有可能是一个本地的实现&#xff0c;也可能是一个…

Python 机器学习最常打交道的 27 款工具包

为了大家能够对人工智能常用的 Python 库有一个初步的了解&#xff0c;以选择能够满足自己需求的库进行学习&#xff0c;对目前较为常见的人工智能库进行简要全面的介绍。 1、Numpy NumPy(Numerical Python)是 Python的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算…

Maix Bit(K210)保姆级入门上手教程

Maix Bit&#xff08;K210&#xff09;快速上手 这是K210快速上手系列文章&#xff0c;主要内容是&#xff0c;设备连接&#xff0c;环境准备&#xff0c;运行第一个程序 阅读文章前提&#xff1a;python基础,K210是使用Micropython脚本语法的&#xff0c;因此需要一些python…

RocketMQ5.0.0部署与实例

一、Idea调试1.相关配置文件在E:\rocketmq创建conf、logs、store三个文件夹。从RocketMQ distribution部署目录中将broker.conf、logback_namesrv.xml、logback_broker.xml文件复制到conf目录。如下图所示。其中logback_namesrv.xml、logback_broker.xml分别是NameServer、Brok…

纯C语言实现动态爱心(详解,初学者也能看懂)

文章目录✍动态爱心实现&#x1f496;一段小故事&#xff1a;爱心函数的由来&#x1f388; 创建动态爱心的准备&#xff08;非小白可以跳过&#xff09;1.爱心字符2.对easyx库里面的基础函数的认识①initgraph函数②settextcolor、settextstyle、setbkmode、outtextxy四种函数③…

PostgresSQL数据库的使用

PostgresSQL数据库的使用 下载安装 数据类型 使用指导 数据库操作 连接控制台 psql -h <实例连接地址> -U <用户名> -p <端口号>参数描述实例连接地址RDS PostgreSQL实例的连接地址&#xff0c;本机可用localhost或者127.0.0.1用户名创建的RDS Postgre…

ES语法扩展

剩余参数 剩余参数本质 // 剩余参数的本质const add(x,y,...args)>{console.log(x,y,args);}add();add(1);add(1,2);add(1,2,3,4,5); 剩余参数的注意事项 箭头函数的参数部分即使只有一个剩余参数&#xff0c;也不能省略圆括号使用剩余参数替代arguments获取实际参数剩余…

4.Isaac Jetson Nano 入门

Isaac Jetson Nano 入门 本节介绍如何在 Jetson Nano 设备上运行 Isaac SDK 示例应用程序。 有关如何开始使用 Nano 的一般说明&#xff0c;请参阅 Jetson Nano 开发工具包入门。 文章目录Isaac Jetson Nano 入门获取 IP 地址在 Jetson Nano 上运行示例应用程序PingOpenCV 边缘…

Pytorch CIFAR10图像分类 EfficientNet v1篇

Pytorch CIFAR10图像分类 EfficientNet v1篇 文章目录Pytorch CIFAR10图像分类 EfficientNet v1篇4. 定义网络&#xff08;EfficientNet&#xff09;EfficientNet介绍EfficientNet性能比较EfficientNet的baselineEfficientNet模型混合缩放方法其他版本的EfficientNet(B1-B7)判断…

错题 3jxn (8253复杂)

A 指示型指令 C 比如 ,跟C语言的return 一样&#xff0c;可以由多条&#xff0c;但是返回的位置都是一个地方 JN NEXT RET NEXT: RET A 可以重复 EQU不可以重复 C 中断向量&#xff1a;中断服务程序的入口地址 向量中断&#xff1a;识别中断你的方法 接口 编程题&#xff…

Redis关键知识点总结

Reference: http://redis.cn用处缓存数据库分布式锁&#xff08;Redission的redlock&#xff0c;自定义的lock等&#xff09;过滤器&#xff08;布隆过滤器/增强的带计数的布隆过滤器/布谷鸟过滤器等&#xff09;大规模的计算辅助&#xff08;bitmap&#xff09;消息订阅/监听 …

PyQt5入门学习(一)【小白入门系列】

PyQt5入门学习 介绍&#xff1a;PyQt5是Python较好的图形库&#xff0c;与C的Qt不同的是PyQt5封装得较为简单&#xff0c;上手也更加的方便。下面话不多说&#xff0c;开始学习PyQt5吧&#xff01; 安装过程 安装方法有两种&#xff0c;一种是下载PyQt5最新源码进行编译安装…

初识Kafka

1.1 定义 Kafka传统定义: Kafka是一个分布式的基于发布/订阅模式的消息队列(MessageQueue&#xff09;&#xff0c;主要应用于大数据实时处理领域。 发布/订阅: 消息的发布者不会将消息直接发送给特定的订阅者&#xff0c;而是将发布的消息分为不同的类别&#xff0c;订阅者只…

[数据结构基础]二叉树——堆的概念、结构、接口函数及经典的Topk问题和堆排序问题

目录 一. 堆的概念及结构 1.1 堆的概念 1.2 堆的结构及在内存中的存储 二. 堆的主要接口函数 2.1 堆初始化函数HeapInit 2.2 堆销毁函数HeapDestroy 2.3 向堆中插入数据函数HeapPush&#xff08;以小堆为例&#xff09; 2.4 删除堆根节点数据函数HeapPop&#xff08;小…

C++ 夺冠!成为 TIOBE 2022 年度编程语言

目录&#xff1a;C夺冠—成为TIOBE2022年度编程语言一、前言二、C 摘得桂冠三、Top 10 编程语言 TIOBE 指数走势&#xff08;2002-2023&#xff09;四、历史排名&#xff08;1987-2023&#xff09;五、编程语言“名人榜”&#xff08;2003-2022&#xff09;六、说明一、前言 2…

vitepress(三):自动生成目录

上一节我们将自己的网站发布到了git pages上&#xff0c;但是现在我们需要每次更新一篇文章就重写一次目录&#xff0c;操作上十分的繁琐和不方便&#xff0c;所以我们需要一个方法去自动生成我们的侧边栏结构&#xff0c;方便我们每次只需要更新我们的项目即可。这里我们要知道…