IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux -HDFS部署 -> 正文阅读

[大数据]Linux -HDFS部署

前言

以下操作环境均在Centos7服务器上面,一共四台服务器,node1、node2、node3、node4

准备&安装

官网下载hadoop,看准自己需要的版本,我自己这里就下载一个旧的版本使用了(3.2.3)

在这里插入图片描述

集群分布

node1node2node3node4
zookeeperzookeeperzookeeper
NameNodeSecondaryNameNode
DataNode1DataNode2DataNode3

配置

下载之后上传至其中一台服务器上,先配置好一天在将文件传给其他服务器上面,以下操作在node2上

mkdir /usr/local/hadoop   # 创建hadoop使用的目录
mkdir /usr/local/hadoop/full  # 创建一个目录后面配置使用
tar -zxvf hadoop-3.2.3.tar.gz   # 解压hadoop安装包
mv hadoop-3.2.3 /usr/local/hadoop/   # 移动解压后的安装包到目录
rm -rf /usr/local/hadoop/hadoop-3.2.3/share/doc/  # 删除hadoop文档,方便后面传输速度
vim /etc/profile   # 添加环境变量,在文件的最后添加

编辑profile文件添加

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.2.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

命令行执行

source /etc/profile   # 刷新文件
scp /etc/profile node1:/etc   # 将环境文件传给node1
scp /etc/profile node3:/etc   # 将环境文件传给node3
scp /etc/profile node4:/etc   # 将环境文件传给node4
# 由于node1上面没有zookeeper,传输的环境文件中有,将node1上的zookeeper环境删除
source /etc/profile  # 刷新4台机器上的环境文件

node2命令行

cd /usr/local/hadoop/hadoop-3.2.3/etc/hadoop   # 进入到hadoop需要配置的文件夹中,
vim hadoop-env.sh   # 进入配置,具体查看下面需要添加的配置
vim workers   # 配置datanode节点,hadoop3.0之前的版本是slaves文件,具体查看下面需要添加的配置
vim hdfs-site.xml  # 配置SecondaryNameNode位置,具体查看下面需要添加的配置
vim core-site.xml  # 配置namenode位置,具体查看下面需要添加的配置

编辑hadoop-env.sh文件

/JAVA_HOME  # 使用vim命令搜索Java配置路径,有的话就修改,没有的话就添加
export JAVA_HOME=/usr/local/jdk/jdk  # 添加上我们的jdk路径

编辑workers文件

node2
node3
node4

编辑hdfs-site.xml文件,进入文件查找到<configuration>标签,在标签中进行添加,同时可参考官网的配置文件

<configuration>
     <!-- SecondaryNameNode位置 -->
     <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>node2:9868</value>
     </property>
     <!-- 副本数 -->
     <property>
          <name>dfs.replication</name>
          <value>2</value>
     </property>
</configuration>

编辑core-site.xml文件,进入文件查找到<configuration>标签,在标签中进行添加,同时可参考官网的配置文件

<configuration>
	 <!-- 指定namenode地址 -->
     <property>
          <name>fs.defaultFS</name>
          <value>hdfs://node1:9000</value>
     </property>
     <!-- 指定hadoop临时目录位置 -->
     <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/usr/local/hadoop/full</value>
     </property>
</configuration>

node2命令行

cd /usr/local   # 进入到此位置,准备传文件
scp -r hadoop/ node1:/usr/local/   # 传给node1
scp -r hadoop/ node3:/usr/local/   # 传给node3
scp -r hadoop/ node4:/usr/local/   # 传给node4

node1命令行

hdfs namenode -format   # 格式化namenode
start-dfs.sh   # 启动
jps   # 可以通过查看进程,看四台机器是否启动

验证

浏览器打开 http://node1:9870
9870为默认端口,想自定义的话可以配置hdfs-site.xml文件,按照官网的文档配置即可
在这里插入图片描述
node2命令行

hdfs dfs -mkdir /usr   # 创建dfs文件夹
hdfs dfs -D dfs.blocksize=1048576 -put xxx.gz /usr  # 指定块大小为1M,查看块的副本,每个块必定在node2上留有副本(从那个datanode上传时每个块都会在那个节点产生副本)

node1命令行

hdfs dfs -D dfs.blocksize=1048576 -put xxxx.gz /usr  # 指定块大小为1M,查看块的副本,由于从namenode上传,所以与上面的不同

异常

在使用start-dfs.sh启动hdfs时报错
异常一:
node2: ssh: connect to host node2 port 22: Connection refused
本人的ssh端口并不是22所以这里会报异常,修改vim hadoop-env.sh文件,修改后传给其他几台机器,添加

export HADOOP_SSH_OPTS="-p 22022"  # 22022为ssh端口

异常二:
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting launch.

cd /usr/local/hadoop/hadoop-3.2.3/sbin   # 进入文件夹
vim start-dfs.sh    
vim stop-dfs.sh

为上面的两个文件添加相同配置,在文件的上面添加

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

修改后传给其他几台机器

本专栏为大数据学习专栏,如有问题还望指出,共同学习!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:18:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:32:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码