项目实践---Windows11中安装Zookeeper/Hadoop/Hive

一、安装环境

Windows11 64位 + jdk1.8.0_251 +zookeeper3.5.5 + hadoop 3.1.0 + hive3.1.2
相关安装包下载地址:

链接:https://pan.baidu.com/s/1x3bsjwTOcyvQuv_MRGP7ug?pwd=dcxn 
提取码:dcxn

里面包含文件如下:
在这里插入图片描述

二、安装JDK

将 jdk1.8.0_251.zip解压到非中文目录,然后复制这个目录,运行脚本:“java环境变量设置.bat”
在这里插入图片描述
粘贴目录,回车即可。

脚本代码:

@echo off   
title JDKt环境变量设置   
color 3e
set /p inputJH= [请输入你安装的JDK目录:]  
if /i "%inputJH%"=="" set inputJH=%JAVA_HOME%   
echo 正在配置环境变量,请稍候......   
reg add "HKCU\Environment" /v JAVA_HOME /t reg_sz /d "%inputJH%" /f  
reg add "HKCU\Environment" /v ClassPath /t reg_sz /d ".;"%%JAVA_HOME%%\lib\dt.jar"";""%%JAVA_HOME%%\lib\tools.jar"" /f  
reg add "HKCU\Environment" /v Path /t reg_sz /d ""%%JAVA_HOME%%\bin";" /f  
pause   
cls   
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   
echo.   
echo 	恭喜您,环境变量配置成功...   
echo.   
echo  您的Jdk的安装路径为:%inputJH%   
echo.  
echo 	注意:如果不重启的话,可以去“我的电脑”“属性”那里在设置环境   
echo  变量那里单击一下确定,然后这个环境变量就会生效了。   
echo.   
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓   
echo. 
set /p tmp=	操作结束,请按回车键退出...   
pause>nul

最后进入cmd,输入命令 java -version 查看 jdk 是否安装成功
在这里插入图片描述

三、安装zookeeper
1、解压文件到非中文目录,在目录下新建data和log两个文件夹
2.打开zookeeper-3.8.1\conf,把zoo_sample.cfg重命名成zoo.cfg

在这里插入图片描述

3.在文本编辑器里打开zoo.cfg把dataDir的值改成如下:dataDir=D:\你的目录\apache-zookeeper-3.5.5\tmp
dataDir=C:\\bigdata\\apache-zookeeper-3.5.5-bin\\data
dataLogDir=C:\\bigdata\\apache-zookeeper-3.5.5-bin\\log

在这里插入图片描述

4.添加系统环境变量:ZOOKEEPER_HOME

在这里插入图片描述
编辑Path:在现有的值后面添加 ;%ZOOKEEPER_HOME%\bin;
在这里插入图片描述

5.运行Zookeeper:打开cmd然后执行zkServer(注意,cmd窗口不要关闭。)

启动成功且显示如下(提示信息中包含:ZooKeeper audit is enabled.):
在这里插入图片描述

6.启动报错问题修复

在windows下启动zookeeper提示Zookeeper audit is disabled;表示启动失败,如下:
在这里插入图片描述
解决办法:

1、在zookeeper的配置文件conf中,打开文件zoo.cfg;
2、对zoo.cfg文件进行修改,在里面加上admin.enable=true即可(如果改完重启还是失败,可修改为:audit.enable=true 再试试)3、保存,重启zookeeper(双击bin目录下zkServer.cmd),启动成功!
三、安装 hadoop
1.解压

把下载的hadoop-3.1.0.tar.gz压缩包解压到自己要安装的位置,最好不要有中文

2.配置环境变量

(1)创建系统变量 HADOOP_HOME,变量值为解压的目录(我这边用的其他版本,流程都一样)
在这里插入图片描述
(2)在path变量中添加 hadoop的 bin 和 sbin 路径

%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin;

在这里插入图片描述

3.验证

进入cmd,输入命令hadoop version查看hadoop是否安装成功
在这里插入图片描述

四、配置 hadoop

1.进入hadoop-3.1.3目录,创建 data 文件夹
在这里插入图片描述
2.进入data目录,创建datanode和namenode文件夹
在这里插入图片描述
3.进入hadoop-3.1.3\etc\hadoop目录,用记事本或者其他编辑器打开如下文件并配置
(1)配置文件core-site.xml,添加

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

(2)编辑文件hdfs-site.xml,添加

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/D:/hadoop313/hadoop-3.1.3/data/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/D:/hadoop313/hadoop-3.1.3/data/datanode</value>
    </property>
</configuration>

这里要把两个“<value>”改成自己hadoop安装的地址。

(3)编辑文件mapred-site.xml,添加

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

(4)编辑文件yarn-site.xml,添加

<configuration>
 
<!-- Site specific YARN configuration properties -->
 
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1024</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
    </property>
 
</configuration>
  1. 进入hadoop-3.1.3\sbin目录,修改 start-yarn.cmd的yarn路径

此处是为了解决电脑中安装过node.js的重名命令yarn,所以在运行hadoop的yarn的时候需要制定其yarn路径,打开start-yarn.cmd文件,修改其yarn路径,代码如下:

@rem start resourceManager
start "Apache Hadoop Distribution" %HADOOP_HOME%\bin\yarn resourcemanager
@rem start nodeManager
start "Apache Hadoop Distribution" %HADOOP_HOME%\bin\yarn nodemanager
@rem start proxyserver
@rem start "Apache Hadoop Distribution" %HADOOP_HOME%\bin\yarn

在这里插入图片描述
5.下载并解压hadoop-winutils.zip,选择对应Hadoop版本,复制解压的hadoop-winutils/hadoop-3.1.3/bin里面的所有文件到hadoop-3.1.3\bin 中

在这里插入图片描述
6. 进入hadoop-3.1.3\share\hadoop\yarn\timelineservice,复制一份 hadoop-yarn-server-timelineservice-3.1.3.jar 到 hadoop-3.1.3\share\hadoop\yarn
在这里插入图片描述
复制一份 hadoop-yarn-server-timelineservice-3.1.3.jar
在这里插入图片描述
7. 在 cmd 命令控制台输入一下命令格式化节点

hdfs namenode -format 

在这里插入图片描述

8.在管理员cmd中执行命令 start-all.cmd 启动hadoop

【温馨提示】回到hadoop安装bin目录下,右击以管理员的身份运行start-all.cmd文件,要不然会报权限问题

出现下面四个窗口 即安装成功,注意每个窗口标题的后面的名称,比如yarn nodemanager,如果没有出现则是失败
在这里插入图片描述
(1)浏览器访问:http://localhost:9870
在这里插入图片描述
(2)浏览器访问:http://localhost:8088
在这里插入图片描述
在hadoop上创建hdfs目录(后面hive安装时配置文件会用到)

$ hadoop fs  -mkdir       /tmp
$ hadoop fs  -mkdir       /user/
$ hadoop fs  -mkdir       /user/hive/
$ hadoop fs  -mkdir       /user/hive/warehouse 
$ hadoop fs  -chmod g+w   /tmp
$ hadoop fs  -chmod g+w   /user/hive/warehouse

在这里插入图片描述

window11安装hadoop安装成功!

五、安装Hive

下载地址:http://archive.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
ps:这个在压缩包已经提供

配置环境变量HIVE_HOME,填入hive的解压目录
在path中加入:%HIVE_HOME%\bin

3)新建本地目录my_hive,然后再建立四个文件夹(后面配置文件会用到)
在这里插入图片描述
4)在hadoop上创建hdfs目录(这一步上面Hadoop安装时已经做过)

$ hadoop fs  -mkdir       /tmp
$ hadoop fs  -mkdir       /user/
$ hadoop fs  -mkdir       /user/hive/
$ hadoop fs  -mkdir       /user/hive/warehouse 
$ hadoop fs  -chmod g+w   /tmp
$ hadoop fs  -chmod g+w   /user/hive/warehouse

5)修改Hive 配置文件
配置文件目录hive\apache-hive-3.1.2-bin\conf中4个默认的配置文件模板拷贝成新的文件名

hive-default.xml.template -----> hive-site.xml
hive-env.sh.template -----> hive-env.sh
hive-exec-log4j.properties.template -----> hive-exec-log4j2.properties
hive-log4j.properties.template -----> hive-log4j2.properties

1、hive-site.xml 文件:配置文件内容如下

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 
<configuration>
 
<!--hive的临时数据目录,指定的位置在hdfs上的目录-->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of default database for the warehouse</description>
    </property>
 
<!--hive的临时数据目录,指定的位置在hdfs上的目录-->
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/tmp/hive</value>
        <description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description>
    </property>
 
<!-- scratchdir 本地目录 -->
    <property>
        <name>hive.exec.local.scratchdir</name>
        <value>F:/bigdata/apache-hive/my_hive/scratch_dir</value>
        <description>Local scratch space for Hive jobs</description>
    </property>
 
<!-- resources_dir 本地目录 -->
    <property>
        <name>hive.downloaded.resources.dir</name>
        <value>F:/bigdata/apache-hive/my_hive/resources_dir/${hive.session.id}_resources</value>
        <description>Temporary local directory for added resources in the remote file system.</description>
    </property>
 
<!-- querylog 本地目录 -->
    <property>
        <name>hive.querylog.location</name>
        <value>F:/bigdata/apache-hive/my_hive/querylog_dir</value>
        <description>Location of Hive run time structured log file</description>
    </property>
 
<!-- operation_logs 本地目录 -->
    <property>
        <name>hive.server2.logging.operation.log.location</name>
        <value>F:/bigdata/apache-hive/my_hive/operation_logs_dir</value>
        <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
    </property>
 
<!-- 数据库连接地址配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive?serverTimezone=UTC&amp;useSSL=false&amp;allowPublicKeyRetrieval=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>root</value>
        <description>Username to use against metastore database</description>
    </property>
 
<!-- 数据库访问密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
        <description>password to use against metastore database</description>
    </property>
 
<!-- 解决 Caused by: MetaException(message:Version information not found in metastore. ) -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
        <description>
        Enforce metastore schema version consistency.
        True: Verify that version information stored in is compatible with one from Hive jars. Also disable automatic
        schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
        proper metastore schema migration. (Default)
        False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
        </description>
    </property>
 
<!-- 自动创建全部 -->
<!-- hive Required table missing : "DBS" in Catalog""Schema" 错误 -->
    <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value>
        <description>Auto creates necessary schema on a startup if one doesn't exist. Set this to false, after creating it once.To enable auto create also set hive.metastore.schema.verification=false. Auto creation is not recommended for production use cases, run schematool command instead.</description>
    </property>
	
 
<!-- 指定hiveserver2连接的host(hive用户要绑定的网络接口) -->
<property>
   <name>hive.server2.thrift.bind.host</name>
   <value>localhost</value>
   <description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
 
<!-- 指定hiveserver2连接的端口号,hs2端口 默认是10000,为了区别,我这里不使用默认端口-->
<property>
    <name>hive.server2.thrift.port</name>
    <value>10002</value>
</property>
 
<property>
  <name>hive.server2.active.passive.ha.enable</name>
  <value>true</value>
  <description>Whether HiveServer2 Active/Passive High Availability be enabled when Hive Interactive sessions are enabled.This will also require hive.server2.support.dynamic.service.discovery to be enabled.</description>
</property>
 
 
</configuration>

2、hive-env.sh 文件:配置文件内容如下

# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=D:\software\window-hadoop-hive\hadoop\hadoop-3.1.3
 
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=D:\software\window-hadoop-hive\hive\apache-hive-3.1.2-bin\conf
 
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=D:\software\window-hadoop-hive\hive\apache-hive-3.1.2-bin\lib

6)替换hvie中的bin目录

【温馨提示】2.2.0版本之后就不提供cmd相关文件了,所以得去下载apache-hive-2.2.0-src.tar.gz,把这个版本里的bin目录文件替换到hive安装bin目录下。
这个下载太慢,上文压缩包已经提供,在:windows部署大数据相关安装包/hive/hive-cmd-bin.zip

下载:apache-hive-2.2.0-src.tar.gz

7)下载mysql-connector-java-*.jar(在压缩包中也有)

这里将mysql-connector-java-*.jar拷贝到hvie安装目录lib下

下载地址:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar

在这里插入图片描述
8)创建Hive 初始化依赖的数据库hive,注意编码格式:latin1
这里需要安装MySQL8,在压缩包已经提供安装包,自行安装即可。连接MySQL8需要高版本的navcat客户端,这里不讲述啦!

在  mysql 数据库中创建 hive 数据库,名称就是 hive,编码 latin1

在这里插入图片描述
9)Hive 初始化数据
默认已经安装mysql8.0

# 在hive的bin目录下执行
$ hive --service schematool -dbType mysql -initSchema

在这里插入图片描述
10)启动Hive 服务
1、首先启动Hadoop
2、再启动Hive 服务
默认已经安装mysql8.0

hive --service metastore

3、验证
另起一个cmd窗口验证

$ hive
create databases test;
show databases;

11)配置beeline
1、添加beeline配置

【温馨提示】hive命令会慢慢不再使用了,以后就用beeline

在Hive服务安装目录的%HIVE_HOME%\conf\hive-site.xml配置文件中添加以下配置:

关于 beeline配置 前面已经配置,下面主要是为了让大家更清楚。

注意:HiveServer2端口 默认是10000,为了区别和不冲突,我这里不使用默认端口,使用10013, 不要使用 10002,这端口是HiveServer2web UI的端口,否则会报如下端口冲突问题。
<!-- host -->
<property>
    <name>hive.server2.thrift.bind.host</name>
    <value>localhost</value>
    <description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
 
<!-- hs2端口 默认是10000,为了区别和不冲突,我这里不使用默认端口,使用10013
     不要使用 10002,这端口是HiveServer2的web UI的端口
-->
<property>
    <name>hive.server2.thrift.port</name>
    <value>10013</value>
</property>

在Hadoop服务安装目录的%HADOOP_HOME%\etc\hadoop\core-site.xml配置文件中添加以下配置:

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

【注意】hadoop.proxyuser.29209.hosts和hadoop.proxyuser.29209.hosts,其中29209是连接beeline的用户,将29209替换成自己的用户名即可,其实这里的用户就是我本机的用户,也是上面创建文件夹的用户,这个用户是什么不重要,它就是个超级代理。
在这里插入图片描述
2、启动hiveserver2
启动hiveserver2 之前必须重启hive服务

$ hive --service metastore
$ hive --service hiveserver2

【问题】java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
【解决】在hive 配置文件hive-site.xml添加如下配置:

<property>
    <name>hive.server2.active.passive.ha.enable</name>
    <value>true</value>
    <description>Whether HiveServer2 Active/Passive High Availability be enabled when Hive Interactive sessions are enabled.This will also require hive.server2.support.dynamic.service.discovery to be enabled.</description>
</property>

重启hiveserver2

$ hive --service metastore
$ hive --service hiveserver2

访问
HiveServer2 web:http://localhost:10002/
在这里插入图片描述
以上流程我都是亲手操作过的~ 点个关注吧!!!!!!
最后!!! 可能在Hadoop或者Hive在启动或者工具连接过程中,会有报错,可以看我主页另外的帖子,也许能解决问题~

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Windows下配置HiveHadoop、Spark、HBase、Flink一体化开发环境的步骤如下: 1. 下载Java JDK,并安装配置好环境变量; 2. 下载Hadoop,并解压到本地目录; 3. 配置环境变量,将Hadoop的bin目录添加到PATH; 4. 在Hadoop的etc/hadoop目录下,修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml四个文件,具体修改内容可以参考Hadoop的官方文档; 5. 下载Hive,并解压到本地目录; 6. 配置环境变量,将Hive的bin目录添加到PATH; 7. 创建Hive的日志目录,例如:C:\tmp\hive\log; 8. 在Hive的conf目录下,将hive-site.xml.template 文件复制为 hive-site.xml,并打开编辑,在文件添加以下内容: ``` <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:/path/to/metastore_db;create=true</value> <description>JDBC connect string for a JDBC metastore</description> </property> <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.exec.scratchdir</name> <value>/tmp/hive</value> <description>Scratch space for Hive jobs</description> </property> <property> <name>hive.log.dir</name> <value>C:\tmp\hive\log</value> <description>Directory to store Hive logs</description> </property> ``` 其,ConnectionURL 部分需要根据实际情况修改; 9. 下载Spark,并解压到本地目录; 10. 配置环境变量,将Spark的bin目录添加到PATH11. 在Spark的conf目录下,将spark-env.cmd.template 文件复制为 spark-env.cmd,并打开编辑,在文件添加以下内容: ``` set SPARK_LOCAL_IP=127.0.0.1 set JAVA_HOME=你的Java JDK路径 set HADOOP_HOME=你的Hadoop路径 set HADOOP_CONF_DIR=%HADOOP_HOME%\etc\hadoop ``` 其,SPARK_LOCAL_IP 为 Spark Master 的 IP,如果是本地开发可以设置为 127.0.0.1; 12. 下载HBase,并解压到本地目录; 13. 配置环境变量,将HBase的bin目录添加到PATH; 14. 在HBase的conf目录下,将hbase-site.xml.template 文件复制为 hbase-site.xml,并打开编辑,在文件添加以下内容: ``` <property> <name>hbase.rootdir</name> <value>file:///C:/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>file:///C:/hbase/zookeeper</value> </property> ``` 其,hbase.rootdir 和 hbase.zookeeper.property.dataDir 需要根据实际情况修改; 15. 下载Flink,并解压到本地目录; 16. 配置环境变量,将Flink的bin目录添加到PATH; 17. 在Flink的conf目录下,将flink-conf.yaml.template 文件复制为 flink-conf.yaml,并打开编辑,在文件添加以下内容: ``` jobmanager.rpc.address: localhost jobmanager.rpc.port: 6123 taskmanager.numberOfTaskSlots: 1 ``` 18. 启动HadoopHive、HBase、Spark、Flink服务,具体启动命令可以参考官方文档。 注意:在Windows上一体化开发环境的配置可能会遇到一些问题,例如路径的反斜杠需要转义为双反斜杠,或者文件编码问题等。如果遇到问题,可以搜索相关解决方案或者在社区咨询。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

容若只如初见

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

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

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

打赏作者

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

抵扣说明:

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

余额充值