大数据原生集群 (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

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

相关推荐
君不见,青丝成雪3 小时前
Flink双流join
大数据·数据仓库·flink
好好先森&4 小时前
Linux系统:C语言进程间通信信号(Signal)
大数据
EkihzniY4 小时前
结构化 OCR 技术:破解各类检测报告信息提取难题
大数据·ocr
吱吱企业安全通讯软件4 小时前
吱吱企业通讯软件保证内部通讯安全,搭建数字安全体系
大数据·网络·人工智能·安全·信息与通信·吱吱办公通讯
云手机掌柜4 小时前
Tumblr长文运营:亚矩阵云手机助力多账号轮询与关键词布局系统
大数据·服务器·tcp/ip·矩阵·流量运营·虚幻·云手机
拓端研究室7 小时前
专题:2025全球消费趋势与中国市场洞察报告|附300+份报告PDF、原数据表汇总下载
大数据·信息可视化·pdf
阿里云大数据AI技术9 小时前
MaxCompute聚簇优化推荐功能发布,单日节省2PB Shuffle、7000+CU!
大数据
Lx35212 小时前
Hadoop小文件处理难题:合并与优化的最佳实践
大数据·hadoop
激昂网络13 小时前
android kernel代码 common-android13-5.15 下载 编译
android·大数据·elasticsearch