hadoop迁移数据应用实例详解

项目开发中hadoop一直装在虚拟机上,最近要迁移到服务器上。记录下迁移过程。

一、为虚拟机添加一块新的硬盘

虚拟机的初始硬盘只有30G,容不开要导出的数据。两种方式,一是给虚拟机扩容;二是为虚拟机添加一块新的硬盘。这里采取第二种方式。

1、添加虚拟硬盘

至此,添加硬盘成功。

2、将硬盘分区

要使用一块新的硬盘,需要先将硬盘分区,然后挂在文件系统上才能使用。

这里普及一下linux的文件系统与硬盘以及分区的关系。按照一个“由硬到软”的顺序来讲,首先是硬盘,是物理的;我们要使用这个物理硬盘,需要将物理硬盘分成一个一个的分区;而我们在使用操作系统时,则通过文件系统来操作文件。文件系统这个“软件“是通过分区与硬盘这个“硬件”进行联系的:硬盘分成区后,以分区的形式挂在文件系统上。

举例比较windows与linux文件系统的区别:

对于windows来讲,比如我们的电脑上只安装了一块硬盘,这个硬盘分了四个区,对应我们文件系统中的CDEF盘。即四个分区在我们使用者看来是平级的。这时如果添加了一个

对于linux来讲,硬盘也是以分区的形式挂载在文件系统上。这点与windows一致。不同的是,windows有多个文件系统树(C:D:E:F:),而linux只有一个文件系统树,也就是我们看到的,所有的目录以及文件都是在根目录 / 下的。那么linux是怎么挂的呢?linux会将不同的分区挂在不同的目录下。

如图:

图中,文件系统其实就是我们上边讲的分区,这些文件系统(分区)共同组成了我们linux整个的文件系统。这里注意,其实文件系统与分区是统一的,可以认为分区是文件系统的载体,我们上边讲它们两者的关系,只是为了进一步帮助理解。那么既然分区是挂在linux的基于根目录的这棵“树”上的,我们就将分区挂的这个目录称为挂载点。如上。

下边我们来具体讲解一下关于将硬盘分区的命令:

a、使用:fdisk -l 命令查看硬盘及分区信息,如图:

图中,使用矩形围起来的是硬盘,一般硬盘会按照sda、sdb、sdc的顺序依次添加。下边两块硬盘暂时不要考虑。

使用椭圆圈起来的是分区,如硬盘sda有三个分区,分别是sda1、sda2、sda3。

可以看到箭头指向的硬盘sdc没有分区,这意味着这块硬盘尚未被使用,这就是我们新添加的硬盘。

b、通过  fdisk /dev/sdc  对新硬盘进行分区

输入m可以打印我们的操作菜单,注意上边红线圈出 的命令,n代表新建一个分区,p代表打印当前硬盘的分区表,w代表向硬盘写入分区表。接下来我们依次执行。如图:

输入n,新建一个分区,两个选项,p代表主分区,e代表扩展分区,选择p主分区;第二次输入p是为了打印分区表,可以看到分区sdc1创建成功。创建过程中的分区好,起始扇区,last扇区使用默认值直接回车即可。最后输入w,写入分区。

c、使用  mkfs -t ext4 /dev/sdc1 将新分区格式化成ext4的格式

如图:

d、通过  mount /dev/sdc1 /disk5 将新的分区sdc1挂载到目录disk5下边

如图:

最后,我们通过df -lh /disk5 命令查看目录disk5,发现其确实是新的分区sdc1,挂在成功。如此,便可正常使用新加的硬盘了。

小结:用到了 fdisk df mkfs mount 等几个命令,注意复习。

二、hadoop的命令的使用

1、首先需要执行命令使hadoop命令能够被识别。

export PATH=$PATH:/home/hadoop/hadoop-2.5.2/bin

2、hadoop的文件系统的命令与linux的命令十分一致,下边举例说明:

hadoop fs -ls / 表示列出根目录下的所有文件(夹)
hadoop fs -put readme.txt /user/hadoop/test/ 表示将readme.txt文件上传到hdfs的/user/hadoop/test/目录下
hadoop fs -get / /hadoop_data 表示将hdfs文件系统根目录/下的所有文件(夹)导出到本地的/hadoop_data目录下
hadoop fs -rm / 表示删除hdfs文件系统中的所有文件(夹)

总结

以上所述是小编给大家介绍的hadoop迁移数据应用实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • hadoop迁移数据应用实例详解

    项目开发中hadoop一直装在虚拟机上,最近要迁移到服务器上.记录下迁移过程. 一.为虚拟机添加一块新的硬盘 虚拟机的初始硬盘只有30G,容不开要导出的数据.两种方式,一是给虚拟机扩容:二是为虚拟机添加一块新的硬盘.这里采取第二种方式. 1.添加虚拟硬盘 至此,添加硬盘成功. 2.将硬盘分区 要使用一块新的硬盘,需要先将硬盘分区,然后挂在文件系统上才能使用. 这里普及一下linux的文件系统与硬盘以及分区的关系.按照一个"由硬到软"的顺序来讲,首先是硬盘,是物理的:我们要使用这个物理硬

  • Hadoop文件的存储格式实例详解

    sequence文件存储格式 1.txt 纯文本格式,若干行记录.默认用字符编码存储 2.SequenceFile格式(顺序文件格式,可进行切割) key-value 格式进行存储,最终形成的是一个二进制文件, 需用hadoop提供的api进行写入存储. 编写 写入 seq文件案例. Configuration configuration = new Configuration(); configuration.set("fs.defaultFS","hdfs://s100:

  • Vuejs第九篇之组件作用域及props数据传递实例详解

    本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html#Props 本教程是小编结合官方文档整理的一套更加细致,代码更多更全的教程,特别适合新手阅读. props数据传递 ①组件实例的作用域: 是孤立的,简单的来说,组件和组件之间,即使有同名属性,值也不共享. <div id="app"> <add></add> <del></del> </div> <sc

  • C#中WPF ListView绑定数据的实例详解

    C#中WPF ListView绑定数据的实例详解 WPF中ListView用来显示数据十分方便, 我们可以将它分成几个列,每一个列用来显示一条数据,但是又是在一方之中. 那么怎样实现这样的效果的呢,这就要用绑定了. 我们先来看一看他的xmal代码 <ListView Name="receiveList" Grid.Row="0"> <ListView.View> <GridView> <GridView.Columns>

  • 微信小程序 本地数据存储实例详解

    微信小程序 本地数据存储实例详解 前言 如果您在看此文章之前有过其他程序的开发经验,那一定会知道一般例如安卓或者苹果的原生APP都提供了本地的存储功能,甚至可以使用sqlite数据库来做存储.可是微信的小程序框架基于微信本身,其实际运行环境只是在浏览器里面,所以不会提供那么丰富的数据存储实力.但html5开始已经可以在浏览器里面存储数据,好在微信的小程序给这个功能封装好了,这样我们可以使用数据存储. 每个微信小程序都可以有自己的本地缓存,可以通过 wx.setStorage(wx.setStor

  • Python 处理数据的实例详解

    Python 处理数据的实例详解 最近用python(3.2的版本)写了根据特定规则,处理数据的一个小程序,用到了一些python常用的基础知识,在此总结一下: 1,python读文件 2,python写文件 3,python的流程控制 4,python的for循环 5,python的集合,或字符串里判断是否存在某个元素 6,python的逻辑或,逻辑与 7,python的正则过滤 8,python的字符串忽略空格,和以某个字符串开头和按某个字符拆分成list python的打开文件的模式: 关

  • java 分割csv数据的实例详解

    java 分割csv数据的实例详解 实际需要解析的csv中很多都是从excel中转过来的,数据中本身包含了逗号的数据导致split的过程中发现数据对不上,因此,基于这种特性,重新写了一个csv数据的分割方法: 实现代码: public static String[] split(String line) { List<String> list = new ArrayList<>(); int start = 0; int end = -1; while(true) { start

  • 对pandas的算术运算和数据对齐实例详解

    pandas可以对不同索引的对象进行算术运算,如果存在不同的索引对,结果的索引就是该索引对的并集. 一.算术运算 a.series的加法运算 s1 = Series([1,2,3],index=["a","b","c"]) s2 = Series([4,5,6],index=["a","c","e"]) print(s1+s2) ''' a 5.0 b NaN c 8.0 e NaN '

  • PyQT5 QTableView显示绑定数据的实例详解

    如下所示: import sys from PyQt5 import QtCore,QtGui from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.uic import loadUi class MainWindow(QMainWindow): def __init__(self, parent=None): super(MainWindow, self).__init__(parent) loadUi('qtdesi

  • vue组件中使用props传递数据的实例详解

    在 Vue 中,父子组件的关系可以总结为 props向下传递,事件向上传递.父组件通过 props 给子组件下发数据,子组件通过事件给父组件发送消息.看看它们是怎么工作的.  一.基本用法 组件不仅仅是要把模板的内容进行复用,更重要的是组件间要进行通信. 在组件中,使用选项props 来声明需要从父级接收的数据, props 的值可以是两种, 一种是字符串数组,一种是对象. 1.1 字符串数组: <div id="app4"> <my-component4 messa

随机推荐