前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据笔记(三):HDFS集群搭建-伪分布式模式

大数据笔记(三):HDFS集群搭建-伪分布式模式

作者头像
Lansonli
发布2022-04-24 10:16:14
5780
发布2022-04-24 10:16:14
举报
文章被收录于专栏:Lansonli技术博客

HDFS集群搭建-伪分布式模式

前言

博主语录:一文精讲一个知识点,多了你记不住,一句废话都没有

经典语录:美好的事情不是没有裂痕,而是满是裂痕而没有崩开

一、实操&理论验证

  • HDFS安装配置
  • HDFS命令行使用
  • 理论知识点验证

二、官网导读

Hadoop - Apache Hadoop 2.6.5

https://hadoop.apache.org/docs/r2.6.5/

  • 支持最好的平台:GNU/Linux
  • 依赖的软件:java,ssh
  • 部署模式:
  1. Local (Standalone) Mode
  2. Pseudo-Distributed Mode
  3. Fully-Distributed Mode

三、思路

  • 基础设施
  • 部署配置
  • 初始化运行
  • 命令行使用

四、基础设施

操作系统、环境、网络、必要软件

1、设置IP及主机名

注意:大家看看自己的vm的编辑->虚拟网络编辑器->观察 NAT模式的地址 

设置网络和设置IP

代码语言:javascript
复制
vi /etc/sysconfig/network-scripts/ifcfg-eth0

        DEVICE=eth0         #HWADDR=00:0C:29:42:15:C2         TYPE=Ethernet         ONBOOT=yes         NM_CONTROLLED=yes         BOOTPROTO=static         IPADDR=192.168.150.11         NETMASK=255.255.255.0         GATEWAY=192.168.150.2         DNS1=223.5.5.5         DNS2=114.114.114.114

设置主机名

代码语言:javascript
复制
vi /etc/sysconfig/network

        NETWORKING=yes         HOSTNAME=node01

2、关闭防火墙&selinux

关闭防火墙

代码语言:javascript
复制
service iptables stop
chkconfig iptables off

关闭 selinux

代码语言:javascript
复制
vi /etc/selinux/config

SELINUX=disabled 

3、设置hosts映射

设置本机的IP到主机名的映射关系

代码语言:javascript
复制
vi /etc/hosts

        192.168.150.11 node01         192.168.150.12 node02  

4、时间同步

代码语言:javascript
复制
yum install ntp  -y
vi /etc/ntp.conf
server ntp1.aliyun.com
service ntpd start
chkconfig ntpd on

5、安装JDK

注意:有一些软件只认:/usr/java/default

代码语言:javascript
复制
rpm -i   jdk-8u181-linux-x64.rpm
vi /etc/profile

        export  JAVA_HOME=/usr/java/default         export PATH=PATH:JAVA_HOME/bin

代码语言:javascript
复制
source /etc/profile   |  .    /etc/profile

6、设置SSH免秘钥

ssh免密:

代码语言:javascript
复制
ssh  localhost

注意: 

1)验证自己还没免密  

2)被动生成了  /root/.ssh

代码语言:javascript
复制
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

白话解释SSH免秘钥 如果A 想  免密的登陆到B: A:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa B:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

结论:

B包含了A的公钥,A就可以免密的登陆

生活案例:

你去陌生人家里得撬锁

去女朋友家里:拿钥匙开门

五、部署配置

伪分布式: (单一节点)

1、部署路径

代码语言:javascript
复制
mkdir /opt/bigdata
tar xf hadoop-2.6.5.tar.gz
mv hadoop-2.6.5  /opt/bigdata/
pwd

/opt/bigdata/hadoop-2.6.5 

代码语言:javascript
复制
vi /etc/profile

export  JAVA_HOME=/usr/java/default export HADOOP_HOME=/opt/bigdata/hadoop-2.6.5 export PATH=PATH:JAVA_HOME/bin:HADOOP_HOME/bin:HADOOP_HOME/sbin

代码语言:javascript
复制
source /etc/profile

2、 配置文件

代码语言:javascript
复制
cd   $HADOOP_HOME/etc/hadoop

注意:必须给hadoop配置javahome要不ssh过去找不到

代码语言:javascript
复制
vi hadoop-env.sh

 export JAVA_HOME=/usr/java/default

给出NN角色在哪里启动

代码语言:javascript
复制
vi core-site.xml

             <property>                 <name>fs.defaultFS</name>                 <value>hdfs://node01:9000</value>             </property>

因为是伪分布式集群,故配置HDFS  副本数为1,如果是真实集群就配置2-3的副本数量

代码语言:javascript
复制
vi hdfs-site.xml

             <property>                 <name>dfs.replication</name>                 <value>1</value>             </property>             <property>                 <name>dfs.namenode.name.dir</name>                 <value>/var/bigdata/hadoop/local/dfs/name</value>             </property>             <property>                 <name>dfs.datanode.data.dir</name>                 <value>/var/bigdata/hadoop/local/dfs/data</value>             </property>             <property>                 <name>dfs.namenode.secondary.http-address</name>                 <value>node01:50090</value>             </property>             <property>                 <name>dfs.namenode.checkpoint.dir</name>                 <value>/var/bigdata/hadoop/local/dfs/secondary</value>             </property>

配置DN这个角色再那里启动

代码语言:javascript
复制
vi slaves

node01 

3、初始化&启动

格式化namenode操作(只要一次就够了)

代码语言:javascript
复制
hdfs namenode -format 

简单过程: 

  • 创建配置文件设置的目录
  • 并初始化一个空的fsimage
  • VERSION文件里生成一个CID
代码语言:javascript
复制
sh start-dfs.sh

第一次:datanode和secondary角色会初始化创建自己的数据目录

修改windows: C:\Windows\System32\drivers\etc\hosts

            192.168.150.11 node01             192.168.150.12 node02             192.168.150.13 node03             192.168.150.14 node04

可以通过以下地址访问:

http://node01:50070

4、简单使用

代码语言:javascript
复制
hdfs dfs -mkdir /bigdata
hdfs dfs -mkdir  -p  /user/root

5、验证知识点

观察 editlog的id是不是再fsimage的后边 

代码语言:javascript
复制
cd   /var/bigdata/hadoop/local/dfs/name/current

SNN 只需要从NN拷贝最后时点的FSimage和增量的Editlog 

代码语言:javascript
复制
cd /var/bigdata/hadoop/local/dfs/secondary/current

验证上传的大文件是否分块,分块最大文件是否128M 

代码语言:javascript
复制
hdfs dfs -put hadoop*.tar.gz  /user/root
代码语言:javascript
复制
cd  /var/bigdata/hadoop/local/dfs/data/current/BP-281147636-192.168.150.11-1560691854170/current/finalized/subdir0/subdir0
代码语言:javascript
复制
for i in `seq 100000`;do  echo "hello hadoop $i"  >>  data.txt  ;done
hdfs dfs -D dfs.blocksize=1048576  -put  data.txt 
cd  /var/bigdata/hadoop/local/dfs/data/current/BP-281147636-192.168.150.11-1560691854170/current/finalized/subdir0/subdir0

检查data.txt被切割的块,数据是什么样子的

可以看到两个文件的数据直接切开,一行数据被切成一小段,这样的数据到计算会有问题吗?

其实是不影响的,至于什么原理,会在后面的笔记里详细给大家说明

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/04/24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • HDFS集群搭建-伪分布式模式
    • 前言
      • 一、实操&理论验证
        • 二、官网导读
          • 三、思路
            • 四、基础设施
              • 1、设置IP及主机名
              • 2、关闭防火墙&selinux
              • 3、设置hosts映射
              • 4、时间同步
              • 5、安装JDK
              • 6、设置SSH免秘钥
            • 五、部署配置
              • 1、部署路径
              • 2、 配置文件
              • 3、初始化&启动
              • 4、简单使用
              • 5、验证知识点
          相关产品与服务
          大数据
          全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档