大数据原生集群 (Hadoop3.X为核心) 本地测试环境搭建一

搭建前说明:本篇开始围绕Hadoop3.x大数据组件做集群搭建,将会直接从各组件开始搭建,至于集群的准备工作都是一样的,直接去Hadoop2.x集群搭建一和二里面去看。总体上来讲较新的版本和老版本只是在搭建上有些地方不一样,使用上差别不大。当然本篇用于搭建的3.x集群为了防止影响,使用了一套新的环境,节点任然是三台

bash 复制代码
192.168.239.181 node001
192.168.239.182 node002
192.168.239.183 node003

本篇安装软件版本

JAVAJDK1.8 这里不再演示,直接准备就行

mysql5.6 安装步骤见 https://blog.csdn.net/dudadudadd/article/details/110874570

hadoop3.1.3 安装步骤见 https://blog.csdn.net/dudadudadd/article/details/139547748

hive3.1.3


Hive

第一步:去官网下载Hive的安装包,直接搜索apache hive就行,下载好之后上传服务器解压,并配置环境变量

bash 复制代码
export HIVE_HOME=/opt/hive-3.1.3
export PATH=$PATH:${HIVE_HOME}/bin

第二步:进入hive的conf目录下编辑配置文件,新建hive-site.xml文件并追加如下内容,注意这里直接用mysql了,就不介绍默认的元数据库类型了

xml 复制代码
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- jdbc 链接地址mysql 特别注意要改成自己的mysql所在地址,还有库名也可以自定义,注意mysql里面的元数据库一定不要盲目的手动去建立,不然使用的时候会出问题的,你要想自己先建好,那么要运行alter database hive character set latin1; 把字符集改了-->
	<property>
	  <name>javax.jdo.option.ConnectionURL</name>
	  <value>jdbc:mysql://192.168.1.103:3306/metastore?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8</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>
	
	<!-- mysql口令也要改写成自己的口令-->
	<property>
	  <name>javax.jdo.option.ConnectionPassword</name>
	  <value>root</value>
	  <description>password to use against metastore database</description>
	</property>
	
	<!-- hive的warehouse保存目录,就是hive保存数据的目录-->
    <property>
		<name>hive.metastore.warehouse.dir</name>
		<value>/user/hive/warehouse</value>
		<description>location of default database for the warehouse</description>
    </property>
	
	<property>
		<name>hive.cli.print.header</name>
		<value>true</value>
	</property>

	<property>
		<name>hive.cli.print.current.db</name>
		<value>true</value>
	</property>

	<property>
		<name>hive.exec.compress.output</name>
		<value>false</value>
	</property>
	
	<!-- 元数据服务响应地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node001:9083</value>
    </property>

	<!-- 启用hiveserver2 -->
	<property>
		<name>hive.server2.enable</name>
		<value>true</value>
	</property>

	<!-- hiveserver2响应连接的端口,默认10000 -->
	<property>
		<name>hive.server2.thrift.port</name>
		<value>10000</value>
	</property>

	<!-- hiveserver2响应范围控制 -->
	<property>
		<name>hive.server2.thrift.bind.host</name>
		<value>0.0.0.0</value>
	</property>

	<!-- hiveserver2可以用http服务以及服务端口 -->
	<property>
		<name>hive.server2.transport.mode</name>
		<value>binary,http</value>
	</property>
	
	<property>
		<name>hive.server2.thrift.http.port</name>
		<value>10001</value>
	</property>
</configuration>

第三步:把hive-env.sh.template文件末尾的.template去掉,让文件启用,且找到并修改如下配置

bash 复制代码
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/hadoop-3.1.3

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/hive-3.1.3/conf

第四步:在hive3.1.3和hadoop3.1.3整合的时候,会出现一个jar版本冲突,你要进入hive的lib目录下删掉guava-19.0.jar包,然后把hadoop的lib中27版本的guava包复制到hive里面

bash 复制代码
rm -rf /opt/hive-3.1.3/lib/guava-19.0.jar
cp /opt/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/hive-3.1.3/lib/

第五步:把你的mysql数据库jdbc驱动放到hive的lib目录下,然后运行元数据初始化脚本

bash 复制代码
./bin/schematool -dbType mysql -initSchema

当你看到如下提示意味着元数据库初始化成功

bash 复制代码
Initialization script completed
schemaTool completed

第六步:hive3.1.3和hadoop3.1.3整合的时候,必须在hadoop的core-site.xml里面添加如下配置,要不然hiveserver2的远程服务无法占用端口向外提供服务

bash 复制代码
<property>
	<name>hadoop.proxyuser.root.hosts</name>
	<value>*</value>
</property>
<property>
	<name>hadoop.proxyuser.root.groups</name>
	<value>*</value>
</property>

解释一下:hadoop3.x对安全相关做了更细致的限制,上面两个配置是hadoop允许哪些远程服务器(host域名)上的哪些用户组(groups)下的某个用户,以代理的身份执行hadoop上的操作,配置中的root就是你要使用的用户,我们在搭建2.x的集群时不需要配置这个玩意,直接启动就行,但是3.x如果你不配置,在使用hiveserver2的时候,就会发生启动不报错,但是远程连接不到,而且hive的运行节点,hiveserver2占用的端口也挂不上服务的问题。

第七步:运行命令进入hive,测试一下是否可以操作

bash 复制代码
/opt/hive-3.1.3/bin/hive --service metastore &
/opt/hive-3.1.3/bin/hive

并且测试hiveserver2能否正常使用

bash 复制代码
/opt/hive-3.1.3/bin/hiveserver2 &
/opt/hive-3.1.3/bin/beeline -u jdbc:hive2://node001:10000

后面还有内容,但工作原因。。。只能抽时间更新,大家见谅

相关推荐
智慧景区与市集主理人34 分钟前
五一乡村文旅增收难?巨有科技大数据双赋能破局突围
大数据·科技
TechubNews4 小时前
新火集团首席经济学家付鹏演讲——2026 年是 Crypto 加入到 FICC 资产配置框架元年
大数据·人工智能
Elastic 中国社区官方博客5 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
CS创新实验室7 小时前
CS实验室行业报告:机器人领域就业分析报告
大数据·人工智能·机器人
LinuxGeek102411 小时前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03的MySQL 9.7.0版本正式发布
大数据·mysql·kylin
容智信息11 小时前
国家级算力底座+企业级智能体:容智Agent OS 获选入驻移动云能中心,联手赋能千行百业
大数据·人工智能·自然语言处理·智慧城市
Chuer_11 小时前
讲透财务Agent核心概念,深度拆解财务Agent应用趋势
大数据·数据库·安全·数据分析·甘特图
gushinghsjj11 小时前
什么是主数据管理平台?怎么构建主数据管理平台?
大数据·数据库
焦糖玛奇朵婷11 小时前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
阿瑞说项目管理12 小时前
AI Agent 与普通 AI 助手的区别是什么?
大数据·人工智能·agent·智能体·企业级ai