手机网站上线左右滑动,微平台登录,网站开发员工资,烟台中企动力提供网站建设文章目录 Hive 安装部署部署模式嵌入模式安装下载安装配置环境启动 Hive 客户端工具 本地模式安装下载安装 MySQL登录 MySQL安装 Hive Hive 命令行交互 Hive 安装部署
部署模式 Hive 有3种部署模式#xff0c;分别是嵌入模式、本地模式和远程模式。关于这 3 种部署模式的具体… 文章目录 Hive 安装部署部署模式嵌入模式安装下载安装配置环境启动 Hive 客户端工具 本地模式安装下载安装 MySQL登录 MySQL安装 Hive Hive 命令行交互 Hive 安装部署
部署模式 Hive 有3种部署模式分别是嵌入模式、本地模式和远程模式。关于这 3 种部署模式的具体介绍如下。 1嵌入模式使用内嵌的 Derby 数据库存储元数据这是 Hive 最简单的部署方式在嵌入模式下运行 Hive 时会在当前目录下生成元数据文件只能有一个 Hive 客户端使用该目录下的元数据文件这就意味着嵌入模式下的 Hive 不支持多会话连接并且不同目录的元数据文件无法共享因此不适合生产环境只适合测试环境。 2本地模式使用独立数据库MySQL存储元数据Hive 客户端和 Metastore 服务在同一台服务器中启动Hive 客户端通过连接本地的 Metastore 服务获取元数据信息。本地模式支持元数据共享并且支持本地多会话连接。 3远程模式与本地模式一样都是使用独立数据库MySQL存储元数据不同的是 Hive 客户端和 Metastore 服务在不同的服务器启动Hive 客户端通过远程连接 Metastore 服务获取元数据信息。远程模式同样支持元数据共享并且支持远程多会话连接。 嵌入模式安装
下载安装
链接http://archive.apache.org/dist/hive/hive-2.3.9/apache-hive-2.3.9-bin.tar.gz 使用 MobaXterm 远程连接工具连接虚拟机将安装包放在用户 user 根目录的software目录下下载完成后解压缩并重命名。
[userhadoop102 software]$ tar -zxvf apache-hive-2.3.9-bin.tar.gz -C /opt/
[userhadoop102 software]$ cd /opt/
[userhadoop102 opt]$ mv apache-hive-2.3.9-bin hive-2.3.9配置环境
修改/etc/profile文件配置Hive环境变量。
[userhadoop102 opt]$ sudo vim /etc/profile.d/hive.sh
添加内容如下
export HIVE_HOME/opt/hive-2.3.9
export PATH:$HIVE_HOME/bin:$PATH加载修改后的环境变量配置
[userhadoop102 opt]$ source /etc/profile在启动Hive之前需要在Hive的安装目录下进行初始化Derby数据库的操作具体命令如下。
[userhadoop102 opt]$ cd hive-2.3.9
[userhadoop102 hive-2.3.9]$ bin/schematool -initSchema -dbType derb 执行上述命令后若出现 schemaTool completed 信息则证明成功初始化 Derby 数据库。
启动 Hive 客户端工具
执行“hive”命令启动 Hive 客户端工具 HiveCLI。
可以执行“quit;”命令退出Hive客户端工具HiveCLI此时在Hive 安装目录下会默认生成文件derby.log和文件夹metastore_db其中文件 derby.log用于记录Derby数据库日志信息文件夹metastore_db存储Derby数据库元数据。
本地模式安装
本地模式部署本质上是将 Hive 默认的元数据存储介质由内嵌的 Derby 数据库替换为独立数据库即 MySQL 数据库。这样无论在任何目录下通过 Hive 客户端工具访问的元数 据信息是一致的并且可以实现多个用户同时访问从而实现元数据的共享。
本地模式部署 Hive 需要在一台虚拟机上同时安装 MySQL 和 Hive这里以虚拟机为例 详细讲解如何使用本地模式部署 Hive具体操作步骤如下
下载安装 MySQL
下载链接如下https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar
将安装包放在用户user根目录的software目录下下载完成后解压使用yum安装下面几个rpm包具体命令如下
sudo rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm若出现以下错误
错误依赖检测失败mysql-community-libs(x86-64) 5.7.9 被 (已安裝) mysql-community-libs-compat-5.7.40-1.el7.x86_64 需要mysql-community-libs(x86-64) 5.7.9 被 (已安裝) mysql-community-client-5.7.40-1.el7.x86_64 需要解决方案清除之前安装过的依赖命令如下
[userhadoop102 ~]$ sudo yum remove mysql-libsMySQL安装完成后执行systemctl start mysqld命令启动MySQL服务待 MySQL服务启动完成后执行systemctl status mysqld查看MySQL 服务运行状态MySQL 服务运行状态信息中出现 activerunning信息说明MySQL 服务处于运行状态。
登录 MySQL
MySQL安装完成后需要通过用户名和密码进行登录MySQL为本地默认用户root自动生成密码可以在MySQL的日志文件中查看此密码具体命令如下。
[userhadoop102 ~]$ grep password /var/log/mysqld.log执行上述命令后在返回的信息中查看MySQL中本地默认用户root的密码。
接下来执行“mysql -uroot -p”命令以root身份登录 MySQL在弹出的“Enter password:”信息处输入密码从而登录 MySQL 进入命令行交互界面。
若出现下面错误
ERROR 1045 (28000): Access denied for user rootlocalhost (using password: YES) 解决方案
1停止 MySQL 服务
[userhadoop102 ~]$ service mysqld stop2跳过验证修改 MySQL 安装目录下的my.ini配置文件使登录时跳过权限检查
[userhadoop102 ~]$ sudo vim /etc/my.cnf
# 在my.ini[mysqld]下添加一行使其登录时跳过权限检查
skip-grant-tables启动 MySQL 需要密码的话使用如下命令假设密码为“123456”
ALTER USER rootlocalhost IDENTIFIED BY 123456;修改后输入“flush privileges”刷新权限。
安装 Hive
我们在之前嵌入模式安装的 Hive 基础上修改配置完成本地模式的安装。
进入 Hive 安装目录下的 conf 目录复制模板文件 hive-env.sh.template 并重命名为hive-env.sh文件 hive-env.sh 用于配置 Hive 运行环境具体命令如下。
# 进入 Hive 安装目录下的 conf 目录
[userhadoop102 ~]$ cd /opt/hive-2.3.9/conf/
# 将文件 hive-env.sh.template 进行复制并重命名为 hive-env.sh
[userhadoop102 conf]$ cp hive-env.sh.template hive-env.sh 添加环境变量编辑文件hive-env.sh命令如下
[userhadoop102 ~]$ vim /opt/hive-2.3.9/conf/hive-env.sh
添加如下环境变量
# 指定 Hadoop 目录
export HADOOP_HOME/opt/hadoop-2.7.7
# 指定 Hive 配置文件所在目录
export HIVE_CONF_DIR/opt/hive-2.3.9/conf
# 指定 Hive 依赖包所在目录
export HIVE_AUX_JARS_PATH/opt/hive-2.3.9/lib
# 指定 JDK 所在目录
export JAVA_HOME/usr/java/default 进入Hive安装目录下的conf目录创建文件 hive-site.xml 用于配置 Hive 相关参数具体命令如下
# 进入 Hive 安装目录下的 conf 目录
[userhadoop102 ~]$ cd /opt/hive-2.3.9/conf
# 创建文件 hive-site.xml
[userhadoop102 conf]$ touch hive-site.xml 执行“vim hive-site.xml”命令编辑文件 hive-site.xml添加如下内容
?xml version1.0 encodingUTF-8 standaloneno ?
?xml-stylesheet typetext/xsl hrefconfiguration.xsl ?
configurationpropertynamehive.metastore.warehouse.dir/namevalue/user/hive/warehouse/value/propertypropertynamejavax.jdo.option.ConnectionUserName/namevalueroot/value/propertypropertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://localhost:3306/hive?createDatabaseIfNotExisttrueamp;useSSLfalse/value/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/propertypropertynamehive.metastore.schema.verification/namevaluefalse/value/propertypropertynamedatanucleus.schema.autoCreateAll/namevaluetrue/value/propertypropertynamehive.cli.print.header/namevaluetrue/value/propertypropertynamehive.cli.print.current.db/namevaluetrue/value/propertypropertynamehive.server2.enable.doAs/namevaluefalse/value/property
/configuration 上述配置内容中的参数讲解如下。 hive.metastore.warehouse.dir配置 Hive 数据存储在 HDFS 上的目录。javax.jdo.option.ConnectionURL配置 JDBC 连接地址。javax.jdo.option.ConnectionDriverName配置 JDBC 驱动。javax.jdo.option.ConnectionUserName配置连接 MySQL 的用户名。javax.jdo.option.ConnectionPassword配置连接 MySQL 的密码。hive.metastore.schema.verificationHive 元数据存储版本是否进行验证。datanucleus.schema.autoCreateAll当元数据库中必要的数据对象不存在时是否自动创建。hive.cli.print.header配置在命令行界面CLI中显示表的列名。hive.cli.print.current.db配置在命令行界面CLI中显示当前数据库名称只会在Hive 的客户端工具 HiveCLI 生效在 Hive 的客户端工具 Beeline 中无效。 下载 JDBC 连接 MySQL 的驱动包。
下载地址https://downloads.mysql.com/archives/c-j/。
选择 mysql-connector-java-5.1.49.tar.gz点击下载。
解压缩后将mysql-connector-java-5.1.49.jar文件上传至/opt/hive-2.3.9/lib目录中。在启动 Hive 之前需要执行schematool -initSchema -dbType mysql命令初始化MySQL若初始化完成后出现 schemaTool completed 信息则说明成功初始化 MySQL。
执行 hive 命令启动 Hive客户端工具 HiveCLI。成功启动 Hive 客户端工具 HiveCLI 进入命令行界面默认当前使用的数据库为default。
Hive 命令行交互
在虚拟机中执行hiveserver2命令启动HiveServer2服务HiveServer2服务启动成功后HiveServer2会进入监听状态若要使用后台方式启动 HiveServer2 服务则执行“hive --service hiveserver2 ”命令需要注意的是通过hiveserver2命令启动的 HiveServer2 服务不能关闭当前窗口否则会停止 HiveServer2 服务。若需要手动停止 HiveServer2 服务可以通过按下组合键 CtrlC 实现。
通过MobaXterm远程连接工具再开启一个虚拟机窗口在新窗口中通过Hive客户端工具Beeline远程连接虚拟HiveServer2服务具体命令如下。这里用的是root用户我的密码设置为1
[userhadoop102 ~]$ beeline -u jdbc:hive2://localhost:10000 -nroot -p1 上述命令中beeline 用于执行 beeline 命令u、n、p 都是 beeline 命令的参数。其中-u 用于指定 HiveServer2 地址-n 则用于指定登录当前虚拟机操作系统的用户名-p 则是系统用户的密码。成功连接 HiveServer2服务如图1-3所示。 如果出现如下报错
Could not open connection to the HS2 server. Please check the server URI and if the URI is correct, then ask the administrator to check the server status.
Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.ConnectException: 拒绝连接 (Connection refused) (state08S01,code0) 解决方案
1在conf/hive-site.xml文件中加入以下配置
propertynamehive.server2.enable.doAs/namevaluefalse/value
/property 如果还是出现报错那么
2在Hadoop的etc/hadoop目录下core-site.xml文件中加入以下配置
propertynamehadoop.proxyuser.user.hosts/namevalue*/value
/property
propertynamehadoop.proxyuser.user.groups/namevalue*/value
/property 上述配置内容中的参数讲解如下。
hadoop.proxyuser.$superuser.hosts配置该superUser允许通过代理访问的主机节点hadoop.proxyuser.$superuser.groups配置该superUser允许代理的用户所属组
对于每个superUser用户hosts必须进行配置而groups和users至少需要配置一个。
这几个配置项的值都可以使用*来表示允许所有的主机/用户组/用户。
如果还是没有解决
3启动metastore服务命令如下
[userhadoop102 ~]$ hive --service metastore 我们打开jps查看进程如果是不是两个RunJar使用 kill 把所以 RunJar 的进程杀死重新启动hiveserver2和metastore服务再查看jps进程刚好两个再连接。
如果还是没有连接上看看HDFSYARNMySQL是不是有没启动的。
启动命令
[userhadoop102 ~]$ start-dfs.sh
[userhadoop102 ~]$ start-yarn.sh
[userhadoop102 ~]$ service mysqld start 如果还是连接不上去查看一下各个配置的格式有没有问题。
通过 Hive 客户端工具 Beeline 远程连接虚拟 HiveServer2 服务连接问题总结 HDFSYARN启动没。 MySQL启动没。 hiveserver2服务启动没。 metastore元数据启动没。 conf/hive-site.xml文件配置没。 conf/hive-env.sh的环境变量配置没。 Hadoop的etc/hadoop目录下core-site.xml文件配置没。