网站建设方案和报价表软件开发人天报价标准
网站建设方案和报价表,软件开发人天报价标准,顺企网杭州网站建设,设计素材网址文章目录 1 Hive概述2 Hive部署2.1 规划2.2 安装软件 3 Hive体验4 Hive客户端4.1 HiveServer2 服务4.2 DataGrip 5 问题集5.1 Could not open client transport with JDBC Uri 结语 1 Hive概述
Apache Hive是一个开源的数据仓库查询和分析工具#xff0c;最初由Facebook开发最初由Facebook开发并后来捐赠给Apache软件基金会。Hive允许用户使用SQL语言来查询和分析存储在Hadoop分布式文件系统HDFS中的大规模数据集。它的设计目标是使非技术用户能够轻松地在Hadoop集群上执行数据查询和分析任务而无需编写复杂的MapReduce代码。
以下是Hive的主要特点和概述
SQL-Like查询语言 Hive提供了一种类似于SQL的查询语言称为HiveQLHive Query Language它允许用户使用熟悉的SQL语法来查询和操作数据。这使得数据库管理员和分析师能够更容易地利用Hadoop集群进行数据分析。元数据存储 Hive维护了一个元数据存储其中包含有关数据表、分区、列、数据类型和表之间关系的信息。这使得用户可以在不了解底层数据存储结构的情况下查询数据。扩展性 Hive是高度可扩展的可以处理大规模数据集。它允许用户将数据表分成分区并支持分区级别的操作从而提高了查询性能。UDF用户定义函数 Hive允许用户编写自定义函数以满足特定的数据处理需求。这些自定义函数可以使用Java或Python编写并与HiveQL一起使用。集成 Hive可以与其他Hadoop生态系统工具集成如Hadoop MapReduce、Apache HBase、Apache Spark等。这意味着用户可以在不同的工具之间共享数据并执行复杂的数据处理任务。可视化工具 虽然Hive本身是一个命令行工具但也有许多可视化工具和商业智能平台如Tableau、QlikView支持Hive使用户能够使用图形界面进行数据分析和报告生成。安全性 Hive提供了基于SQL标准的权限管理机制以确保只有授权的用户可以访问和修改数据。数据格式支持 Hive支持多种数据格式包括文本、Parquet、ORCOptimized Row Columnar等可以根据需求选择最适合的格式。
Hive通常用于数据仓库、数据分析、报告生成和数据ETL抽取、转换、加载等用例特别是对于那些需要在Hadoop集群上处理大规模数据的组织。它提供了一种方便的方式来查询和分析分布式存储的数据使更多的人能够从大数据中获得有价值的见解。
Apache Hive是一个开源的数据仓库查询和分析工具最初由Facebook开发并后来捐赠给Apache软件基金会。Hive允许用户使用SQL语言来查询和分析存储在Hadoop分布式文件系统HDFS中的大规模数据集。它的设计目标是使非技术用户能够轻松地在Hadoop集群上执行数据查询和分析任务而无需编写复杂的MapReduce代码。
以下是Hive的主要特点和概述
SQL-Like查询语言 Hive提供了一种类似于SQL的查询语言称为HiveQLHive Query Language它允许用户使用熟悉的SQL语法来查询和操作数据。这使得数据库管理员和分析师能够更容易地利用Hadoop集群进行数据分析。元数据存储 Hive维护了一个元数据存储其中包含有关数据表、分区、列、数据类型和表之间关系的信息。这使得用户可以在不了解底层数据存储结构的情况下查询数据。扩展性 Hive是高度可扩展的可以处理大规模数据集。它允许用户将数据表分成分区并支持分区级别的操作从而提高了查询性能。UDF用户定义函数 Hive允许用户编写自定义函数以满足特定的数据处理需求。这些自定义函数可以使用Java或Python编写并与HiveQL一起使用。集成 Hive可以与其他Hadoop生态系统工具集成如Hadoop MapReduce、Apache HBase、Apache Spark等。这意味着用户可以在不同的工具之间共享数据并执行复杂的数据处理任务。可视化工具 虽然Hive本身是一个命令行工具但也有许多可视化工具和商业智能平台如Tableau、QlikView支持Hive使用户能够使用图形界面进行数据分析和报告生成。安全性 Hive提供了基于SQL标准的权限管理机制以确保只有授权的用户可以访问和修改数据。数据格式支持 Hive支持多种数据格式包括文本、Parquet、ORCOptimized Row Columnar等可以根据需求选择最适合的格式。
核心的功能
元数据管理SQL解析
2 Hive部署
2.1 规划
Hive 是单机工具只需要部署在一台服务器即可。 Hive 虽然是单机的但是它可以提交分布式运行的 MapReduce 程序运行。
规划 我们知道 Hive 是单机工具后就需要准备一台服务器供 Hive 使用即可。 同时 Hive 需要使用元数据服务即需要提供一个关系型数据库我们也选择一台服务器安装关系型数据库即可
机器服务node1Hivenode1Mysql
2.2 安装软件
步骤1安装Mysql5.7
# 更新秘钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 安装mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
# yum安装mysql
yum -y install mysql-community-server
# 启动mysql
systemctl start mysqld
# 设置msyql开机自启
systemctl enable mysqld
# 检查Mysql服务状态
systemctl status mysqld
# 第一次启动mysql会在日志文件中生成root用户的一个随机密码
cat /var/log/mysqld.log | grep password
连接mysql 我们是做实验用设置简单密码生成中不要这样子搞
set global validate_password_policyLOW;
set global validate_password_length4;
alter user rootlocalhost identified by 123456;
grant all privileges on *.* to root% identified by 123456 with grant option;
flush privileges;步骤2配置Hadoop
Hive的运行依赖HadoopHDFS、MapReduce、YARN都依赖同时涉及到HDFS文件系统的访问所有要配置Hadoop的代理用户即设置Hadoop用户允许代理模拟其他用户。
配置如下内容在Hadoop的core-site.xml中并分发到其他节点且重启HDFS集群
propertynamehadoop.proxyuser.hadoop.hosts/namevalue*/value
/property
propertynamehadoop.proxyuser.hadoop.groups/namevalue*/value
/property步骤3下载解压Hive node1切换到hadoop用户 su - hadoop下载Hive安装包或者本地上传 http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz解压 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/设置软连接 ln -s /export/server/apache-hive-3.1.3-bin.tar.gz /export/server/hive步骤4提供Mysql 驱动包 下载或者上传Mysql驱动包 https:// repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar将下载好的Mysql驱动包移入Hive安装目录下lib目录内 mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/步骤5配置Hive
在 Hive 的 conf 目录内新建 hive-env.sh 文件填入以下环境变量内容
export HADOOP_HOME/export/server/hadoop
export HIVE_CONF_DIR/export/server/hive/conf
export HIVE_AUX_JARS_PATH/export/server/hive/lib在 Hive 的 conf 目录内新建 hive-site.xml 文件填入以下内容 configurationpropertynamejavax.jdo.option.ConnectionURL/namevaluejdbc:mysql://node1:3306/hive?createDatabaseIfNotExisttrueuseSSLfalseuseUnicodetruecharacterEncodingUTF-8/value/propertypropertynamejavax.jdo.option.ConnectionDriverName/namevaluecom.mysql.jdbc.Driver/value/propertypropertynamejavax.jdo.option.ConnectionUserName/namevalueroot/value/propertypropertynamejavax.jdo.option.ConnectionPassword/namevalue123456/value/propertypropertynamehive.server2.thrift.bind.host/namevaluenode1/value/propertypropertynamehive.metastore.uris/namevaluethrift://node1:9083/value/propertypropertynamehive.metastore.event.db.notification.api.auth/namevaluefalse/value/property
/configuration现在使用的是5.1.34 Mysq驱动包配置的连接驱动也是旧版废弃的
步骤6初始化元数据库 在Mysql数据库中新建数据库hive create database hive charset utf8;执行元数据库初始化命令 cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos打印 Initialization script completed
schemaTool completed初始化完成
步骤7启动Hive 当前用户为hadoop 确保Hive文件夹所属为hadoop用户 创建hive日志文件夹 mkdir /export/server/hive/logs启动元数据管理服务 # 前台启动
bin/hive --service metastore
# 后台启动
nohup bin/hive --service metastore logs/metastore.log 21 启动客户端二选一当前简单测试选择 Hive Shell Hive Shell方式可以直接写SQL /bin/hiveHive ThriftServer不可以直接写SQL需要外部客户端链接使用 bin/hive --service hiveserver23 Hive体验
首先确保启动了metastore服务可以执行
bin/hive 进入hive shell环境中可以执行SQL语句如下图所示 创建表 create table test(id int,name string,gender string);插入数据 insert into test values(1, 爱因斯坦, 男),(2, 麦克斯韦, 男),(3, 居里夫人, 女);查询数据 select gender, count(*) cnt from test group by gender;验证Hive的数据存储Hive的数据存储在HDFS的/user/hive/warehouse如下图所示 验证SQL语句启动的MapReduce程序打开YARN的WEB UI页面查看任务情况-http://node1:8088如下图所示 4 Hive客户端
4.1 HiveServer2 服务
在启动 Hive 的时候除了必备的 Metastore 服务外我们前面提过有 2 种方式使用 Hive • 方式 1 bin/hive 即 Hive 的 Shell 客户端可以直接写 SQL • 方式 2 bin/hive --service hiveserver2 后台执行脚本
nohup bin/hive --service hiveserver2 logs/hiveserver2.log 21 bin/hive --service metastore 启动的是元数据管理服务 bin/hive --service hiveserver2 启动的是 HiveServer2 服务 HiveServer2 是 Hive 内置的一个 ThriftServer 服务提供 Thrift 端口供其它客户端链接 可以连接 ThriftServer 的客户端有 • Hive 内置的 beeline 客户端工具命令行工具 • 第三方的图形化 SQL 工具如 DataGrip 、 DBeaver 、 Navicat 等
# 先启动 metastore 服务 然后启动 hiveserver2 服务
nohup bin/hive --service metastore logs/metastore.log 21
nohup bin/hive --service hiveserver2 logs/hiveserver2.log 21 4.2 DataGrip
我们这里以DataGrip为例其他客户端自行测试。
步骤1创建工程文件夹
E:\gaogzhen\projects\bigdata\DataGripProjects\hive-demo步骤2DataGrip创建新工程并关联本地文件夹 步骤3DataGrip连接Hive 1693897609904)
步骤4配置Hive JDBC驱动 连接成功如下图所示 5 问题集
5.1 Could not open client transport with JDBC Uri 报错内容 Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000:
Failed to open new session:
java.lang.RuntimeException:
org.apache.hadoop.security.AccessControlException:
Permission denied: userroot, accessEXECUTE , inode/tmp:hadoop:supergroup:drwx------解决方案参考下面连接4修改hdfs /tmp访问权限前面我们配置了hadoop用户代理不知道为啥没生效
结语
如果小伙伴什么问题或者指教欢迎交流。 ❓QQ:806797785 参考链接:
[1]大数据视频[CP/OL].2020-04-16.
[2]0102阿里云配置3台ECS服务器-大数据学习[CP/OL].
[3]0201hdfs集群部署-hadoop-大数据学习[CP/OL].
[4]beeline连接hive2报错Permission denied[CP/OL].
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89381.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!