Hadoop学习笔记(二):简单操作
1. 启动namenode和datanode,在master上输入命令hdsf dfsadmin -report查看整个集群的运行情况(记得关闭防火墙)

2. 输入命令查看hadoop监听的端口,netstat -ntlp

3. 在宿主机浏览器输入{masterIP}:50070进行查看

4. 关闭集群
master机器命令:hadoop-daemon.sh stop namenode
slave机器命令:hadoop-daemon.sh stop datanode
5. 创建集中式管理,在master机器上操作。输入命令
vim /usr/local/hadoop/etc/hadoop/slaves

6. 经过上一个步骤的操作后,可以在master机器上,集中的管理控制namenode和所有的datanode。在master机器上,启动所有的hadoop服务,输入命令start-dfs.sh,输入相应的密码,然后输入jps查看(该命令会默认启动SecondaryNameNode)

7. 步骤6的时候,需要输入很多密码,下面设置免密登录:
a). 在master机器中进入~/.ssh目录:cd ~/.ssh/
b). 输入ssh-keygen -t rsa,然后一直敲回车
c). 命令结束后,该目录下会多出两个文件

id_rsa为当前root用户的私钥,id_rsa.pub是公钥
d). 将公钥拷贝到所有的datanode机器上,这样,当master机器拿着经过私钥加密的登录信息发送到datanode机器的时候,datanode机器里存储的公钥可以解开,证明是该用户登录,因此就能够实现免密码登录。
e). 拷贝id_rsa.pub的方法,在master机器上输入命令ssh-copy-id slave1,输入密码,即可将公钥拷贝至slave1机器中。
f). 去到slave1机器的~/.ssh目录下查看,有authorized_keys文件表示拷贝成功

g). 回到master机器上,输入ssh slave1进行远程登录,发现不用输入密码即可登录成功,即实现了免密登录。
h). 同理,将id_rsa.pub文件拷贝到其他datanode机器上,并且,也给自己拷贝一份,即拷贝一份到master机器上。
8. 停止集群stop-dfs.sh
9. 再次启动集群start-dfs.sh发现不用输入密码了

10. 查看hadoop根目录下的文件hadoop fs -ls /(也可将hadoop fs替换为hdfs dfs,目前集群刚刚创建,目录为空,此外,删除等命令跟linux命令类似,例如hdfs dfs -rm -r -f /a.txt,其他hdfs命令可以去找度娘和谷老师)
11. 上传一个文件到hadoop(master机器上操作)
a). 上传/usr/local目录下的hadoop-2.7.3.tar.gz文件,hadoop默认的block为128M,该文件为214M,因此会被分块。

b). 输入命令hadoop fs -put ./hadoop-2.7.3.tar.gz /,前面的./hadoop-2.7.3.tar.gz为上传的文件本地的存放路径,后边的/为存放到hadoop的路径。
c). 输入hadoop fs -ls /查看刚刚上传的文件

d). 通过网页查看刚才上传的文件,点击Utilsities->Borwse the file system

e). 点击该文件,发现该文件被分成了两个块。并且每块复制了三份保存在了datanode当中。

12. hadoop分块后,默认会把块复制三份,以便在出现特殊情况的时候进行恢复,这个数字可以修改,下面就将这个默认复制三份改成两份。(在master机器上进行修改)
a). 编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,在configuration节点中添加如下内容

具体的配置说明,可查看hadoop安装目录下hadoop-2.7.3/share/doc/hadoop/index.html文件

b). 关闭集群stop-dfs.sh,启动集群start-dfs.sh(重启hadoop)
c). 根据上述,将jdk的安装文件上传到集群当中,登录网页观察。

通过上图发现,上传的文件被分割成了两个block块,其中Block0放在了slave2和slave3上边,Block1放在了slave1和slave2上边,此时,如果我们干掉slave3,即如下图所示,那么Block0就只剩下一份了,而我们的配置文件当中设置的是两份,我们测试一下hadoop会不会再帮我们复制一份出来(答案是会,这就是自动冗余)。

d). 在进行上述实验之前,我们还要配置一个选项

该属性表示,hadoop在多少时间间隔后对datanode进行一次检测,检测它们是否宕机,单位是毫秒,默认为300000,也就是5分钟,我们修改成小一点的值,不然还要等待漫长的5分钟。同样修改/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,将值改为10000,即10秒钟,然后重新启动hadoop。

e). 在slave3机器上,关闭hadoop服务:hadoop-daemon.sh stop datanode,默默的等待10秒钟,9、8、7、6。。。
f). 去到网页观察slave3确认已经死亡

g). 再次查看jdk文件的情况,发现Block0又在slave1当中被复制了一份,验证了上述的结果。

13. 思考:此时再次启动slave3,而slave3里有一份Block0备份,那么这样的话Block0就一共有三份备份了,而我们配置的是两个备份,考虑这个时候启动slave3,会不会删掉一份Block0呢?
Hadoop学习笔记(二):简单操作的更多相关文章
- Html学习笔记(二) 简单标签
标签的重点 标签的用途 标签在浏览器中的默认样式 <body>标签: 在网页上显示的内容 <p>标签: 添加段落 <hx>标签: 添加标题 标签一共有6个,h1.h ...
- Java设计模式学习笔记(二) 简单工厂模式
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 正文开始... 1. 简介 简单工厂模式不属于GoF23中设计模式之一,但在软件开发中应用也较为 ...
- Hadoop-HBASE案例分析-Hadoop学习笔记<二>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第八章的笔记 主要介绍HBase,一个分布式数据库的应用案例. 案例概况: 1)时间序列数据库(OpenTSD ...
- Hadoop学习笔记二
一.设置无密码sudo权限,不用在普通用户和root用户间来回切换 chmod u+w /etc/sudoers vim /etc/sudoers #首行添加如下的内容: hadoop ALL=(ro ...
- hadoop 学习笔记二
NameNode的持久化(persistent)(day4,1) 类似于:Redis redis中的持久化文件是相互独立的当两个持久化文件同时存在时默认使用的是aof ,但是namenode 的持久化 ...
- Hadoop学习笔记——入门指令操作
假设Hadoop的安装目录HADOOP_HOME为/home/admin/hadoop. 启动与关闭启动HADOOP1. 进入HADOOP_HOME目录. 2. 执行sh bin/start-all. ...
- MongoDB学习笔记二—Shell操作
数据类型 MongoDB在保留JSON基本键/值对特性的基础上,添加了其他一些数据类型. null null用于表示空值或者不存在的字段:{“x”:null} 布尔型 布尔类型有两个值true和fal ...
- redis 学习笔记二 (简单动态字符串)
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...
- hadoop学习笔记叁--简单应用
1.通过命令向HDFS传输文件 上传:./hadoop fs -put hdfs.cmd (本地文件名) hdfs://主机名称:9000/ hadoop fs -copyFromLoca ...
- Python学习笔记_03:简单操作MongoDB数据库
目录 1. 插入文档 2. 查询文档 3. 更新文档 4. 删除文档 1. 插入文档 # -*- coding: UTF-8 -*- import datetime from pymongo im ...
随机推荐
- 解决Xcode8模拟器无法删除应用的问题
关闭模拟器的3DTouch.Hardware →Touch Pressure→Use Trackpad Force.
- py3.0第四天 函数
列表生成 # -*- coding: utf-8 -*- # data =[1,2,3] # for index,i in enumerate(data): # print (index,i) # d ...
- unittest_API自动化脚本应用
import urllib.request import urllib.parse import json import unittest from HTMLTestRunner import HTM ...
- JavaScript -DOM 编程艺术 2nd 完
今日看完了这本书,做完了最后一个综合性例子.说实话收获良多,终于明白前端-h5 具体做什么 越学习越无知,这个看来真是一个真理. 后期计划: 1.CSS + DIV 布局深入了解,重点实战 2.Jav ...
- 阿里云服务器搭建SS代理教程!!!
二.搭建教程 1.环境介绍 阿里云服务器ECS(香港): 配置:cpu 1核心.内存 1GB.出网带宽 10Mbps. 系统:CentOS 7.4 64位 2.服务器端搭建 1)使用root用户,分别 ...
- 【原创】IO流:读写操作研究(输入流)
默写代码(以下问题要求能默写,不翻书不百度) 输入 问题一:从文件abc.txt中读取数据到字节数组并打印出来. 分析:如果读取数据,首先第一个问题,数据有多少?如果数据量不确定,如果确定字节数组大小 ...
- spring配置问题
产生原因缺少包common-logging-1.2.jar 在该字段所在的类中没有提供该字段的set方法.
- HelloWorld带我入门JAVA(一)
基本环境配置可以百度完成,给个比较全面的网址http://c.biancheng.net/java/10/ 创建第一个java工程 通过Eclipse运行程序 启动Eclipse,在菜单中选择“文件 ...
- 更改MySQL/Postgresql密码
Parrot包括几个SQL引擎,但是当它们被预先安装时,默认密码未被配置,并且拒绝访问其root用户. 重新配置Mysql / Mariadb密码 停止MySQL服务. sudo service my ...
- c# 使用资源文件
1.新建项目 2.新建资源文件 3. 代码中使用嵌入资源 using System;using System.Collections.Generic;using System.Text;using S ...