Hadoop完全分布式及相应组件的搭建

目录

Hadoop搭建

准备三台虚拟机

设置域名解析

查看SSH服务的状态

安装JAVA环境

设置JAVA环境变量

安装Hadoop软件

安装单机版Hadoop系统

配置实验环境下集群网络

SSH无密码验证配置

​编辑配置 SSH 服务

验证 SSH 无密码登录

在 Master 节点上安装 Hadoop

Hadoop 其他相关配置

配置 Hadoop 格式化

查看 Java 进程

查看 HDFS 的报告

使用浏览器查看节点状态

Hive组件安装配置

 下载和解压安装文件

基础环境和安装准备

解压安装文件

设置 Hive 环境

卸载 MariaDB 数据库

关闭防火墙服务

安装 MySQL 数据库

启动 MySQL 数据库。

MySQL 数据库初始化

添加 root 用户从本地和远程访问 MySQL 数据库表单的授权。

配置 Hive 组件

(1)设置 Hive 环境变量并使其生效。

(2)修改 Hive 组件配置文件。

(3)通过 vi 编辑器修改 hive-site.xml 文件实现 Hive 连接 MySQL 数据库,并设定

Hive 临时文件存储路径。

(1)设置 MySQL 数据库连接。

(2)配置 MySQL 数据库 root 的密码。

(3)验证元数据存储版本一致性。若默认 false,则不用修改。

(4)配置数据库驱动。

(5)配置数据库用户名 javax.jdo.option.ConnectionUserName 为 root。

(6 )将以下位置的 ${system:java.io.tmpdir}/${system:user.name} 替换为 “/usr/local/src/hive/tmp”目录及其子目录。

(7)在 Hive 安装目录中创建临时文件夹 tmp。

初始化 hive 元数据

1)将 MySQL 数据库驱动(/opt/software/mysql-connector-java-5.1.46.jar)拷贝到

Hive 安装目录的 lib 下;

2)重新启动 hadooop 即可

3)初始化数据库

4)启动 hive


Hadoop搭建

准备三台虚拟机

分别命名为master、slave1、slave2,然后使用bash命令刷新一下,最后使用hostname命令查看是否修改成功

hostnamectl set-hostname master

hostnamectl set-hostname slave1

hostnamectl set-hostname slave2

设置域名解析

vi /etc/hosts

查看SSH服务的状态

systemctl status sshd

关闭防火墙

systemctl stop firewalld

查看防火墙状态,检查防火墙是否关闭成功

systemctl status firewalld

看到 inactive (dead)表示防火墙已经关闭。不过这样设置后,Linux 系统如 果重启,防火墙仍然会重新启动。执行如下命令可以永久关闭防火墙。

systemctl disable firewalld

创建hadoop用户

useradd hadoop

更改用户 hadoop 的密码 。 passwd:所有的身份验证令牌已经成功更新。

echo "1" |passwd --stdin hadoop

安装JAVA环境

卸载自带的OpenJDK

rpm -qa | grep java

卸载相关服务

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64

rpm -e --nodeps tzdata-java-2022e-1.el7.noarch

rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el7_9.x86_64

检查是否清空

rpm -qa | grep java

查看删除结果再次键入命令 java -version 出现以下结果表示删除功

java --version

在/opt/software目录下事先准备好软件包,将安装包解压到/usr/local/src目录下

tar -zxvf /opt/software/jdk-8u152-linux-x64.tar.gz -C /usr/local/src/

进入目录查看是否安装成功

ls /usr/local/src/

设置JAVA环境变量

vi /etc/profile

在文件的最后增加如下两行:

export JAVA_HOME=/usr/local/src/jdk1.8.0_152

export PATH=$PATH:$JAVA_HOME/bin

执行 source 使设置生效:

source /etc/profile

检查 JAVA 是否可用。

echo $JAVA_HOME

使用如下命令显示 Java 版本则说明 JDK 安装并配置成功。

java -version

安装Hadoop软件

获取Hadoop安装包

Apache Hadoop 各 个 版 本 的 下 载 网 址 : https://archive.apache.org/dist/hadoop /common/。本教材选用的是 Hadoop 2.7.1 版本,安装包为 hadoop-2.7.1.tar.gz。需要先下载 Hadoop 安装包,再上传到 Linux 系统的/opt/software 目录。

解压安装包到/usr/local/src/目录下

tar -zxvf /opt/software/hadoop-2.7.1.tar.gz -C /usr/local/src/

检查目录

ll /usr/local/src/

查看 Hadoop 目录

ll /usr/local/src/hadoop/

解析:

bin:此目录中存放 Hadoop、HDFS、YARN 和 MapReduce 运行程序和管理 软件。

etc:存放 Hadoop 配置文件。

include: 类似 C 语言的头文件

lib:本地库文件,支持对数据进行压缩和解压。

libexe:同 lib

sbin:Hadoop 集群启动、停止命令

share:说明文档、案例和依赖 jar 包。

设置Hadoop环境变量

修改/etc/profile 文件

vi /etc/profile

在文件的最后增加如下两行:

export HADOOP_HOME=/usr/local/src/hadoop-2.7.1

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

执行 source 使用设置生效:

source /etc/profile

检查设置是否生效:

hadoop

出现上述 Hadoop 帮助信息就说明 Hadoop 已经安装好了。

修改目录所有者和所有者组,上述安装完成的 Hadoop 软件只能让 root 用户使用,要让 hadoop 用户能够 运行 Hadoop 软件,需要将目录/usr/local/src 的所有者改为 hadoop 用户。

chown -R hadoop:hadoop /usr/local/srv

ll /usr/local/src/

/usr/local/src 目录的所有者已经改为 hadoop 。

安装单机版Hadoop系统

设置Hadoop配置文件

cd /usr/local/src/hadoop/

ls

vi etc/hadoop/hadoop-env.sh

在文件中查找 export JAVA_HOME 这行,将其改为如下所示内容:

export JAVA_HOME=/usr/local/src/jdk1.8.0_152

测试Hadoop本地模式的运行

切换到Hadoop用户

su - hadoop

id

创建输入数据存放目录,将输入数据存放在~/input 目录(hadoop 用户主目录下的 input 目录中)。

mkdir ~/input

ls

创建数据文件 data.txt,将要测试的数据内容输入到 data.txt 文件中。

vi input/data.txt

测试 MapReduce 运行

hadoop jar /usr/local/src/hadoop-2.7.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount ~/input/data.txt ~/output

运行结果保存在~/output 目录中(注:结果输出目录不能事先存在),命令执 行后查看结果:

ll output/

文件_SUCCESS 表示处理成功,处理的结果存放在 part-r-00000 文件中,查看该 文件。

cat output/part-r-00000

可以看出统计结果正确,说明 Hadoop 本地模式运行正常。

配置实验环境下集群网络

vi /etc/hosts

SSH无密码验证配置

每个节点安装和启动 SSH 协议,

实现 SSH 登录需要 openssh 和 rsync 两个服务,一般情况下默认已经安装(如没有自行安 装),可以通过下面命令查看结果。

rpm -qa | grep openssh

rpm -qa | grep rsync

切换到 hadoop 用户

su - hadoop

每个节点生成秘钥对

#在 master 上生成密钥

ssh-keygen -t rsa

#slave1 生成密钥

ssh-keygen -t rsa

#slave2 生成密钥

ssh-keygen -t rsa

查看"/home/hadoop/"下是否有".ssh"文件夹,且".ssh"文件下是否有两个刚 生产的无密码密钥对。

ls ~/.ssh/

将 id_rsa.pub 追加到授权 key 文件中

#master

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ls ~/.ssh/

#slave1

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ls ~/.ssh/

#slave2

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ls ~/.ssh/

修改文件"authorized_keys"权限

通过 ll 命令查看,可以看到修改后 authorized_keys 文件的权限为“rw-------”,表示所有者 可读写,其他用户没有访问权限。如果该文件权限太大,ssh 服务会拒绝工作,出现无法 通过密钥文件进行登录认证的情况。

#master

chmod 600 ~/.ssh/authorized_keys

ll ~/.ssh/

#slave1

chmod 600 ~/.ssh/authorized_keys

ll ~/.ssh/

#slave2

chmod 600 ~/.ssh/authorized_keys

ll ~/.ssh/

配置 SSH 服务

使用 root 用户登录,修改 SSH 配置文件"/etc/ssh/sshd_config"的下列内容,需要将该配 置字段前面的#号删除,启用公钥私钥配对认证方式。

#master

su - root

vi /etc/ssh/sshd_config

PubkeyAuthentication yes #找到此行,并把#号注释删除。

#slave1

su - root

vi /etc/ssh/sshd_config

PubkeyAuthentication yes #找到此行,并把#号注释删除。

#slave2

su - root

vi /etc/ssh/sshd_config

PubkeyAuthentication yes #找到此行,并把#号注释删除。

设置完后需要重启 SSH 服务,才能使配置生效。

systemctl restart sshd

切换到 hadoop 用户

su - hadoop

验证 SSH 登录本机

在 hadoop 用户下验证能否嵌套登录本机,若可以不输入密码登录,则本机通过密钥登录 认证成功。

ssh localhost

交换 SSH 密钥

将 Master 节点的公钥 id_rsa.pub 复制到每个 Slave 点

hadoop 用户登录,通过 scp 命令实现密钥拷贝。

scp ~/.ssh/id_rsa.pub hadoop@slave1:~/

scp ~/.ssh/id_rsa.pub hadoop@slave2:~/

首次远程连接时系统会询问用户是否要继续连接。需要输入“yes”&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值