Hadoop分布式配置小白篇(附加各阶段问题解决方式)

看的黑马的课,记录一下配置步骤


目录

1.VMware安装:

方法1:

方法2:

2.创建虚拟机

1.ISO镜像文件获取(CentOS):

2.创建(简略步骤)

3.克隆虚拟机(克隆伪分布式需要的三个节点)

创建node1

修改物理配置

网络配置

3.关闭防火墙、SELinux(三台机器都要执行)

4.主机名、ip修改,ssh免密登录

1.修改主机名

2.修改ip

[ping 检查!](#ping 检查!)

3.ssh免密

4.创建hadoop用户

5.jdk、hadoop环境部署

1.jdk环境配置

2.Hadoop环境配置

1.上传、解压到/export/server,配置软链接

2.配置4份文件

3.设置环境变量

4.给hadoop授权

[5.启动集群、查看WEB UI](#5.启动集群、查看WEB UI)

5.出现的问题

1.finalshell连接不上

2.finalshell连接很卡

方法1

方法2


1.VMware安装:

方法1:

按照微信公众号软件管家配置,里面有详细步骤且无试用期(推荐)

方法2:

官网:Windows 虚拟机 | Workstation Pro | VMware | CN

记得选择合适的安装路径即可

2.创建虚拟机

1.ISO镜像文件获取(CentOS):

链接:https://pan.baidu.com/s/1mykapkmv7fW3OdWJpNRODw?pwd=1234

提取码:1234

2.创建(简略步骤)

选择镜像存放地址

3.克隆虚拟机(克隆伪分布式需要的三个节点)

创建node1

右击上文创建的虚拟机,进行克隆

同理创建node2、node3(改名字、选择创建自己的路径)

修改物理配置

按下图进行配置、node1有主节点、从节点、主节点辅助、所以需要的配置更高

同理对node2、node3进行配置(2G)

网络配置

点击NAT设置

进入windows该页面

打开三台虚拟机、点击否

3.关闭防火墙、SELinux(三台机器都要执行)

关闭防火墙:

systemctl stop firewalld

systemctl disable firewalld

关闭SELinux:

vim /etc/sysconfig/selinux

将#SELINUX=enforcing改为

SELINUX=disabled

重启虚拟机即可

4.主机名、ip修改,ssh免密登录

1.修改主机名

复制代码
#node1进行以下操作
su
hostnamectl set-hostname node1

#node2进行以下操作
su
hostnamectl set-hostname node2

#node3进行以下操作
su
hostnamectl set-hostname node3

2.修改ip

复制代码
#对三个节点都进行以下操作
vim /etc/sysconfig/network-scripts/ifcfg-ens33

IPADDR="192.168.88.201"  #node2为202,node3为203
GATEWAY="192.168.88.2"
NETMASK="255.255.255.8"
DNS1="192.168.88.2"

#重启网卡
service network restart

Vim /etc/hosts

#在最后添加

192.168.88.201  node1
192.168.88.202  node2
192.168.88.203  node3

ping 检查!

对网络进行,在node1中输入

ifconfig

看是否正确

在windows中看是否能ping通

在windows中输入

ipconfig

在linux中看是否能ping通

3.ssh免密

后续在多个服务器之间传文件更加方便

复制代码
三个节点均进行以下操作:

#切换到root用户
su

ssh-keygen -t rsa -b  4096(一路回车)

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

vi ~/.ssh/known_hosts 可以看到

实现免密登录

4.创建hadoop用户

当前用户root,拥有root权限,后面进行操作时不安全

复制代码
每个节点执行:
useradd hadoop
passwd hadoop

su hadoop

ssh-keygen -t rsa -b  4096(一路回车)

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

5.jdk、hadoop环境部署

因为Hadoop是基于Java开发的,所以在安装Hadoop之前要先安装Java

1.jdk环境配置

#三台机器创建文件夹

mkdir -p /export/server

使用Finalshell或者Xshell将jdk传到三个主机的/export/server下

对三个主机进行以下操作

复制代码
#转到root用户下
su

cd /export/server 

#解压

tar -zxvf jdk-8u351-linux-x64.tar.gz

#创建软连接(名字太长不好操作、相当于创建一个他的快捷方式)

ln -s /export/server/jdk1.8.0_351 /export/server/jdk

#编辑/etc/profile文件

vim /etc/profile

#加入
export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin

#查看java版本
java -version

改版本为系统自带的,删除系统自带的java程序

rm -f /usr/bin/java

软链接自己安装的java程序

ln -s /export/server/jdk/bin/java /usr/bin/java

java -version

2.Hadoop环境配置

在node1节点下以root权限进行操作

1.上传、解压到/export/server,配置软链接

复制代码
上传到/export/server

#解压

tar -zxvf hadoop-3.3.0.tar.gz

#创建软连接(名字太长不好操作、相当于创建一个他的快捷方式)

ln -s /export/server/hadoop-3.3.0 /export/server/hadoop

2.配置4份文件

cd /export/server/hadoop//etc/hadoop

复制代码
修改workers文件

vim workers

# 删除localhost,填入如下内容

node1
node2
node3

修改hadoop-env.sh文件

vim hadoop-env.sh

# 添加内容

export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

修改core-site.xml文件

vim core-site.xml

# 在最后添加内容

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
  </property>

  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>

修改hdfs-site.xml文件

vim hdfs-site.xml

# 在最后添加内容

<configuration>
  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>           
  </property>
  <property>
    <name>dfs.namenode.hosts</name>
    <value>node1,node2,node3</value>
  </property>
  <property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>

注意(node1及作为主节点NameNode又作为从节点DataNode,node2、node3为从节点):

3.分发到node2、 node3,并设置环境变量

此时node1节点中的Hadoop中的文件配置好了,如果同样的对node2、node3进行同样的操作过于麻烦,可以直接将node1中配置好的文件分发到node2、node3中

复制代码
cd /export/server

scp -r hadoop-3.3.0 node2:`pwd`/

scp -r hadoop-3.3.0 node3:`pwd`/


# 在node2下建立软连接

ln -s /export/server/hadoop-3.3.4 /export/server/hadoop


# 在node2下建立软连接

ln -s /export/server/hadoop-3.3.4 /export/server/hadoop

设置环境变量

对三个节点分别进行以下操作

复制代码
# 在/etc/profile文件底部追加如下内容

vim /etc/profile

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

source /etc/profile
#查看hadoop版本
hadoop version

4.给hadoop授权

当前文件夹所有权为root、使用时hadoop用户无法进行操作

复制代码
# 以root身份,在三台服务器上均执行
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

5.启动集群、查看WEB UI

复制代码
# 以hadoop用户执行
su - hadoop

# 格式化namenode
hadoop namenode -format

# 一键启动hdfs集群
start-dfs.sh


在浏览器输入:http://node1:9870

5.出现的问题

1.finalshell连接不上

检查步骤4中的ping检查!部分

2.finalshell连接很卡

方法1

linux中输入

systemctl restart systemd-logind

方法2

ssh连接时

相关推荐
AAA小肥杨6 小时前
基于k8s的Python的分布式深度学习训练平台搭建简单实践
人工智能·分布式·python·ai·kubernetes·gpu
爬山算法9 小时前
Redis(73)如何处理Redis分布式锁的死锁问题?
数据库·redis·分布式
IT小哥哥呀10 小时前
电池制造行业数字化实施
大数据·制造·智能制造·数字化·mom·电池·信息化
Xi xi xi10 小时前
苏州唯理科技近期也正式发布了国内首款神经腕带产品
大数据·人工智能·经验分享·科技
yumgpkpm10 小时前
华为鲲鹏 Aarch64 环境下多 Oracle 、mysql数据库汇聚到Cloudera CDP7.3操作指南
大数据·数据库·mysql·华为·oracle·kafka·cloudera
祈祷苍天赐我java之术11 小时前
Redis 数据类型与使用场景
java·开发语言·前端·redis·分布式·spring·bootstrap
UMI赋能企业11 小时前
制造业流程自动化提升生产力的全面分析
大数据·人工智能
TDengine (老段)12 小时前
TDengine 数学函数 FLOOR 用户手册
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
猫林老师13 小时前
HarmonyOS线程模型与性能优化实战
数据库·分布式·harmonyos
派可数据BI可视化14 小时前
商业智能BI 浅谈数据孤岛和数据分析的发展
大数据·数据库·数据仓库·信息可视化·数据挖掘·数据分析