Hadoop 3.0.0的集群搭建和Hive 3.1.3的安装

news/2024/5/16 19:10:50/文章来源:https://blog.csdn.net/qq_43549604/article/details/130753886

Hi,朋友们,我们又见面了,这一次我给大家带来的是Hadoop集群搭建及Hive的安装。

说明一下,网上有很多的教程,为什么我还要水?

第一,大多数的安装都是很顺利的,没有疑难解答。

第二,版本问题,网上的搭建在3以前的比较多。

第三,我想给出一个更简洁的安装教程,把道理说明白,让读者就算在安装的过程中遇到问题也知道问题出在哪,应该朝哪个方向去要解决方案。

Hadoop-3.0.0的集群搭建

hadoop集群的安装,关键在主节点,主节点配置好以后,将主节点复制到其他做数据节点的服务器上就不用管了。
我有三台服务器,ip分别是192.168.12.71,192.168.12.200,192.168.12.201。
以12.71服务器作为主节点,我的hadoop路径是‘/opt/hadoop-3.0.0’首先要在这台服务器上安装一个jdk,我的jdk路径是‘/opt/jdk1.8’。
然后是设置hosts,vim /etc/hots

192.168.12.71 node1
192.168.12.200 node2
192.168.12.201 node3

配置

现在开始做Hadoop主节点的配置工作,我们先到hadoop的 ‘etc/hadoop/’目录下,所有的配置文件都在里面。

  1. hadoop-env.sh
    在这个文件里,增加一行指定Jdk目录
    export JAVA_HOME=/opt/jdk1.8
  2. core-site.xml
<property><name>fs.defaultFS</name><value>hdfs://node1:9000</value>
</property>
  1. hdfs-site.xml
<property><name>dfs.replication</name><value>3</value>
</property>
<!--下面的是配置namenode和datanode的数据存储位置,若不配置会有默认位置-->
<property><name>dfs.namenode.name.dir</name><value>/home/zhibei/Hadoop/hadoop-3.0.0/data/namenode</value>
</property><property><name>dfs.datanode.data.dir</name><value>/home/zhibei/Hadoop/hadoop-3.0.0/data/datanode</value>
</property>
  1. mapred-site.xml
   <property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.application.classpath</name><value>/opt/hadoop-3.0.0/share/hadoop/mapreduce/*:/opt/hadoop-3.0.0/share/hadoop/mapreduce/lib/*</value></property>

报错
Error: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster Please check whether your etc/hadoop/mapred-site.xml contains the below configuration:
如果不配置,mapreduce.application.classpath,则会报以上错误,在你hive数据做插入时现象如下
在这里插入图片描述
这个报错是在8088的端口上找到对应的插入日志,然后查看详情,就能看到。
5. yarn-site.xml

  <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>node1</value></property>
  1. workers
node1
node2
node3

总共配置就是这6项。
然后把hadoop3.0.0这个节点给另外的服务器复制过去。

格式化

主节点的格式化这一步,是非常重要的。执行命令
hadoop-3.0.0/bin/hadoop namenode -format

启动hadoop集群

在使用start-all.sh和stop-all.sh脚本启停脚本之前,先在两个脚本之前添加如下内容。

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

启动 hadoop-3.0.0/sbin/start-all.sh
启动完成之后就是jps命令,jps来自jdk中,首先保证每个节点都有jdk.请把jdk配置出来
vim /etc/profile

#添加如下内容
export JAVA_HOME=/opt/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

完成之后执行
source /etc/profile
在jdk没有在环境中配置时,使用jps命令会报找不到的问题。在配置了jdk环境之后,jps执行出现permission的权限问题,那就需要给jps文件赋权,找到jdk/bin/jps文件,执行
chmod 775 jps
就ok.
接下来就是使用jps查看各服务器中启动的服务。
node1
在这里插入图片描述
node2
在这里插入图片描述
node3
在这里插入图片描述
日志信息可以在hadoop-3.0.0/logs里面查看。等集群启动完成之后就可以访问,相关的网页了。
网页一 http://192.168.12.71:9870/
在这里插入图片描述
网页二 http://192.168.12.71:8088/
在这里插入图片描述
那么集群的搭建就到这样!

Hive-3.1.3的安装

我的hive路径是’/opt/hive-3.1.3/',和node1节点在同一个服务器。

准备工作

你首先需要有mysql,启动以后,需要创建一个数据库,我创建了一个hivedb供hive存储数据用。下面的配置中会体现。

配置

  1. hive-site.xml
    这个配置文件需要先到hive-3.1.3/conf/目录下创建,然后添加如下内容
</configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node1:3306/hivedb?createDatabaseIfNotExist=true&amp;useSSL=false</value><description>JDBC connect string for a JDBC metastore</description><!-- 如果 mysql 和 hive 在同一个服务器节点,那么请更改 hadoop02 为 localhost --></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><property><name>javax.jdo.option.ConnectionPassword</name><value>password</value><description>password to use against metastore database</description></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value><description>hive default warehouse, if nessecory, change it</description></property><property><name>hive.support.concurrency</name><value>true</value></property><property><name>hive.enforce.bucketing</name><value>true</value></property><property><name>hive.txn.manager</name><value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value></property><property><name>hive.compactor.initiator.on</name><value>true</value></property><property><name>hive.compactor.worker.threads</name><value>1</value></property><property><name>hive.in.test</name><value>false</value></property><property><name>hive.metastore.schema.verification</name><value>false</value><description>Enforce metastore schema version consistency</description></property><property><name>hive.exec.dynamic.partition.mode</name><value>nonstrict</value></property>
</configuration>
  1. 添加一个mysql的驱动
    mysql-connector-java-5.1.40.jar没有这个驱动,会连接不上数据库,导致meta数据无法存储。
    没有驱动,你就会看到 failed to load driver
    在这里插入图片描述
  2. 初始化元数据
    主要就是在对应的mysql数据库中创建一系列的表。命令如下
    ./bin/schematool -initSchema -dbType mysql -verbose
    如果没有成功执行如上命令就直接启动Hive,在做查询操作的时候你就会看到
FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
  1. 启动Hive
    ./bin/hive
    到这里就结束了,纰漏肯定有,说不定你就有一些特殊情况。不妨留言给我!

番外

这里我想说一说的就是千万注意,如果你的系统上有旧的Hadoop,Hive存在的,现在要重新的部署,一定谨慎,因为这会导致数据的不可恢复。
如果只是测试数据,那就无所谓,删掉就的节点,重新配置,一定要重新格式化这一步,不然hadoop是不能成功的。
Hive也是同样,一旦之前Hadoop被覆盖或者架构发生改变,Hive之前的数据也会有损坏的风险。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_302911.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库---笔记1

MySQL数据库---笔记1 一、数据库概述1.1、什么是数据库1.2、数据库的安装与启动1.3、MySQL数据模型 二、SQL2.1、通用语法及分类2.2、DDL2.2.1、数据库操作 一、数据库概述 1.1、什么是数据库 名称全称简称数据库存储数据的仓库&#xff0c;数据是有组织的进行存储DataBase (…

分享一份适合练手的软件测试实战项目,涵盖金融,电商,银行,商城,家政项目

现如今&#xff0c;越来越多的人涌入到测试行业来了&#xff0c;有自学的&#xff0c;有通过参加培训转行的&#xff0c;不管通过何种方式&#xff0c;他们面临的最主要的问题就是&#xff1a; 1、简历上的项目经验如何去编造&#xff1f; 2、入职的背调、薪资流水、离职证明等…

K8s进阶2——二进制搭建K8s高可用集群

文章目录 一、单master资源清单二、系统初始化三、部署etcd集群3.1 生成etcd证书3.2 部署流程3.2.1 准备二进制安装文件3.2.2 创建工作目录3.2.3 创建etcd配置文件3.2.4 设置成systemd服务3.2.5 添加etcd-2和etcd-3节点3.2.6 所有节点启动etcd并设置开机启动 四、安装容器引擎&…

07-通过RocketMQ和Redis实现用户动态提醒

1、用户动态表 CREATE TABLE `t_user_moments` (`id` bigint(12) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键id,`user_id` bigint(12) DEFAULT NULL COMMENT 用户id,`user_type` int(8) DEFAULT NULL COMMENT 动态类型:0视频 1直播 2专栏动态,`contend_id` bigint(12) D…

六轴传感器基础知识学习:MPU6050特性,四元数,姿态解算,卡尔曼滤波

实际上&#xff0c;只要说到多少轴的传感器一般是就是指加速度传感器&#xff08;即加速计&#xff09;、角速度传感器&#xff08;即陀螺仪&#xff09;、磁感应传感器&#xff08;即电子罗盘&#xff09;。这三类传感器测量的数据在空间坐标系中都可以被分解为X,Y,Z三个方向轴…

YOLOv5【detect.py源码及参数】超详细注释解读!!!建议收藏✨✨!

之前的文章介绍了YOLOv5的网络结构&#x1f680;与目录结构源码&#x1f680;的详细解读&#xff0c;今天带来的是YOLOv5的 detect.py 代码逐行解读以及注释&#xff0c;废话不多说&#xff0c;让我们一起学习YOLOv5的 detect.py 源码吧&#xff01; YOLOv5所使用版本&#xf…

Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结

目录 前言 模型配置 SIL模型生成 模型仿真对比 总结 前言 电机模型仿真可以叫做模型在环测试&#xff08;MIL&#xff09;&#xff0c;至于SIL就是软件在环仿真测试&#xff0c;说白了就是验证生成的代码有没有问题&#xff0c;如果有问题那在模型里面修复&#xff0c;不要…

kettle——处理缺失值

目录 一、删除缺失值 1、文本文件输入 2、字段选择 3、过滤记录 4、输出excel文件 5、运行 二、填充缺失值 1、添加文件 2、过滤记录 3、替换NULL值 4、合并记录 5、替换NULL值2 6、字段选择 7、Excel输出 8、运行并查看执行结果 一、删除缺失值 1、文本文件输入…

极客的git常用命令手册

极客的git常用命令手册 1.1 权限配置篇1.1.1 创建ssh key1.1.2 本地存在多个密钥时&#xff0c;如何根据目标平台自动选择用于认证的密钥&#xff1f; 1.2 基础信息配置篇1.2.1 配置用户名1.2.2 配置用户邮箱1.2.3 设置文件名大小写区分1.2.4 设置命令行显示颜色1.2.5 检查git全…

简答题题集

简答题&#xff1a; 1.测试和开发如何配合工作&#xff0c;即测试何时介入测试工作&#xff1f; 测试工作应该覆盖需求分析、概要设计、详细设计、编码等前期阶段&#xff0c;而不应该在系统开发初步完成后才开始。 2.软件测试的对象&#xff1a;正确的依据应该是需求规格说明书…

SpringBoot日志配置(四十七)

当一切被遗忘&#xff0c;那么就回到最初的地方 上一章简单介绍了SpringBoot配置文件敏感信息加密(四十六) , 如果没有看过,请观看上一章 这一章节&#xff0c;我们学习一下日志配置. 参考文章: Spring Boot 日志配置(超详细) 一. 日志配置处理 我们创建一个普通的 SpringB…

终极猜想 |欧科云链研究院揭秘货币未来形态

前言 5月18日&#xff0c;澎湃科技联合欧科云链研究院重磅发布的《从Web3“去美元化”看货币未来形态的终极猜想》文章&#xff0c;通过分析Web3.0“去美元化”的两大路径&#xff0c;对货币未来形态进行了前沿性的猜想。其中&#xff0c;Web3行业盛会Consensus2023&#xff0…

MySQL高级_第11章_数据库的设计规范

MySQL高级_第11章_数据库的设计规范 1. 为什么需要数据库设计 2. 范 式 2.1 范式简介 在关系型数据库中&#xff0c;关于数据表设计的基本原则、规则就称为范式。 可以理解为&#xff0c;一张数据表的设计结构需要满足的某种设计标准的 级别 。要想设计一个结构合理的关…

『iperf3 』服务器连接速度测试(2023/02/16 最新版)

文章目录 一、简介1.1 我的测速需求1.2 iperf 二、安装iperf2.1 windows中下载与构建2.2 Ubuntu中下载与构建 三、测速3.1 连接速度测试3.2 服务器网速测试 一、简介 1.1 我的测速需求 我目前有2个需求&#xff1a; 测试服务器的上传、下载速度&#xff1b;测试与服务器的连…

Pytest技巧大揭秘:编写高质量接口自动化测试

目录 前言&#xff1a; 一、Pytest测试框架简介 二、安装Pytest测试框架 三、编写Pytest测试用例 四、Pytest参数化&#xff08;Parameterization&#xff09; 五、Pytest插件的使用 六、总结 前言&#xff1a; 在软件开发中&#xff0c;接口的测试是非常重要的一环。接…

【zabbix】PostgreSQL表信息查询收集监控

昨天开发那边给了一个需求&#xff0c;每隔一段时间查询一下数据库某表中的数据是否在最近更新&#xff0c;让我这边做一个监控信息收集 一、agent linux侧配置 这边目前就直接在zabbix上实现&#xff0c;首先就是脚本&#xff0c;我用python2实现 脚本名&#xff1a;check_y…

瑞吉外卖 - 修改菜品功能(18)

某马瑞吉外卖单体架构项目完整开发文档&#xff0c;基于 Spring Boot 2.7.11 JDK 11。预计 5 月 20 日前更新完成&#xff0c;有需要的胖友记得一键三连&#xff0c;关注主页 “瑞吉外卖” 专栏获取最新文章。 相关资料&#xff1a;https://pan.baidu.com/s/1rO1Vytcp67mcw-PD…

分代回收工作流程

GC回收算法之分代回收 GC回收垃圾主要有三个算法&#xff0c;分别是标记清除&#xff0c;复制算法以及标记整理。 三种算法各有优缺点&#xff0c;其中标记清除的优点就是简单高效&#xff0c;缺点就是很容易带来内存碎片化问题。 复制算法的话&#xff0c;优点确实解决了内存碎…

python 递归下降分析法的设计与实验原理 编译原理

本文内容&#xff1a; 本文章实现的文法&#xff1a; E->T|ET; T->F|T*F; F->i|(E);利用上一篇文章&#xff1a;python 预备实验2 LL(1)文法构造转化后的输出&#xff1a; E->TE; T->FT; F->i|(E); E->TE|; T->*FT|; 手工测试&#xff0c;是LL(1)文…

ar在汽车维修行业的应用场景

由于AR增强现实技术的易用性&#xff0c;在汽车产业链中&#xff0c;已处处可见AR技术的踪影&#xff0c;像汽车设计AR远程协同&#xff0c;汽车装配AR远程指导&#xff0c;汽车维修AR远程协助等等&#xff0c;那么下面为详细介绍AR增强现实技术在汽车制造领域的应用。 环境/物…