hadoop-3.0.0-beta1运维手册(005):hdfs3.0.0分布式构建-hdfs配置、无密码登录

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

写在前面的话

Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基于纠删码(erasure encoding)的容错方式,与传统的副本方式相比,在同等可用性的情况下, 能大幅节省一半以上的空间,这也是自hdfs诞生近这十年来,数据可靠性机制上的一个重大变化(之前一直都是副本容错方式)。此外hdfs3.0.0还增加了其它的一些特性,例如在Namenode HA中支持3Namenode,可以容忍2Namenode失效,而hdfs2.x只能容忍1Namenode失效。

本文以连载的方式,在大数据学习网”上记录自己使用hadoop-3.0.0-beta1hdfs的点点滴滴,包括从零开始搭建分布式hdfs3.0,如何动态扩展hdfs节点、如何使用hdfs3.0的纠删码容错等等。不当之处,请大家发邮件aishuc@126com给艾叔,谢谢!

 

 

3.7 上传、解压Hadoop相关软件

我们将在nn1上配置1namenode1datanode,构建一个最简的HDFS,成功后,再扩展datanode节点。

1. 切换到user,并进入/home/user

Ls应该能看到下面的文件和目录

3-50 hadoop存储目录

2. 解压hadoop

解压命令为:tar xf hadoop-3.0.0-beta1.tar.gz

解压后,应该能看到红圈内的目录

3-51 hadoop解压�������果

3.8 配置Hadoop

1. 添加JDK环境变量

切换到root用户,使用vi打开/etc/profile,在最后一行添加

JAVA_HOME=/home/user/jdk1.8.0_152

export PATH=$PATH:$JAVA_HOME/bin

这样做可以将/home/user/jdk1.8.0_152/bin添加到PATH环境变量,直接运行java命令。

验证

切换到普通用户,打印PATH环境变量

[user@nn1 ~]$ echo $PATH

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/user/jdk1.8.0_152/bin:/home/user/.local/bin:/home/user/bin

如果我们可以看到绿色的部分,则说明设置成功,如果没有,可以执行source命令,再验证。

[user@nn1 ~]$ source /etc/profile

输入java,看能否直接运行

[user@nn1 ~]$ java

Usage: java [-options] class [args...]

.....

 

2. 配置hadoop-env.sh

切换到普通用户,vi打开

[user@nn1 hadoop]$ cd ~/hadoop-3.0.0-beta1/etc/hadoop/

[user@nn1 hadoop]$ vi hadoop-env.sh

在第55行添加红线部分内容

3-52 hadoop-env.shJAVA_HOME设置

3. 配置hdfs-site.sh

普通用户下,进入hadoop目录

[user@nn1 hadoop-3.0.0-beta1]$ cd ~/hadoop-3.0.0-beta1

[user@nn1 hadoop-3.0.0-beta1]$ pwd

复制hdfs-site.xml的默认文件

[user@nn1 hadoop-3.0.0-beta1]$ cp share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml etc/hadoop/hdfs-site.xml

注意:源端是hdfs-default.xml,目的文件是hdfs-site.xml

打开hdfs-site.xml

A. 设置namenode对外服务的主机名和端口。客户端将以此来连接namenode

找到下面的部分,添加绿色部分内容,此处设置了namenode对外提供服务的主机名和端口,其中nn1是主机名,9001是端口,默认值是9820

<property>

  <name>dfs.namenode.rpc-address</name>

  <value>nn1:9001</value>

  <description>

    RPC address that handles all clients requests. In the case of HA/Federation where multiple namenodes exist,

    the name service id is added to the name e.g. dfs.namenode.rpc-address.ns1

    dfs.namenode.rpc-address.EXAMPLENAMESERVICE

    The value of this property will take the form of nn-host1:rpc-port. The NameNode's default RPC port is 9820.

  </description>

</property>

B. 设置namenode的存储目录

找到下面的部分,添加绿色的内容

<property>

  <name>dfs.namenode.name.dir</name>

  <value>file:///home/user/dfs/share/namenode/</value>

  <description>Determines where on the local filesystem the DFS name node

      should store the name table(fsimage).  If this is a comma-delimited list

      of directories then the name table is replicated in all of the

      directories, for redundancy. </description>

</property>

上面绿色的部分,是一个本地路径,用于namenode存储HDFS的相关信息,如元数据。

我们要手动创建此目录。

[user@nn1 ~]$ mkdir -p ~/dfs/share/namenode

C. 设置datanode的存储目录

找到下面的部分,添加绿色的内容

<property>

  <name>dfs.datanode.data.dir</name>

  <value>file:///home/user/dfs/share/datanode/</value>

  <description>Determines where on the local filesystem an DFS data node

  should store its blocks.  If this is a comma-delimited

  list of directories, then data will be stored in all named

  directories, typically on different devices. The directories should be tagged

  with corresponding storage types ([SSD]/[DISK]/[ARCHIVE]/[RAM_DISK]) for HDFS

  storage policies. The default storage type will be DISK if the directory does

  not have a storage type tagged explicitly. Directories that do not exist will

  be created if local filesystem permission allows.

  </description>

</property>

同样,要手动创建目录

[user@nn1 hadoop-3.0.0-beta1]$ mkdir -p ~/dfs/share/datanode

 

4. 配置worker

这里我们最简化安装,只配置1datanode,就是nn1本身。

编辑workers文件

[user@nn1 hadoop-3.0.0-beta1]$ vi etc/hadoop/workers

内容如下

localhost

修改为

nn1

 

3.9 nn1无密码登录nn1

下面设置nn1无密码登录nn1,因为启动datanode,需要用ssh远程登录。Hdfs3.0必须要做无密码登录,否则start-dfs.sh时,会报错退出。Hdfs2.x可以不做无密码登录,启动每个datanode时,需要输入密码,麻烦。

运行下面的命令

[user@nn1 hadoop-3.0.0-beta1]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

Generating public/private dsa key pair.

Your identification has been saved in /home/user/.ssh/id_dsa.

Your public key has been saved in /home/user/.ssh/id_dsa.pub.

The key fingerprint is:

d4:d7:39:4c:6f:51:5e:77:70:f7:8e:41:2c:bc:80:d8 user@nn1

The key's randomart image is:

+--[ DSA 1024]----+

|       o . . .+oO|

|      . E.. o=.=B|

|        . ...o* =|

|       .   ..  * |

|        S     . .|

|                 |

|                 |

|                 |

|                 |

+-----------------+

注意

  1. .ssh不要自己创建
  2. -P后面的’’,是两个单引号,不是双引号
  3. 会生成id_dsaid_dsa.pub两个文件,其中,id_dsa保存身份信息,而id_dsa.pub则保留公钥。此公钥可以用来标识本机身份,因为,如果用公钥能解密,说明是用本机私钥加密的,据此,可以判断对方身份。

A公钥加入到Bauthorized_keys中,这样,如果B可以用A的公钥来解密请求,则说明,此请求来自于A,就可以放行,让其无密码登陆。反之,其它机器因为没有A的私钥,也就无法无密码登陆。

此处,AB都是同一主机,实现的是自己无密码登陆自己

[user@nn1 hadoop-3.0.0-beta1]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

[user@nn1 hadoop-3.0.0-beta1]$ ls -l ~/.ssh/

total 16

-rw-rw-r--. 1 user user 598 Nov 27 14:10 authorized_keys

-rw-------. 1 user user 668 Nov 27 14:08 id_dsa

-rw-r--r--. 1 user user 598 Nov 27 14:08 id_dsa.pub

-rw-r--r--. 1 user user 180 Nov 27 14:03 known_hosts

修改authorized_keys权限

 $chmod 600 ~/.ssh/authorized_keys

验证,直接登陆

[user@nn1 hadoop-3.0.0-beta1]$ ssh nn1

Last login: Mon Nov 27 13:32:59 2017 from 192.168.182.1

 

上一篇:《hadoop-3.0.0-beta1运维手册(004):安装分布式hdfs3.0.0-配置JDK、设置主机名

原创文章,转载请注明: 转载自大数据学习网,作者:艾叔

本文链接地址http://www.bigdatastudy.net/show.aspx?id=451&cid=8

Hadoop大数据部署与运维实战手册 Hadoop Distributed File System(HDFS)是Hadoop的核心组件之一,设计用来存储大量数据,它使用低成本硬件并提供了高吞吐量的数据访问。HDFS具有高度容错性的特点,并被设计为适合在普通的硬件上运行。HDFS的工作原理是将大型文件分割成固定大小的数据块,默认大小为128MB或256MB,这些数据块存储在Hadoop集群中的多个DataNodes上。为了保证数据的可靠性,HDFS还会对数据块进行复制,复制的数量可以通过参数配置,默认是3份。 阅读详情

相关推荐

Cloudera CDH集群运维手册

Cloudera CDH集群运维手册,带截图的,挺详细,有用Cloudera cdh集群的可以看看

hadoop集群维护手册.pdf

hadoop集群维护手册.pdf

flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar

# 解压命令 tar -zxvf flink-shaded-hadoop-2-uber-3.0.0-cdh6.2.0-7.0.jar.tar.gz # 介绍 用于CDH部署 Flink所依赖的jar包

hadoop—集群维护手册分享.pdf

hadoop—集群维护手册分享.pdf

Hadoop集群运维管理

Hadoop集群运维管理相关

slb190623的博客 1954

大数据平台运维hadoop入门(保姆篇))----概述及基本环境配置(HA-1)

大数据运维基础

weixin_62875153的博客 3462

hadoop大数据部署运维手册

hadoop大数据部署运维手册

hadoop-3.0.0-beta1运维手册010):hdfs3.0.0动态添加节点(2)

写在前面的话 Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008年hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基

aishuc的博客 463

hadoop-3.0.0-beta1运维手册007):hdfs3.0.0基本操作-上传、下载、删除文件或目录

写在前面的话 Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008年hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs已经走过了近10个年头,其架构和功能特性也发生了巨大的变化。特别是hdfs3.0.0系列,和hdfs2.x相比,增加了基

aishuc的博客 763

大数据平台组件日常运维操作说明(Hadoop/Zookeeper/Kafa/ES/Mysql/Spark/Flume/Logstash/Tomcat)

调整shard刷新时间:`curl -XPUT http://localhost:9200/metricbeat-6.2.4-2018.05.21/_settings?提交模板配置文件:`curl -XPUT localhost:9200/_template/devops-logstore-template -d @devops-logstore.json`删除模板:`curl -XDELETE http://127.0.0.1:9200/_template/metricbeat-6.2.4`

love6a6的博客 1488

Hadoop / YARN / Hive 运维操作教程

本文提供了一套完整的Hadoop/YARN/Hive运维操作指南,包含10个关键运维场景的操作方法。主要内容包括:Hadoop配置同步脚本实现多节点配置一致性;Hadoop+Hive集群自动启动脚本;Hadoop服务管理命令;YARN应用状态查询和日志查看技巧;节点管理与标签配置;ResourceManager启停方法;Hive基本操作;系统与集群监控命令;MapReduce任务管理以及常用日志路径和调试方法。该手册为大数据集群运维提供了标准化操作流程,可有效提升日常维护效率,特别适用于多节点Hadoop

weixin_46244623的博客 542

Hadoop运维12问--应急手册(中国程序员)

Hadoop运维12问--应急手册(中国程序员) Hadoop运维12问--应急手册(中国程序员)

大数据运维手册

大数据运维手册 

CDH集群运维手册

CDH集群运维手册,最新的CDH版本,支持各种平台 CDH集群运维手册,最新的CDH版本,支持各种平台

Hadoop运维手册

在宿主机(这里是MacOS Intel Chip)上利用VMWare Fusion虚拟化3个虚机,网络采用Bridge模式,IP配置成静态地址。

2201_76110643的博客 859

Hadoop集群运维-基础、均衡器

为了使Hadoop集群保持健康的状态,集群需要进行日常的维护,主要从基础运维,集群扩容和异常处理三个方面。 1、基础运维 1.1 启动 / 停止HadoopHadoop_HOME/bin下执行./start-all.sh或者./stop-all.sh命令。(官方不推荐使用这两个命令) 1.2 启动 / 停止 HDFSHadoop_HOME/bin下执行./start-dfs.sh或者./stop-dfs.sh命令。 1.3 启动 / 停止 MapReduce 在Hadoop_H

洋葱专栏-有灵魂的程序员 649

hadoop-3.0.0-beta1运维手册011):HDFS Erasure Coding纠删码

转自:https://blog.csdn.net/aishuc/article/details/78734572 Hdfs采用分布式架构,为上层的应用和用户提供可扩展、高吞吐、高可靠的数据存储服务。在整个Hadoop生态系统中,hdfs处于最底层,也是最无可替代的一个基础设施。从2008年hadoop-0.10.1版本开始到现在的hadoop-3.0.0-beta1hdfs...

weixin_33819479的博客 388

ClouderaManager运维_中文手册

ClouderaManager官方的中文运维手册,有需要的同学拿走。。

上一篇: hadoop-3.0.0-beta1运维手册(004):安装分布式hdfs3.0.0-配置JDK、设置主机名
下一篇: hadoop-3.0.0-beta1运维手册(006):hdfs3.0.0分布式构建-启动hdfs
艾叔
博客等级 码龄11年 15粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值