hive实战1---安装hive

本文介绍如何安装Hive并配置相关环境变量,包括设置元数据存储、创建HDFS上的warehouse目录等步骤。此外,还详细介绍了使用Beeline客户端连接HiveServer2的方法。
前置条件:
Hadoop(HDFS)已安装

2、在/etc/profile 或者~/.bashrc中配置hive环境变量:
export HIVE_HOME=hive安装路径
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf
3、启用环境变量,即使环境变量生效:
source /etc/profile
4、创建配置文件
[root@hadoop01 conf]# cd apache-hive-1.0.0-bin/conf
[root@hadoop01 conf]# cp hive-default.xml.template hive-site.xml
[root@hadoop01 conf]# cp hive-env.sh.template hive-env.sh
[root@hadoop01 conf]# cp hive-exec-log4j.properties.template hive-execlog4j.
properties
[root@hadoop01 conf]# cp hive-log4j.properties.template hive-log4j.properties
5、修改配置文件$HIVE_HOME/conf/hive-env.sh:
export HADOOP_HOME=hadoop安装路径
export HIVE_CONF_DIR=hive安装路径/conf
6、修改配置文件$HIVE_HOME/conf/hive-site.xml.:
hive.metastore.warehouse.dir:默认为 /user/hive/warehouse. ( HDFS上的路径)。可以保持不变。
7、设置元数据数据库
默认情况下,hive使用嵌入式的derby数据库存储元数据。支持postgre SQL、或Mysql数据库来存储元数据。如果要更换存储元数据的数据库,需要配置以下参数值:
javax.jdo.option.ConnectionURL // 数据库URL
javax.jdo.option.ConnectionDriverName // JDBC 驱动名称
javax.jdo.option.ConnectionUserName // 数据库用户名
javax.jdo.option.ConnectionPassword // 数据库密码
下面是使用mysql来存储元数据的配置信息:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop01:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>******</value>
<description>password to use against metastore database</description>
</property>
</configuration>

确保 MySQL JDBC 驱动存在于 $HIVE_HOME/lib目录下。

8、在hdfs上创建warehouse文件夹,并授权
[root@hadoop01 conf]# hdfs dfs –mkdir /tmp
[root@hadoop01 conf]# hdfs dfs –mkdir /user/hive/warehouse
[root@hadoop01 conf]# hdfs dfs -chmod g+w /tmp
[root@hadoop01 conf]# hdfs dfs -chmod g+w /user/hive/warehouse

9、在终端输入hive命令,如果进入hive命令行界面,说明hive安装成功。

10、 新的命令行工具beeline: 基于SQLLine CLI的JDBC客户端。关于SQLLine的的知识,可以参考这个网站:http://sqlline.sourceforge.net/#manual。
Beeline工作模式有两种 ,即本地嵌入模式和远程模式。本地嵌入模式情况下,它返回一个嵌入式的Hive(类似于Hive CLI)。而远程模式则是通过Thrift协议与某个单独的HiveServer2进程进行连接通信。
启动方式如下:

–Beeline 要与HiveServer2配合使用。
–启动HiverServer2
./hiveserver2
–启动Beeline
./beeline
--连接beeline
–beeline> !connect jdbc:hive2://localhost:10000
–默认用户名、密码不验证
配置文件hive-default.xml中的hive.server2.authentication默认为NONE

11、 beeline命令 的使用方式: !<SQLLine command> --comments ; (感叹号开始)

如 !quit !connect

改变输出格式:在启动beeline时增加参数 ./beeline --outputformat=vertical

注意区分beeline命令和HCatalog sql语句:
!quit !connect ----beeline命令
show tables; select * from table2;---HCatalog DDL sql语句 (分号结尾,注释使用双横线 --)

Learning Apache Spark 2 by Muhammad Asif Abbasi English | 6 Jun. 2017 | ASIN: B01M7RO7US | 356 Pages | AZW3 | 16.22 MB Key Features Exclusive guide that covers how to get up and running with fast data processing using Apache Spark Explore and exploit various possibilities with Apache Spark using real-world use cases in this book Want to perform efficient data processing at real time? This book will be your one-stop solution. Book Description Spark juggernaut keeps on rolling and getting more and more momentum each day. The core challenge are they key capabilities in Spark (Spark SQL, Spark Streaming, Spark ML, Spark R, Graph X) etc. Having understood the key capabilities, it is important to understand how Spark can be used, in terms of being installed as a Standalone framework or as a part of existing Hadoop installation and configuring with Yarn and Mesos. The next part of the journey after installation is using key components, APIs, Clustering, machine learning APIs, data pipelines, parallel programming. It is important to understand why each framework component is key, how widely it is being used, its stability and pertinent use cases. Once we understand the individual components, we will take a couple of real life advanced analytics examples like: Building a Recommendation system Predicting customer churn The objective of these real life examples is to give the reader confidence of using Spark for real-world problems. What you will learn Overview Big Data Analytics and its importance for organizations and data professionals. Delve into Spark to see how it is different from existing processing platforms Understand the intricacies of various file formats, and how to process them with Apache Spark. Realize how to deploy Spark with YARN, MESOS or a Stand-alone cluster manager. Learn the concepts of Spark SQL, SchemaRDD, Caching, Spark UDFs and working with Hive and Parquet file formats Understand the architecture of Spark MLLib while discussing some of the
### 使用 Hive 行 NBA 投篮数据分析的实战案例 #### 数据准备阶段 在行 NBA 投篮数据分析之前,需要准备好数据集。通常可以从公开的数据源获取 NBA 的比赛记录和球员统计数据。这些数据可能包括每场比赛的时间、地点、参赛队伍以及每次投篮的具体信息(如位置、时间、得分情况等)。假设我们已经拥有了这样的数据并将其存储到 HDFS 中。 为了便于分析,可以创建一个表来保存投篮事件的相关字段。例如: ```sql CREATE TABLE IF NOT EXISTS nba_shots ( game_id STRING, player_name STRING, team_name STRING, shot_distance FLOAT, -- 投篮距离 shot_made_flag INT, -- 是否命中 (1 表示命中, 0 表示未命中) shot_type STRING, -- 投篮类型 (两分/三分) location_x FLOAT, -- X 坐标 location_y FLOAT -- Y 坐标 ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; ``` 此 SQL 创建了一个名为 `nba_shots` 的外部表用于加载原始 CSV 文件[^2]。 #### 数据清洗与预处理 由于实际采集的数据可能存在缺失值或者异常值的情况,因此需要先对数据做初步清理工作。以下是几个常见的操作: - **过滤掉无效的比赛 ID** - **移除射程超过合理范围内的样本** 可以通过以下查询语句实现基本的数据筛选功能: ```sql INSERT OVERWRITE TABLE cleaned_nba_shots SELECT * FROM nba_shots WHERE game_id IS NOT NULL AND shot_distance BETWEEN 0 AND 30; -- 合理的距离区间设定为 0 到 30 英尺之间 ``` 这里定义了一张新的表格叫做 `cleaned_nba_shots` 来存放经过简单净化后的高质量数据集合[^3]。 #### 统计计算部分 一旦完成了前期准备工作,则可以根据业务需求设计各种指标来行深入探索。下面列举了一些典型的例子供参考学习之用: ##### 计算每位选手平均有效投篮次数 通过聚合函数很容易得出每个运动员平均每场尝试了多少次成功的远距离射击动作。 ```sql SELECT player_name, AVG(shot_distance * shot_made_flag) as avg_effective_shot_attempts_per_game FROM cleaned_nba_shots GROUP BY player_name; ``` 这条命令会返回一份列表展示各个明星在整个赛季期间各自完成的有效出手频率状况如何变化趋势图谱[^4]。 ##### 探讨不同区域成功率差异对比研究 还可以一步细分考察特定区域内球率是否存在显著区别现象发生呢? ```sql WITH distance_bands AS ( SELECT *, CASE WHEN shot_distance < 8 THEN 'Close Range' WHEN shot_distance >=8 AND shot_distance<16 THEN 'Mid Range' ELSE 'Long Distance' END band_label FROM cleaned_nba_shots ) SELECT band_label, COUNT(*) total_attempts,SUM(shot_made_flag)/COUNT(*) success_rate FROM distance_bands GROUP BY band_label ORDER BY CAST(SUBSTR(band_label,-1)AS INTEGER); ``` 上述脚本首先利用 WITH 子句构建辅助视图表将整个球场划分为三个主要分区段落;接着再基于这个临时结构重新整理汇总得到各类别下的总体试炼数目及其对应的成功百分比例数值结果呈现出来给用户查看理解方便快捷直观明了[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

登峰大数据

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值