hadoop集群部署之HDFS部署

  • 部署环境要求:首先安装三台服务器(linux——centos7)
一、在三台服务器中添加主机映射
vim /etc/hosts

#在hosts文件中添加的内容
xxx.xxx.xxx.101 node1
xxx.xxx.xxx.102 node1
xxx.xxx.xxx.103 node2

二、在三台服务器配置免密码互相SSH登录

1.在三台服务器都运行----生成秘钥(root用户)

ssh-keygen -t rsa -b 4096
  • 注:RSA加密算法是一种非对称加密算法
  • 注:-b 4096 是密码长度为4096位

2.复制秘钥到三个服务器主机供互相免密登录

ssh-copy-id node1
ssh-cpoy-id node2
ssh-copy-id node2

3.测试是否可免密登录

ssh node1
ssh node2
ssh node3
二、添加hadoop用户并互相配置免密登录

1.创建用户与密码

useradd hadoop
passwd hadoop

2.切换用户并生成秘钥

su -hadoop
ssh-keygen -t rsa -b 4096

3.将生成密钥复制到各服务器

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
三、配置jdk环境

1.创建文件夹用来部署jdk

mkdir -p /export/server

2.解压jdk 到 /export/server中

tar -zxvf  jdk-8u351-linux-x64.tar.gz -C /export/server

3.配置jdk软连接

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

4.配置JAVA_HOME环境变量,将$JAVA_HOME加入PATH环境变量中

#编辑/etc/profile文件

vim /etc/profile
#在/etc/profile文件中加入以下代码
#配置java_home环境变量
export JAVA_HOME=/export/server/jdk
#将java_home加入到path环境变量中
export PATH=PATH:$JAVA_HOME/bin

5.生效环境变量

source /etc/profile

6.配置java执行程序的软连接

#删除自带的java程序
rm -rf /usr/bin/java
#软连接自己 安装的java程序
ln -s /export/server/jdk/bin/java  /usr/bin/java

7.验证java是否部署安装好

#输出JAVA_HOME设置路径是否一致
echo $JAVA_HOME

在这里插入图片描述

#查看java版本
java -version

在这里插入图片描述

javac -version

在这里插入图片描述

四、解压安装hadoop

1.上传并解压hadoop安装包到node1节点中

tar -zxvf  hadoop-3.3.4.tar.gz  -C /export/server
#创建软连接
cd /export/server

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

2.修改hadoop的配置文件
配置HDFS集群主要修改以下文件:

  • workers:配置从节点(DataNode)有哪些
  • hadoop-env.sh:配置Hadoop的相关环境变量
  • core-site.xml:Hadoop核心配置文件
  • hdfs-site.xml:HDFS核心配置文件

1)配置workers文件

cd /export/server/hadoop/etc/hadoop

vim workers

在workers文件中添加如下内容,表名集群记录了三个从节点(DataNode)

node1
node2
node3

2)配置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

各行代码的具体含义
JAVA_HOME,指明JDK环境的位置在哪
HADOOP_HOME,指明Hadoop安装位置
HADOOP_CONF_DIR,指明Hadoop配置文件目录位置HADOOP_LOG_DIR,指明Hadoop运行日志目录位置通过记录这些环境变量, 来指明上述运行时的重要信息

3)配置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>

4)配置hdfs-site.xml

<!--# 在文件内部填入如下内容 -->
<configuration>
 <!-- 
 dfs.datanode.data.dir.perm 
 hdfs文件系统,默认创建的文件权限设置
 值:700,即:rwx------
-->
  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
  </property>
 <!-- 
 dfs.namenode.name.dir
 NameNode元数据的存储位置
 值:/data/nn,在node1节点的/data/nn目录下
-->    
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
  </property>
  <!-- 
 dfs.namenode.hosts
 NameNode允许哪几个节点的DataNode连接(即允许加入集群)
 值:node、node2、node3,这三台服务器被授权
-->   
  <property>
    <name>dfs.namenode.hosts</name>
    <value>node,node1,node2</value>
  </property>
  <!-- 
key:dfs.blocksize
含义:hdfs默认块大小
值:268435456(256MB)
-->  
<property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
   <!-- 
key:dfs.namenode.handler.count
含义:namenode处理的并发线程数
值:100,以100个并行度处理文件系统的管理任务
-->  
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
    <!-- 
key:dfs.datanode.data.dir
含义:从节点DataNode的数据存储目录
值:/data/dn,即数据存放在node、node2、node3,三台机器的/data/dn内
-->  
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>

3.根据hdfs-site.xml文件的配置创建文件夹

  • namenode数据存放node的/data/nn
  • datanode数据存放node1、node2、node3的/data/dn

在node1节点

mkdir -p /data/nn
mkdir /data/dn

在node2,node3节点创建

mkdir -p /data/dn

4.在另外两个节点也进行相关的文件配置
可进行分发操作
在node1节点进行如下操作:

cd /export/server

scp -r haddop-3.3.4 node2:`pwd`/

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

5.配置hadoop的环境变量

vim /etc/profile

#在文件底追加如下内容:
export HADOOP_HOME=/export/server/hadoop 
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

node2,node3进行同样的配置

五、授权hadoop用户

1.为了安全起见我们以普通用户启动整个hadoop服务
以root用户在三个节点上执行如下命令

chown -R haddoop:hadoop /data
chown -R hadoop:hadoop /export

2.格式化整个文件系统
格式化namenode

#确保以hadoop用户执行
su -hadoop
#格式化namenode
hadoop namenode -format

3.启动集群

#一键启动hdfs
start-dfs.sh
#一键关闭hdfs
stop-dfs.sh

#可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh /export/server/hadoop/sbin/stop-dfs.sh

查看HDFS WEB UI

http://node1:9870

http://xxx.xxx.xxx.101:9870

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值