349328

【dbdao Hadoop 大数据学习】hadoop hdfs 滚动升级

dbDao.com 引导式IT在线教育

Hadoop 技术学习QQ群号  : 134115150

本文固定链接:http://t.dbdao.com/archives/hadoop-hdfs-rolling-upgrade.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsRollingUpgrade.html#namenode_-rollingUpgrade

 

 

 

1介绍

HDFS 滚动升级允许对单独的HDFS进程升级。例如,datanodes可以被单独的升级而不依赖Namenodes。一个namenode可以被升级而不依赖其他的namenodes。Namenodes可以被升级而不依赖datanodes和journal 节点

2升级

在 hadoop v2,HDFS支持高可用的namenode服务和写兼用。这些功能可以让HDFS再升级的时候不需要停机、为了使HDFS集群无停机时间,集群必须设置为HA

如果在任何新版本中启用了任何新特性,升级后可能无法在旧版本上使用。在这种情况下(t.dbdao.com),升级应遵循下列步骤:

1.禁用新功能

2.升级集群

3.启用新功能

注意:滚动升级只能从hadoop-2.4.0之后

(更多…)

Read More

MYSQLV1

【MySQL学生手册】数据恢复

本文地址:http://t.dbdao.com/archives/mysql-data-recovery.html

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

 

11.8 数据恢复

进行数据恢复操作的前提是你需要一份备份,作为恢复所需的一部分。它可以是你数据库某个时间点所做的snapshot快照(当进行备份时)。不过,对于一个活动的服务端,数据会在最近的备份之后就会发生改变。因此恢复操作所需的另一部分材料则是服务端之后所做的数据变更记录 —— 也就是,binary log。因此一个恢复操作涉及到使用备份来恢复数据库并且之后重新执行在binary log中所包含的备份之后的数据修改操作。

 

通常恢复操作有以下步骤:

  1. 首先对数据存放目录进行拷贝,这是为了防止在恢复时出错而以防万一。
  2. 使用备份文件恢复数据库。如果你已经制作有一个二进制备份,那么这个步骤涉及到关闭服务端并使用这些备份来替换丢失或损坏的文件。
  3. 重新执行在备份后记录在binary log中的数据修改操作。

 

11.8.1 导入mysqldump输出

可以使用mysqldump工具来导出数据并生成SQL格式的dump文件,之后通过mysql客户端工具来执行此文件进行导入操作。例如,你可以使用如下语句来生成一份world数据库下Country表的dump文件:

之后的数据库导入,则使用mysql:

 

当mysqldump的输出文件中没有指定数据库时,你在使用mysql客户端工具命令时就有必要指定到某个需要操作的库。如果在mysqldump执行中带有 –database 或 –all-databases项时,所生成的dump文件则已包含有相应的 USE db_name语句。

 

mysqldump在使用时不仅仅可用于恢复表和数据库,同时和mysql一起使用也可起到类似”拷贝”的用途。mysql可以直接从管道支进行读取,因此两个命令可以组合成一条命令来将库中的表拷贝到另一个库中。例如,将world数据库中Country表拷贝到test库中,使用以下命令:

管道技术也可以将数据库或表通过网络拷贝到另一个远端库中。如,远端主机为other.host.com:

如果dump文件中包含有很长的INSERT语句,那么这可能会超出默认到通信缓冲(communication buffer: 1M)。你可以对mysqldump和mysql通过使用 --max-allowed-packet项来增大缓冲大小。这个命令项可以设置一个单位为byte的值或者值后加上K,M或G来指明大小。例如,--max-allowed-packet=32M定义了大小为32MB。服务端也需要在运行时使用 --max-allowed-packet值来增大其自身的通信缓冲,使其足够大。

当你使用mysqldump时使用了 --tab项,那么它会生成一个以tab制表符分隔的数据文件。对于这种dump文件,重新导入时则需要注意使用相应的方法。假设你的dump文件对应导出表world.City使用/tmp目录在作为输出目录:

输出将分两部分,一部分为一个包含有City表CREATE TABLE语句的City.sql文件,另一部分为一个City.txt文件包含了相应的表数据。当使用这些文件进行表导入时,首先切换当前路径到导出的目录,然后使用mysql来处理.sql文件,之后只用mysqlimport来导入.txt中的表数据。

如果你在使用 --tab项时还结合其它格式控制项如 --fields-terminated-by--fields-enclosed-by一起使用,那么在使用mysqlimport进行导入时,就需要使用对应相同的格式控制项来使得命令程序知道如何翻译数据文件以进行导入。【dbdao.com 数据岛】

(更多…)

Read More

2010070806111128

【dbdao Hadoop 大数据学习】 hdfs nfs 网关

dbDao.com 引导式IT在线教育

Hadoop 技术学习QQ群号  : 134115150

本文固定链接:http://t.dbdao.com/archives/hdfs-nfs-gateway.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsNfsGateway.html

 

 

1概述

 

NFS 网关支持NFSv3和允许HDFS 作为客户端文件系统的一部分被挂载。当前NFS 网关支持和以下列默认启用:

1.用户可以通过操作系统兼容的本地NFSv3客户端来阅览HDFS文件系统

2.用户可以从HDFS文件系统下载文档到本地文件系统

3.用户可以通过挂载点直接流化数据。支持文件附加,但是不支持随机写(t.dbdao.com)

 

NFS网关机器需要相同的HDFS客户端 例如Hadoop JAR 文件,HADOOP_CONF目录。NFS网关可以和任何主机在一起,例如:DataNode,NameNode.

(更多…)

Read More

Space-Art-Wallpaper-1920x1080_083

【dbdao Hadoop 大数据学习】hdfs 集中内存管理

dbDao.com 引导式IT在线教育

Hadoop 技术学习QQ群号  : 134115150

 

 

本文固定链接:http://t.dbdao.com/archives/hdfs-cache-management.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/CentralizedCacheManagement.html

 

 

1介绍

 

在HDFS中的集中内存管理是一种显式的内存机制,允许用户指定HDFS的内存路径。

NameNode将于DataNode通信来获得磁盘上所需的块,并引导它们在堆缓存中缓存这些块。

集中缓存管理有许多明显的优点(t.dbdao.com)

1.显式的防止那些常用的块从内存中清除。这个对于当工作集的大小超过内存的时候非常重要,HDFS的工作量超过内存的情况很常见。

2.因为DataNode的内存被NameNode管理,应用程序在确定任务目标位置时可以查询到内存块位置。通过缓存块联合定位任务可以提高读性能。

3.当块已经被DataNode缓存时,客户端可以使用一个新的,更有效的零拷贝读API。一旦DataNode上的缓存数据校验完成,客户端在使用这个新API的时候基本上是零开销。

(更多…)

Read More

universe-wallpaper-3

【dbdao Hadoop 大数据学习】HDFS Short-Circuit Local Reads

dbDao.com 引导式IT在线教育

Hadoop 技术学习QQ群号  : 134115150

本文固定链接:http://t.dbdao.com/archives/hdfs-short-circuit-local-reads.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/ShortCircuitLocalReads.html

 

 

 

1.本地读

1.1背景

在HDFS,读一般是通过DataNode。因此,当客户端请求DataNode来读取一个文件时,DataNode从磁盘读取文件,然后通过TCP socket发送给客户端。所谓的本地读(短路读),是通过DataNode ,允许客户端直接去读取文件。短路读为很多应用提供了优秀的性能。

 

(更多…)

Read More

MYSQLV1

【MySQL学生手册】更多备份相关

本文地址:http://t.dbdao.com/archives/mysql-more-bk-related.html

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

 

11.5 备份日志和状态文件

除了备份数据库之外,你还应该备份以下文件:

  • 你的二进制日志文件。如果你不得不进行数据库恢复的话,binary log备份存储了你在备份之后的更新。
  • 由服务端所使用的配置项文件(cnf或my.ini文件),这些文件包含了在数据库发生奔溃后恢复所需的的配置信息。
  • Replication从库端(Slave)所建立的一个info文件,这个文件包含有所需连接的主库信息。以及relay-log.info文件,这个文件记录了当前处理relay日志的进度情况。
  • Replication从库在处理LOAD DATA INFILE语句时会建立数据临时文件。这些文件被放置在由slave_load_tmpdir系统变量所设置的目录位置下,此变量可以在服务端启动时通过 –slave-load-tmpdir项进行设置。当slave_load_tmpdir未被设置,那么文件就会被存放在操作系统变量tmpdir都指定的位置。其处理的文件会以SQL_LOAD- 打头。

 

为了备份以上这些文件,你可以使用一般的文件系统操作。静态文件如配置文件(option file)不需要特别的注意即可进行备份。动态文件如服务端正在运行且改变的日志文件,则需要停止服务端,然后进行备份。【dbdao.com 数据岛】

(更多…)

Read More

space-drawn-hd-wallapers-collection-vol2-8589_thumb

【dbdao Hadoop 大数据学习】C API libhdfs

dbDao.com 引导式IT在线教育

Hadoop 技术学习QQ群号  : 134115150

本文固定链接:http://t.dbdao.com/archives/hadoop-c-api-libhdfs.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/LibHdfs.html

1介绍

Libhdfs 是一个在HDFS中JNI 基础的C API 。它提供了一个HDFS APIs的子集C APIs来操作HDFS文件和文件系统。Libhdfs

Libhdfs是Hadoop分布式的一部分,并且在$HADOOP_HDFS_HOME/lib/native/libhdfs.so中预编译。Libhdfs 兼容Winddows并且可以通过hadoop-hdfs-project/hadoop-hdf根目录下的mvn来编译。(t.dbdao.com)

 

 

2 APIs

Libhdfs apis 时 Hadoop 文件系统API的一个子集。

在$HADOOP_HDFS_HOME/include/hdfs.h中的头文件描述了每个API的详细详细。(t.dbdao.com)

(更多…)

Read More

MYSQLV1

【MySQL学生手册】建立文本备份

本文地址:http://t.dbdao.com/archives/mysql-generate-text-backup.html

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

 

11.4 建立文本备份

11.4.1 通过SQL建立文件备份

SELECT命令可以和INTO OUTFILE语法一起使用来将返回结果直接写入文件中。在使用中,需要将INTO OUTFILE语法放在FROM语法之前。例如,将Country表中数据写入Country.txt文件中,执行以下语句:

其中文件名指定了你希望写入的位置,这里也可以写路径,如果没有写明路径,则是指当前会话登陆时所在位置下。

SELECT … INTO OUTFILE 使用时有以下特点:

  • 此语句可被用于本地或远程服务端。由于是服务端本身来写文件,因此生成的结果文件总是被建立在服务端。
  • 需要输出文件不能已经存在。
  • 语句可用于任何存储引擎。
  • 语句要求有FILE权限。
  • 输出格式可以通过使用语句项,定义其指定列和行分隔符,引用符和逃逸符来进行控制。

使用INTO OUTFILE可以在以下几个方面改变SELECT语句的操作:

  • 文件被写于服务端,而非通过网路将文件发送至客户端(文件名不能已经存在)。
  • 服务端会在其主机上写一个新文件(执行语句需要登录服务端并使用具有FILE权限的账号)
  • 被建立的文件具有文件系统访问权限,并为MySQL服务端所有,不过对所有用户开放可读。
  • 文件的包含的数据按查询语句返回结果中每条记录一行(默认,列值之间以tab制表符进行分隔,每行则在出现新记录时终止)

你可以像CSV格式一样建立以逗号分隔值,使用双引号括起值,并对行以回车换行符(Carriage Return:CR)结尾的格式文件。以这种格式来输出结果信息的话,可以使用以下SELECT … INTO OUTFILE语句:

(更多…)

Read More

MYSQLV1

【MySQL学生手册】建立binary备份

本文地址:http://t.dbdao.com/archives/mysql-generate-binary-bk.html

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

 

11.3.1 建立MyISAMBinary备份

为了对MyISAM表建立一份binary备份,可以拷贝对应表的.frm,.MYD和.MYI文件。当你这么做时,必须确保这些表在被拷贝时没有在被其它程序(包括服务端)所使用。如果你在拷贝表前就关停了服务端,那就没什么问题了。如果拷贝的时候服务端还在运行,那就需要使用适当的锁来避免服务端对这些表的访问。例如,拷贝world数据库中的Country表前,进行锁表并将有待永久保存的变更刷出内存操作:

然后(在表被锁住的情况下)使用操作系统文件拷贝命令将表文件拷贝出来。

 

以MyISAM数据库表world.Country拷贝举例(这里假设Country表为MyISAM引擎表):

在拷贝操作完成后,释放表锁:

 

之前的方法可以用于Unix/Linux系统上的数据库文件备份。在Windows上,被服务端锁住的表文件则由于文件锁原因而不能被拷贝备份。在这样情况下,你就必须在拷贝表文件前关闭服务端。

 

另一种MyISAM二进制备份方式是使用mysqlhotcopy脚本工具,它可以帮你锁表并拷贝文件。【dbdao.com 数据岛】

(更多…)

Read More