美文网首页
Hadoop学习笔记(更新中)

Hadoop学习笔记(更新中)

作者: 煮茶的陆羽 | 来源:发表于2018-08-15 20:37 被阅读0次

    大数据分为:分布式存储、分布式运算。存储的是数据(文件),运算消耗的是CPU、内存、磁盘等硬件资源。

    Hadoop提供了分布式存储和分布式运算的功能。

    但是Hadoop的核心组件,极为底层,如果直接基于这个底层框架来开发我们的数据分析逻辑,比较繁琐,开发效率很低。所以,在Hadoop这个底层框架之上,又衍生了大量的快捷开发工具:

    1、HIVE:可以让用户只要写SQL来表达数据处理逻辑即可

    2、

    HDFS集群的安装

    1、HDFS集群中机器的角色

    2、

    HDFS的基本特性

    功能:为用户存储大量文件

    特性:

    HDFS是一个文件系统,并且提供了文件系统都提供的目录结构

    用户存入HDFS的文件,会被切分成若干个文件块,分散到多台 DATA NODE 上

    Namenode 节点只负责管理元数据;Datanode 节点只负责存储文件块

    HDFS的基本操作

    如何启动一个命令行的hdfs客户端

    任何一台机器上,只要有hadoop的安装包,就可以启动:hadoop fs 参数

    常用

    1、上传文件到集群中

    hadoop fs -put 本地路径 hdfs上的路径

    hadoop fs -put /root/a.txt /

    相同功能的另一种写法:hadoop fs -copy FromLocal 本地路径 hdfs上的路径

    2、下载文件

    hadoop fs -get hdfs上的路径

    hadoop fs -get /a.txt

    相同功能的另一种写法:hadoop fs -copyToLocal hdfs上的路径

    3、查看hdfs中目录信息

    hadoop fs -ls /

    4、创建文件夹

    hadoop fs -mkdir /aaa

    hadoop fs -mkdir -p /bbb/ccc

    5、删除文件或文件夹

    hadoop fs -rm /a.txt

    hadoop fs -rm -r /bbb

    HDFS如何动态扩容

    扩容就是增加datanode,datanode可以在线扩容。

    步骤:

    1)准备一台服务器,配置好环境: 网络、ip、防火墙、免密登陆、jdf

    2)从原集群的任意一台机器上复制hadoop安装包到新机器上

    3)在原集群的slaves文件中添加新机器的主机名

    4)在新机器上启动datanode即可

    a.直接用start-dfs.sh

    b.或者在新机器上手动启动一个datanode进程:hadoop-daemon.sh start datanode

    HDFS的一些配置属性

    1.块大小

    hdfs中存储的文件块的切块大小,默认128M

    参数:    dfs.blocksize    默认:134217728(128M)

    此参数用于客户端程序,也就是说,hdfs里面存储的文件块的块大小完全由客户端决定

    2.副本数量

    hdfs中存储的文件块的副本数量,默认3个

    参数:    dfs.replication    默认:3

    此参数用户客户端程序,也就是说里面存储的文件块的副本数量完全由客户端决定

    为什么默认要3个?

    第一个副本:存在离客户端最近的一台datanode上

    第二个副本:存在跟上一台datanode相同的机架上的另一台datanode上

    第三个副本:存在另一个机架上的某台datanode上

    3.元数据存储目录

    元数据存储目录就是namenode的工作目录,其位置由以下参数决定:

    参数:    dfs.namenode.name.dir    默认:file://${hadoop.tmp.dir}/dfs/name

    此参数是给服务端程序:namenode使用

    此参数默认值在生产中并不合适。应该给namenode专门配置一个安全的位置作为工作目录

    正确做法:应该给namenode配置多个目录,而且这多个目录应该挂在不同的磁盘

    <property>

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

    <value>/mnt/disk1,/mnt/disk2,/mnt/disk3,nfs://</value>

    </property>

    配置多个目录后,namenode会往各目录中写入相同的数据作为冗余备份

    4.datanode文件块存储目录

    datanode的工作目录也是参数可配的:

    参数:    dfs.datanode.data.dir    默认:file://${hadoop.tmp.dir}/dfs/data

    默认配置在生产系统中并不合适,应该:

    让datanode的工作目录指定到服务器上用于存储数据的多块数据磁盘上

    <property>

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

    <value>/data/disk1,/data/disk2,/data/disk3</value>

    </property>

    配置多个目录后,datanode会往各目录中轮询写入不同的数据,扩容datanode自身的容量

    相关文章

      网友评论

          本文标题:Hadoop学习笔记(更新中)

          本文链接:https://www.haomeiwen.com/subject/qchgbftx.html