Hadoop、Hive安装

一、 工具

Linux系统:Centos,版本7.0及以上
JDK:jdk1.8
Hadoop:3.1.3
Hive:3.1.2
虚拟机:VMware
mysql:5.7.11

工具下载地址: https://pan.baidu.com/s/1JYtUVf2aYl5–i7xO6LOAQ
提取码: xavd

提示:以下是本篇文章正文内容,下面案例可供参考

二、JDK安装

下载jdk-8u181-linux-x64.tar.gz包,将此包上传至/opt 目录下。

cd /opt
解压安装包 tar zxvf jdk-8u181-linux-x64.tar.gz
删除安装包 rm -f jdk-8u181-linux-x64.tar.gz

使用root权限编辑profile文件设置环境变量

vi/etc/profile
export JAVA_HOME= /usr/java/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

让修改的文件生效

source /etc/profile

三、安装mysql

下载mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz包,将此包上传至/opt目录下,并改名mysql。

cd /opttar -xzvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mv mysql-5.7.11-linux-glibc2.5-x86_64 mysql

先查询是否存在用户组

groups mysql 

创建用户组和用户名

groupadd mysql && useradd -r -g mysql mysql

授予文件数据目录权限

chown mysql:mysql -R /opt/mysql/data

修改/etc/my.cnf配置文件,没有得到话就创建

vi /etc/my.cnf
[mysqld]
port = 3306
user=mysql
basedir=/opt/mysql/
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0[mysqld_safe]
log-error=/opt/mysql/data/mysql.log
pid-file=/opt/mysql/data/mysql.pid[client]
port=3306
default-character-set=utf8

初始化mysql服务

cd /opt/mysql/bin

执行命令,然后会有一个默认密码,有的人这里会报错是因为没有安装libaio,这里就先安装一遍

yum install libaio -y
./mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize

在这里插入图片描述

启动mysql

cp /opt/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start

进入目录

cd /opt/mysql/bin

登录,输入刚才的临时密码就可以了(直接复制粘贴)

./mysql -u root -p 

修改密码,我设置的密码是root,在最后面,根据自己需要进行设置

alter user 'root'@'localhost' identified with mysql_native_password BY 'root';

刷新,使操作生效

flush privileges;

更改数据库连接权限

use mysql;
update user set host='%' where user = 'root';
flush privileges;

在这里插入图片描述

退出

exit

测试

我虚拟机的ip为192.168.19.10
在这里插入图片描述
有的人会连接不成功,是因为发防火墙没有放开端口,这里有两种方法,关闭防火墙或者开放端口

关闭防火墙

systemctl stop firewalld

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

开放完端口后需要重启防火墙才能生效

firewall-cmd --reload

在这里插入图片描述

设置开机自启

添加到服务列表

chkconfig --add mysql

查看列表

chkconfig --list

在这里插入图片描述

一般2345都是开或者on的,如果不是执行命令

chkconfig --level 2345 mysql on

添加系统路径

vi /etc/profile
export PATH=/opt/mysql/bin:$PATH
source /etc/profile

四、hadoop安装

安装步骤和jdk的完全一样,存在/opt ,然后把下载解压的hadoop放到该文件夹下面。最主要的也还是配置文件,如果配置文件里面的路径正确那就可以。配置代码如下:

vi/etc/profile
export HADOOP_HOME=/opt/hadoop-3.1.3
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

安装完之后可以在终端输入hadoop version命令查看:

在这里插入图片描述

Hadoop分布式配置

终端输入mkdir /opt/hadoop-3.1.3/tmp创建tmp文件夹
终端输入mkdir /opt/hadoop-3.1.3/data/namenode创建namenode文件夹
终端输入mkdir /opt/hadoop-3.1.3/data/datanode创建datanode文件夹
在终端输入cd /opt/hadoop-3.1.3/etc/hadoop/ 注意自己的路径,后面需要修改的文件都在这个目录下面,这里先进入该目录

进入/opt/hadoop-3.1.3/etc/hadoop

cd /opt/hadoop-3.1.3/etc/hadoop

配置core-site.xml:输入vi core-site.xml 打开文件后添加
(全分布式中我使用三台虚拟机,KingSSM是我的主机名,还有两台分别是Slave1和Slave2)

<configuration><property><name>fs.defaultFS</name><value>hdfs://kingssm:9000</value></property><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-3.1.3/tmp</value></property>
</configuration>

配置hdfs-site.xml:输入vi hdfs-site.xml 打开文件后添加

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>/opt/hadoop-3.1.3/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>/opt/hadoop-3.1.3/data/datanode</value></property><property><name>dfs.permissions</name><value>false</value></property>
</configuration>

配置mapred.site.xml:输入vi mapred-site.xml 打开文件后添加

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapred.job.tracker</name><value>kingssm:9001</value></property>
</configuration>

配置yarn-site.xml:输入yarn-site.xml打开文件后添加

<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>kingssm</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property>
</configuration>

配置hadoop-env.sh:输入vi hadoop-env.sh 打开文件后添加

export JAVA_HOME=/opt/jdk1.8.0_181
export HADOOP_HOME=/opt/hadoop-3.1.3
export PATH=$PATH:/opt/hadoop-3.1.3/bin
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export HADOOP_PID_DIR=/opt/hadoop-3.1.3/pids

配置yarn-env.sh:输入vi yarn-env.sh 打开文件后添加

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

配置workers:输入vi workers 打开文件后添加,这里换成你的主机名和IP地址(KingSSM是当前正在操作的虚拟机主机名,其他两个是等下要克隆的两台虚拟机的主机名,IP地址要在虚拟机中修改)

在这里插入图片描述

在终端输入cd /opt/hadoop-3.1.3/sbin/ 进入新的目录
配置start-dfs.sh:输入vi start-dfs.sh打开文件后添加

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

配置stop-dfs.sh:输入vi stop-dfs.sh打开文件后添加

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

修改主机名

# 查看主机名称
hostname# 修改主机名
hostnamectl --static set-hostname kingssm

设置静态IP
终端输入ip route查看网关
在这里插入图片描述
输入vi /etc/sysconfig/network-scripts/ifcfg-ens33修改文件:修改或添加下面的内容,IP地址自己选择,但是注意要和网关对应,如网关是192.168.12.128,那IP地址前面就得是192.168.12,后面那部分自己随意,NDS1和网关一样,子网掩码是255.255.255.0

在这里插入图片描述

添加虚拟机之间的映射
终端输入vi /etc/hosts,添加

在这里插入图片描述

SSH免密登录
首先运行

ssh localhost

正常情况下是免密登录的,如果你还要输入密码的话,那就是你ssh没有配置好。这里要说一下的是ssh7.0之后就关闭了dsa的密码验证方式,如果你的秘钥是通过dsa生成的话,需要改用rsa来生成秘钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

再次运行

ssh localhost

如果不需要输入密码,说明ssh配置好了。接下来运行

ssh-keygen -t rsa 然后一直回车;
等可以再次输入时输入下面命令将公钥发布出去:
ssh-copy-id kingssm
ssh-copy-id slave1
ssh-copy-id slave2

五、克隆虚拟机,启动集群

把当前正在使用的kingssm虚拟机关闭,然后克隆两台虚拟机。

点击虚拟机------>右键------>管理------>克隆------>完全克隆

等克隆完之后,三台虚拟机都打开,然后对克隆出来的两台分别设置主机名slave1和slave2,并修改IP地址

启动集群
三台虚拟机都需要先格式化

打开终端,以root身份操作,三台都要输入hadoop namenode -format进行格式化

格式化完成后,在kingssm中启动集群,输入start-all.sh启动集群,(如果关闭,输入stop-all.sh)

启动完后输入jps查看启动状态,kingssm和slave应该有以下信息

在这里插入图片描述

在这里插入图片描述

访问网页查看结果:kingssm:9870

在这里插入图片描述

访问网页查看结果:kingssm:8088

在这里插入图片描述

六、hive安装

修改hadoop的 core-site.xml中, 添加以下内容:

修改hadoop 配置文件 /opt/hadoop-3.1.3/core-site.xml,加入如下配置项:

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

软件包下载 apache-hive-3.1.2-bin.tar.gz,上传/usr目录下并解压重命名hive

cd /opt
tar -xzvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin

修改 hive的环境配置文件: hive-env.sh

cd /export/server/hive-3.1.2/conf
cp hive-env.sh.template  hive-env.sh
vim hive-env.sh

修改一下内容:

# 配置hadoop的家目录
HADOOP_HOME=/opt/hadoop-3.1.3/
# 配置hive的配置文件的路径
export HIVE_CONF_DIR=/opt/hive/conf/
# 配置hive的lib目录
export HIVE_AUX_JARS_PATH=/opt/hive/lib/

创建配置文件

cd /opt/conf/
vi hive-site.xml

将以下内容复制配置文件中

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://kingssm:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><property><name>hive.cli.print.current.db</name><value>true</value></property><!-- 远程模式部署metastore 服务地址 --><property><name>hive.metastore.uris</name><value>thrift://kingssm:9083</value></property><property><name>hive.cli.print.header</name><value>true</value></property><property><name>hive.server2.thrift.bind.host</name><value>kingssm</value></property><property><name>hive.server2.thrift.port</name><value>10000</value></property>
</configuration>
vi /etc/profile
export HIVE_HOME=/opt/hive
export PATH=$PATH:$HIVE_HOME/bin
source /etc/profile

连接MySQL, 用户名root, 密码root

mysql -uroot -proot

创建hive元数据, 需要和hive-site.xml中配置的一致sql
创建数据库, 数据库名为: metastore

create database metastore;
show databases;

初始化元数据库

schematool -initSchema -dbType mysql -verbose

看到schemaTool completed 表示初始化成功

验证安装

hive

退出

quit;

如遇以下错误及解决方法:

在这里插入图片描述

hadoo的slf4j和hive两个slf4j冲突

删除 /opt/hadoop-3.1.3/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar

在这里插入图片描述

hadoop和hive的两个guava.jar版本不一致

将高版本的替换到底版本的

在这里插入图片描述

创建HDFS的hive相关的目录

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

启动 hive的服务: metastore

先启动metastore服务项:
前台启动:

cd /opt/hive/bin
hive --service metastore

​ 注意: 前台启动后, 会一直占用前台界面, 无法进行操作
​ 好处: 一般先通过前台启动, 观察metastore服务是否启动良好
前台退出: ctrl + c

后台启动:
当前台启动没有任何问题的时候, 可以将其退出, 然后通过后台启动, 挂载后台服务即可

cd /opt/hive/bin
nohup hive --service metastore &

​ 启动后, 通过 jps查看, 是否出现一个runjar 如果出现 说明没有问题(建议搁一分钟左右, 进行二次校验)
​ 注意: 如果失败了, 通过前台启动, 观察启动日志, 看一下是什么问题, 尝试解决

后台如何退出:
通过 jps 查看进程id 然后采用 kill -9

启动hive的服务: hiveserver2服务

接着启动hiveserver2服务项:
前台启动:

cd /opt/hive/bin
hive --service hiveserver2

​ 注意: 前台启动后, 会一直占用前台界面, 无法进行操作
​ 好处: 一般先通过前台启动, 观察hiveserver2服务是否启动良好
前台退出: ctrl + c

后台启动:
当前台启动没有任何问题的时候, 可以将其退出, 然后通过后台启动, 挂载后台服务即可

cd /opt/hive/bin
nohup hive --service hiveserver2 &

​ 启动后, 通过 jps查看, 是否出现一个runjar 如果出现 说明没有问题(建议搁一分钟左右, 进行二次校验)
​ 注意: 如果失败了, 通过前台启动, 观察启动日志, 看一下是什么问题, 尝试解决

后台如何退出:
通过 jps 查看进程id 然后采用 kill -9

基于beeline的连接方式

cd /opt/hive/bin
beeline --进入beeline客户端
连接hive:
!connect jdbc:hive2://kingssm:10000
接着输入用户名: root
最后输入密码: 无所谓(一般写的都是虚拟机的登录密码)

可能出行问题

在这里插入图片描述

到我们hadoop下的/opt/hadoop-3.1.3/data/datanode/current下去修改VERSION文件,把datanodeUuid改成两个不同的id就可以了,随便改都可以~

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

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

相关文章

【嵌入式项目应用】__cJSON在单片机的使用

目录 前言 一、JSON和cJson 二、cJSON是如何表示JSON数据的 三、如何封装完整的JSON数据 1. 先将串口打通&#xff0c;方便电脑查看log日志。 2. 增加cjson.c文件&#xff0c;已经在main.c中 3. 准备打包如下的JSON包 4. 代码部分&#xff0c;先将几个部分初始化指针 …

基于springboot实现校友社交平台管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校友社交平台管理系统演示 摘要 校友社交系统提供给用户一个校友社交信息管理的网站&#xff0c;最新的校友社交信息让用户及时了解校友社交动向,完成校友社交的同时,还能通过论坛中心进行互动更方便。本系统采用了B/S体系的结构&#xff0c;使用了java技…

Redis快速上手篇(四)(Spring Cache,缓存配置)(注解方式)

Spring Cache 从3.1开始&#xff0c;Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的 使用Spring Cache的时候我们要保证我们缓存的方法对于相同的方法参数要有相同的返回结果。 使用Spring Cache需要我们做两方面…

Hadoop3.0大数据处理学习3(MapReduce原理分析、日志归集、序列化机制、Yarn资源调度器)

MapReduce原理分析 什么是MapReduce 前言&#xff1a;如果想知道一堆牌中有多少张红桃&#xff0c;直接的方式是一张张的检查&#xff0c;并数出有多少张红桃。 而MapReduce的方法是&#xff0c;给所有的节点分配这堆牌&#xff0c;让每个节点计算自己手中有几张是红桃&#…

【软件安装环境配置】vscode 安装界面没有出现安装路径的选择 的解决,以及vscode的删除的问题

由于vscode 没有删除干净&#xff0c;就会出现vscode 安装的时候&#xff0c;没有出现安装路径的界面&#xff0c;所以可以来到vscode的安装路径&#xff0c;点击 unins000.exe 文件就可以 实现将vscode 相关的文件删除&#xff0c; 如果是删除了整个vscode 安装下的文件&…

VisualStudio[WPF/.NET]基于CommunityToolkit.Mvvm架构开发

一、创建 "WPF应用程序" 新项目 项目模板选择如下&#xff1a; 暂时随机填一个目标框架&#xff0c;待会改&#xff1a; 二、修改“目标框架” 双击“解决方案资源管理器”中<项目>CU-APP, 打开<项目工程文件>CU-APP.csproj, 修改目标框架TargetFramew…

实时高效获取目标窗口的可见区域

&#xff08;图一&#xff09; 以图一为例&#xff0c;假设窗口1的RECT为Rect1&#xff0c;窗口2的RECT为Rect2&#xff0c;窗口3的RECT为Rect3。那么窗口1的可见区域&#xff08;Region&#xff09;就是Rect1异或&#xff08;XOR&#xff09;Rect2后得到的区域&#xff0c;也…

什么是React Router?它的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

方舟生存进化ARK个人服务器搭建教程保姆级

方舟生存进化ARK个人服务器搭建教程保姆级 大家好我是艾西&#xff0c;在很久之前我有给大家分享过方舟生存进化的搭建架设教程&#xff0c;但时间久远且以前的教程我现在回头看去在某些地方说的并不是那么清楚。最近也是闲暇无事打算重新巩固下方舟生存进化的搭建架设教程&…

软考高级之系统架构师之数据流图和流程图

数据流图 概述 数据流图&#xff0c;DFD&#xff0c;用于表示业务信息系统中的数据流&#xff0c;它表达系统中的据传从输入到存储间所涉及的程序。采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程&#xff0c;是结构化系统分析方法的主要表达工具…

uni-app:解决异步请求返回值问题

可以使用 Promise 或者回调函数来处理异步请求的返回值。 方法一&#xff1a; Promise处理异步请求的返回值 使用 Promise 可以将异步请求的结果通过 resolve 和 reject 返回&#xff0c;然后通过 .then() 方法获取成功的结果&#xff0c;通过 .catch() 方法获取错误信息。 …

LeetCode209——长度最小的子数组

LeetCode209——长度最小的子数组 题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数…

抓取网页的含义和URL基本构成

抓取网页是指通过爬虫程序从互联网上获取网页的内容和数据。抓取网页是爬虫的核心功能之一&#xff0c;通过抓取网页&#xff0c;可以获取到网页中的文本、图片、链接等信息&#xff0c;用于后续的数据分析、挖掘和应用。 URL&#xff08;Uniform Resource Locator&#xff09…

Istio 自动注入 sidecar 失败导致无法访问webhook服务

最近工作中在部署Istio环境的过程中发现官方示例启动的pod不能访问不到Istio的webhook&#xff0c;这个问题也是困扰了我一天&#xff0c;特此记录&#xff0c;便于日后查阅。 我把他归类到sidecar注入失败的情况&#xff0c;报错如下&#xff1a; 1、第一种可能&#xff08;我…

计算机基础知识38

创建表的完整语法 create table t1(id int,name varchar(43),age int); create table 库名.表名( 字段名1 数据类型 约束条件 约束条件 约束条件 约束条件, 字段名2 数据类型 约束条件 约束条件 约束条件 约束条件...); 1. 字段名和数据类型必须…

c++类和对象(1)

目录 目录&#xff1a; 1.类的定义 1.1:类的语法及相关概念 1.2:类的两种定义方式 1.3:类的成员变量名命名规范 2.类的访问限定符 2.1:三种访问限定符关键字引入 2.2:访问限定符的语法说明 2.3:c中struct与class的区别(面试常考) 3.类的作用域 4.类的实例化 5.类对象 5.1:类对…

adb: error: 46-byte write failed: Invalid argument

使用adb pull可以&#xff0c;但是adb push fail。 貌似是adb的问题&#xff0c;将adb.exe 重命名为pdb&#xff0c;使用pdb push就行了。

二、【常用的几种抠图方式一】

文章目录 选框抠图快速选择工具抠图魔棒工具抠图对象选择工具抠图套索工具抠图多边形套索工具抠图磁性套索工具抠图 选框抠图 选框工具抠图适合规则的图形&#xff0c;如下图先使用选框工具框出对象的图轮廓&#xff0c;然后再选择并遮住在里边擦出图形的边缘&#xff0c;根据…

软考高级系统架构 上午真题错题总结

目录 前言一、2022年真题&#xff08;√&#xff09;二、2021年真题&#xff08;√&#xff09;三、2020年真题&#xff08;√&#xff09;四、2019年真题&#xff08;√&#xff09;五、2018年真题&#xff08;√&#xff09;六、2017年真题&#xff08;√&#xff09;七、201…

百度Comate SaaS版本正式发布,助力开发者加速研发过程

百度Comate是基于文心大模型的智能代码助手&#xff0c;让开发者的编码更快、更好、更简单&#xff0c;为开发者自动生成完整的、且更符合实际研发场景的代码行或整个代码块&#xff0c;帮助每一位开发者轻松完成研发任务。10月17日召开的百度世界大会上&#xff0c;百度CTO王海…