赞
踩
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
yarn.nodemanager.aux-services.mapreduce.shuffle.class
org.apache.hadoop.mapred.ShuffleHandler
yarn.nodemanager.resource.memory-mb
1024
yarn.nodemanager.resource.cpu-vcores
1
打开winutils文件,把里面的bin文件复制到hadoop的安装路径,替换掉原来的bin文件,替换过程如下:
下载:apache-hadoop-3.1.0-winutils
也可以去GitHub上下载其它对应版本
把它复制到上一级目录,即
$ hdfs namenode -format
【温馨提示】回到hadoop安装bin目录下,右击以管理员的身份运行start-all.cmd文件,要不然会报权限问题
出现下面四个窗口就是 成功了,注意每个窗口标题的后面的名称,比如yarn nodemanager,如果没有出现则是失败
hdfs web 地址:http://localhost:9870/
yarn web 地址:http://localhost:8088/
到此为止window版本的hadoop就安装成功了
上述的 hive初始化是在 mysql安装完成后实现的。
官网下载:MySQL :: Download MySQL Community Server
【温馨提示】右键以管理员身份运行cmd,否则在安装时会报权限的错,会导致安装失败的情况。
# 切换到mysql bin目录下执行
# cd D:\software\window-hadoop-hive\mysql\mysql-8.0.28-winx64\bin
# d:
$ mysqld --initialize --console
$ mysqld --install mysql
$ net start mysql
$ mysql -uroot -p
#输入上面初始化的密码
$ net stop mysql
$ mysqld --console --skip-grant-tables --shared-memory
【温馨提示】由于上面的命令行被mysql的服务给占用,我们得重新开启一个新的命令行
$ mysql
$ update user set authentication_string = '' where user='root' ;
$ net start mysql
$ mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
【问题】如果mysql工具出现错误:
Authentication plugin ‘caching_sha2_password’ cannot be loaded
【原因】
很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin ‘caching_sha2_password’ cannot be loaded的错误。
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password.
【解决】
管理员权限运行命令
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
FLUSH PRIVILEGES;
$ mysql -uroot -p
各版本下载地址:Index of /dist/hive
这选择最新版本
hive 3.1.2版本下载地址:http://archive.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
$ 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
配置文件目录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
<?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}/<username> 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&useSSL=false&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>
# 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
【温馨提示】2.2.0版本之后就不提供cmd相关文件了,所以得去下载apache-hive-2.2.0-src.tar.gz,把这个版本里的bin目录文件替换到hive安装bin目录下。
下载:apache-hive-2.2.0-src.tar.gz
这里将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
在 mysql 数据库中创建 hive 数据库,名称就是 hive,编码 latin1
默认已经安装mysql8.0(见下面mysql安装)
# 在hive的bin目录下执行
$ hive --service schematool -dbType mysql -initSchema
在hyadoop安装目录 sbin 下执行指令:stall-all.cmd,上面其实已经验证过了,启动是没问题的。
默认已经安装mysql8.0(见下面mysql安装)
$ hive --service metastore
另起一个cmd窗口验证
$ hive
create databases test;
show databases;
【温馨提示】hive命令会慢慢不再使用了,以后就用beeline
在Hive服务安装目录的%HIVE_HOME%\conf\hive-site.xml配置文件中添加以下配置:
关于 beeline配置 前面已经配置,下面主要是为了让大家更清楚。
注意:HiveServer2端口 默认是10000,为了区别和不冲突,我这里不使用默认端口,使用10013, 不要使用 10002,这端口是HiveServer2的web 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替换成自己的用户名即可,其实这里的用户就是我本机的用户,也是上面创建文件夹的用户,这个用户是什么不重要,它就是个超级代理。
启动hiveserver2 之前必须重启hive服务
$ hive --service metastore
$ hive --service hiveserver2
【问题】java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
【解决】在hive 配置文件hive-site.xml添加如下配置:
![img](https://img-blog.csdnimg.cn/img_convert/7f44ed60952e5b386f053d6097b6cdcd.png) ![img](https://img-blog.csdnimg.cn/img_convert/fd5c332dea42173ecfab978e6b15013e.png) ![img](https://img-blog.csdnimg.cn/img_convert/33b254ac3651b7bea519008b09c7f8ac.png) **既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!** **由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新** **[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)** ,它就是个超级代理。 ![](https://img-blog.csdnimg.cn/81ea83f03e7a4cccb01ee0f013198ee4.png) ##### 2、启动hiveserver2 启动hiveserver2 之前必须重启hive服务
$ hive --service metastore
$ hive --service hiveserver2
>
> 【问题】java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunning
> 【解决】在hive 配置文件hive-site.xml添加如下配置:
>
>
>
[外链图片转存中…(img-wkS8AfCU-1715447008907)]
[外链图片转存中…(img-gvXHAtDW-1715447008907)]
[外链图片转存中…(img-xzcYjVM1-1715447008908)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。