DeepOps的hadoop小笔记-HIVE安装ubuntu+virtualbox

00 前期准备

1、已部署好hadoop集群
2、已部署java环境
3、已经安装好mysql

01 下载hive安装文件

https://hive.apache.org/downloads.html

02 修改配置文件

hive-env.sh.template名称为hive-env.sh,一些hive的环境变量内容可以在里面设置。

系统用户环境变量中增加:

export HADOOP_HOME=<hadoop-install-dir>
export HIVE_HOME=<hive-install-dir>
export PATH=$HIVE_HOME/bin:$PATH

环境变量中增加配置HIVE_CONF_DIR路径 可以放在hive-env.sh

export HIVE_CONF_DIR=/opt/module/hive/conf

03 HDFS中创建HIVE目录

$HADOOP_HOME/bin/hadoop fs -mkdir /tmp   
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/用户名/warehouse   
$HADOOP_HOME/bin/hadoop fs -chmod g+w /tmp   
$HADOOP_HOME/bin/hadoop fs -chmod g+w /user/用户名/warehouse

04 HiveServer2设置

1 使用mysql管理HiveServer2 的metadata

更多HiveServer2设置请参考https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2

2 hive-site.xml的调整

hive-site.xml 直接创建在conf 文件夹中新建,可以根据hive-default.xml.template 文件进行调整。

<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hive_schema?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>mysql用户名</value>
    <description>username to use against metastore database</description>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>mysql密码</value>
    <description>password to use against metastore database</description>
  </property>

  
  <property>
    <name>hive.server2.authentication</name>
    <value>NONE</value>
    <description></description>
  </property>

</configuration>

默认设置
hive.server2.thrift.min.worker.threads – Minimum number of worker threads, default 5.
hive.server2.thrift.max.worker.threads – Maximum number of worker threads, default 500.
hive.server2.thrift.port – TCP port number to listen on, default 10000.
hive.server2.thrift.bind.host – TCP interface to bind to.

3 HiveServer2 密码访问设置

core-site.xml

hadoop的配置文件core-site.xml增加如下配置xxx调整为系统用户名,根据登录用户调整

<property>
   <name>hadoop.proxyuser.xxx.hosts</name>
   <value>*</value>
</property>
<property>
   <name>hadoop.proxyuser.xxx.groups</name>
   <value>*</value>
</property>

hive-site.xml

不设置访问密码

  <property>
    <name>hive.server2.authentication</name>
    <value>NONE</value>
    <description></description>
  </property>

05 运行

1 启动hadoop

# 启动dfs
/opsdata/envs/hadoop-3.2.1/sbin/start-dfs.sh

# 启动yarn
/opsdata/envs/hadoop-3.2.1/sbin/start-yarn.sh

2 Running Hive CLI

$ $HIVE_HOME/bin/hive

3 Running HiveServer2 and Beeline

初始化metadata

#  $ $HIVE_HOME/bin/schematool -dbType <db type> -initSchema
  $ $HIVE_HOME/bin/schematool -dbType mysql -initSchema

启动HiveServer2

  $ $HIVE_HOME/bin/hiveserver2
  or
  $ $HIVE_HOME/bin/hive --service hiveserver2

使用beeline链接HiverServer2

  # $HIVE_HOME/bin/beeline -u jdbc:hive2://$HS2_HOST:$HS2_PORT
  $  beeline -u jdbc:hive2://192.168.1.70:10000

4 使用DATAGRIG链接

在这里插入图片描述

06 我遇到的问题处理

hive内依赖的guava.jar和hadoop内的版本不一致
检验方法并解决:
1. 查看hadoop安装目录下share/hadoop/common/lib内guava.jar版本
2. 查看hive安装目录下lib内guava.jar的版本 如果两者不一致,删除版本低的,并拷贝高版本的。

07 扩展阅读与参考资料

hive基本结构与原理:https://support.huaweicloud.com/productdesc-mrs/mrs_08_001101.html
设置HiveServer2 : https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2
官方文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted
B站小视频:https://www.bilibili.com/video/BV1EZ4y1G7iL

08 后续

1、访问的权限控制,如何设置通过密码访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Linux上搭建Hive on Spark环境,需要以下步骤: 1. 安装Hadoop和Spark 首先需要安装Hadoop和Spark,可以选择Hadoop 2.8.0和Spark 1.6.3版本。安装过程可以参考官方文档。 2. 安装Hive 安装Hive需要下载Hive 2.1.1版本,并解压到指定目录。然后需要配置Hive的环境变量,将Hive的bin目录添加到PATH中。 3. 配置Hive on Spark 在Hive的conf目录下,需要创建hive-site.xml文件,并添加以下配置: ``` <property> <name>hive.execution.engine</name> <value>spark</value> </property> <property> <name>spark.master</name> <value>local[*]</value> </property> <property> <name>spark.submit.deployMode</name> <value>client</value> </property> <property> <name>spark.executor.memory</name> <value>1g</value> </property> ``` 其中,hive.execution.engine配置为spark,spark.master配置为local[*],表示使用本地模式运行Spark。spark.submit.deployMode配置为client,表示以客户端模式提交Spark任务。spark.executor.memory配置为1g,表示每个executor的内存为1GB。 4. 启动Spark和Hive 启动Spark和Hive需要分别执行以下命令: ``` $SPARK_HOME/sbin/start-all.sh $HIVE_HOME/bin/hive ``` 其中,$SPARK_HOME和$HIVE_HOME分别为Spark和Hive安装目录。 5. 测试Hive on Spark 在Hive命令行中,可以执行以下命令测试Hive on Spark: ``` hive> set hive.execution.engine=spark; hive> select count(*) from table_name; ``` 其中,table_name为需要查询的表名。如果查询结果正确,则说明Hive on Spark环境搭建成功。 ### 回答2: Hadoop是一个开源的分布式文件系统和计算框架,在大数据领域中应用广泛,而Hive则是基于Hadoop的数据仓库系统,通过将数据存储在Hadoop中,并使用类SQL的语言查询和分析数据。但是,Hive的执行速度很慢,而Spark是速度很快的内存计算框架,能够比Hadoop更快地处理大数据。因此,用户可以使用Hive on Spark来加速Hive查询。 要在Linux上搭建Hive on Spark环境, 需要按照以下步骤进行操作: 1. 下载并安装Hadoop:在官方网站上下载Hadoop的最新版本,然后解压和配置。 2. 下载并安装Spark:在官方网站上下载Spark的最新版本,然后解压和配置。 3. 下载并安装Hive:在官方网站上下载Hive的最新版本,然后解压和配置。 4. 配置环境变量:在.bashrc或.bash_profile中添加Hadoop和Spark的路径,并运行source命令使其生效。 5. 启动Hadoop集群:运行start-all.sh脚本启动Hadoop集群,可以通过jps命令检查集群是否正常运行。 6. 启动Spark:运行spark-shell来启动Spark,可以通过测试程序检查Spark是否正常运行。 7. 启动Hive:运行hive命令来启动Hive,可以通过测试程序测试Hive是否正常运行。 8. 配置Hive on Spark:在hive-site.xml文件中添加以下变量来配置Hive on Spark: hive.execution.engine=spark hive.spark.client.server.connect.timeout=600 hive.spark.client.connect.timeout=600 9. 验证Hive on Spark:运行一些查询来验证Hive on Spark是否正常运行,并通过Spark网页界面查看运行情况。 总之,搭建Hive on Spark环境需要仔细地完成操作,按照步骤进行操作,将会帮助你更快更有效地处理大数据。 ### 回答3: 首先,在准备搭建 Hive on Spark 环境之前,我们需要确保已经安装了 Java JDK 、Hadoop 和 Spark 环境。在此基础上,按照以下步骤完成 Hive on Spark 的搭建: 1. 下载Hive 在 Apache Hive 的官网上可以下载到需要的版本,我们这里选择 hive-2.1.1 版本,下载后解压。 2. 配置Hadoop环境变量 在 ~/.bashrc 中添加如下内容: export HADOOP_HOME=/your/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin 保存文件,并使用 source ~/.bashrc 命令来使环境变量立即生效。 3. 配置Hive环境变量 在 ~/.bashrc 中添加如下内容: export HIVE_HOME=/your/path/to/hive export PATH=$PATH:$HIVE_HOME/bin 保存文件,并使用 source ~/.bashrc 命令来使环境变量立即生效。 4. 配置Spark环境变量 在 ~/.bashrc 中添加如下内容: export SPARK_HOME=/your/path/to/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin 保存文件,并使用 source ~/.bashrc 命令来使环境变量立即生效。 5. 配置Hivehive-site.xml文件 将 $HIVE_HOME/conf 目录下的 hive-default.xml.template 文件复制一份并命名为 hive-site.xml,然后根据需要进行修改。在 hive-site.xml 中添加以下内容: ``` <property> <name>spark.master</name> <value>spark://<SPARK_MASTER_HOST>:<SPARK_MASTER_PORT></value> <description>URL of the Spark Master</description> </property> <property> <name>spark.submit.deployMode</name> <value>client</value> <description>Whether to run Spark in client or cluster mode</description> </property> <property> <name>hive.execution.engine</name> <value>spark</value> <description>Execution engine</description> </property> <property> <name>hive.spark.client.connect.timeout</name> <value>300s</value> </property> ``` 注意,其中的 <SPARK_MASTER_HOST> 和 <SPARK_MASTER_PORT> 分别应该替换为实际使用的 Spark Master 的地址和端口。 6. 配置Spark的spark-defaults.conf文件 将 $SPARK_HOME/conf 目录下的 spark-defaults.conf.template 文件复制一份并命名为 spark-defaults.conf,然后根据需要进行修改。在 spark-defaults.conf 中添加以下内容: ``` spark.executor.memory 4g spark.driver.memory 2g spark.sql.shuffle.partitions 200 ``` 根据需要调整默认的内存大小(如果已经分配过多可能会导致OOM),设置适当的partition数(避免执行时的数据倾斜问题)。 7. 启动Hive服务 执行启动Hive的命令: ``` hive --service metastore & hive ``` 需要注意的是,需要先启动 metastore 服务,然后才能启动 Hive 客户端。 8. 准备测试数据 接下来,为了测试 Hive on Spark 的功能,可以使用 Hive 提供的测试数据集来进行测试。 将 https://github.com/facebookarchive/facebook-360-spatial-workstation.git 克隆到本地,进入 samples 文件夹,执行以下命令来生成哈希表: ``` beeline -n hadoop -d org.apache.hive.jdbc.HiveDriver \ -jdbc:hive2://localhost:10000 \ -e "CREATE TABLE h3 (id int, lat double, lon double, geog string) \ ROW FORMAT DELIMITED \ FIELDS TERMINATED BY ',' \ LINES TERMINATED BY '\n' \ STORED AS TEXTFILE;" cd h3/ /data/gdal/gdal-2.2.0/bin/ogr2ogr -f CSV GEOM{FID}H3v11.csv geohash-cells.geojson -lco COMPRESS=DEFLATE beeline -n hadoop -d org.apache.hive.jdbc.HiveDriver \ -jdbc:hive2://localhost:10000 \ -e "LOAD DATA LOCAL INPATH '/h3/GEOMFIDH3v11.csv' INTO TABLE h3;" ``` 在以上命令中,我们使用了 beeline 来连接到 Hive 服务器,并使用 ogr2ogr 工具读取 geojson 文件并转存为 CSV 文件后导入到 Hive 中。 9. 执行Spark SQL查询 接下来可以使用 Spark SQL 来查询 Hive 中的数据。 运行 Spark Shell: ``` $SPARK_HOME/bin/spark-shell --master spark://<SPARK_MASTER_HOST>:<SPARK_MASTER_PORT> \ --jars $HIVE_HOME/lib/hive-exec-<HIVE_VERSION>.jar,$HIVE_HOME/lib/hive-metastore-<HIVE_VERSION>.jar ``` 如果以上命令运行正常,将会进入 Spark Shell 中。 在 Shell 中运行如下代码: ``` import org.apache.spark.sql._ val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc) hiveContext.setConf("hive.metastore.uris","thrift://<IP_ADDRESS>:9083") hiveContext.sql("use default") hiveContext.sql("show databases").foreach(println) hiveContext.sql("select count(*) from h3").foreach(println) ``` 其中,<IP_ADDRESS> 应该替换为实际使用的 Thrift 服务器的 IP 地址。 10. 结束Spark SQL查询 完成测试后,可以使用以下命令退出 Spark Shell: ``` scala> :q ``` 至此,Hive on Spark 环境已经搭建完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值