学习hadoop
一、笔记本触摸板关闭方法
1、在windows下有官方驱动。
2、ubuntu下没有
操作方法如下:
1,终端操作
临时禁止触摸板:sudo modprobe -r psmouse
开启触摸板:sudo modprobe -a psmouse
永远禁用触摸板:
sudo vi /etc/modprobe.d/blacklist.conf
blacklist psmouse
那就用第二种。
2,在软件中心中搜索"pointing-device"安装,
选择disabled touched.
这样只关闭了触摸板,左右键也可用。
/etc/rc.local 加入信息 开机时刻,也可以使用
电脑安装Ubuntu 13.10 版本后,进入Ubuntu系统后鼠标指针不停的闪烁,看起来很不爽,解决办法如下
打开系统设置
选择“显示” 注:此时会看到一个内置显示器和一个未知显示器
单机“未知显示器”
在下面的选项中第一行显示该显示器已开启,单机开启,此时“未知显示器”关闭
解决完毕,鼠标不再闪烁
二、Ubuntu不显示时间
//不显示时间了 试一下
(1)pkill gnome-panel
(2)ctrl+alt+f2,登陆后 pkill gnome-session
二、关于文件解压
ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:
我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:
# unzip archive_name.zip
TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:
# tar -cvf archive_name.tar directory_to_compress
如何解包:
# tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -xvf archive_name.tar -C /tmp/extract_here/
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:
# tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:
# tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
TAR.BZ2
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。
# tar -jcvf archive_name.tar.bz2 directory_to_compress
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
三、hadoop安装
/home/feng/hadoop-0.20.2/bin/hadoop namenode -format
/home/feng/hadoop-0.20.2/bin/start-all.sh
/home/feng/jdk1.6.0_45/bin/jps
bin/hadoop dfs -put ../input in
bin/hadoop dfs -ls ./in/*
bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out
bin/hadoop dfs -ls
bin/hadoop dfs -cat ./out/*
出现错误
(1)如果 ssh 127.0.0.1时,报出错误:ssh: connect to host 127.0.0.1 port 22: Connection refused
sudo apt-get install openssh-server
ps -e | grep ssh
(2)、用jps命令查看守护进程时,没有DataNode,datanode无法启动
访问http://localhost:50070,点击页面中的Namenode logs链接,在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接,查看 日志文件
网络解决方案
(1)摘要:该文档解决了多次格式化文件系统后,datanode无法启动的问题
一、问题描述
当我多次格式化文件系统时,如
root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format
会出现datanode无法启动,查看日志,发现错误为:
2012-04-20 20:39:46,501 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/gqy/hadoop/data: namenode namespaceID = 155319143; datanode namespaceID = 1036135033
二、问题产生原因
当我们执行文件系统格式化时,会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保存一个 current/VERSION文件,记录namespaceID,标识了所格式化的 namenode的版本。如果我们频繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径) 的current/VERSION文件只是你第一次格式化时保存的namenode的ID,因此就会造成datanode与namenode之间的id不 一致。
三、解决办法
把配置文件中dfs.data.dir在本地系统的路径下的current/VERSION中的namespaceID改为与namenode一样。
(2)、bin/hadoop dfsadmin -safemode leave 再输入
bin/hadoop dfsadmin -safemode enter 在有in目录的前提下输入 bin/hadoop jar hadoop-0.20.2-examples.jar wordcount in out
hadoop删除文件
bin/hadoop fs -rmr /user/root/in/input
hadoop:在hfds下删除文件can not found file
在浏览hdfs上面的文件的时候,要在hadoop的安装目录下
[hadoop@master hadoop-0.20.2]$bin/hadoop fs -ls
进行查看,但是想要删除hdfs里面的文件,路径就需要是hdfs的专属路径,因为hdfs的文件路径和linux的本地路径是完全两套系统
例如想删除file01文件
[hadoop@master hadoop-0.20.2]$bin/hadoop fs -rmr hdfs://master:54310/user/hadoop/file01
或
[hadoop@master hadoop-0.20.2]$bin/hadoop fs -rmr /user/hadoop/file01
其中,路径中的user是固定的,标橙色的部分是你的hadoop的相关用户
学习日记记录
通过web了解Hadoop的活动 通过用浏览器和http访问jobtracker所在节点的50030端口监控jobtracker
通过用浏览器和http访问namenode所在节点的50070端口监控集群
HDFS设计基础与目标
硬件错误是常态。
因此需要冗余 流式数据访问,即数据批量读取而非随机对写,Hadoop擅长做的是数据分析而不是事务处理 大规模数据集 简单一致性模型。为了降低系统复杂度,对文件采用一次性写多次读的逻辑设计,即是文件一经写入,关闭,就再也不能修改
程序采用“数据就近”原则分配节点执行
HDFS NameNode DataNode 事务日志 映像文件 SecondaryNode
Namenode 管理文件系统的命名空间
记录每个文件数据快在各个Datanode上的位置和副本信息
协调客户端对文件的访问 记录命名空间内的改动或空间本身属性的改动 Namenode使用事务日志记录HDFS数据的变化。使用映像文件存储文件系统的命名空间,包括文件映射,文件属性等
Datanode 负责所在物理节点的存储管理 一次写入,多次读取(不修改) 文件由数据块组成,典型的块大小是64MB 数据块尽量散布到各个节点
读取数据流程 客户端要访问HDFS中的一个wenj 首先从namenode获得组成这个文件的数据块位置列表 根据列表知道存储数据开的datanode 访问datanode获取数据 Namenode并不参与数据实际传输
HDFS 的可靠性 冗余副本策略 机架策略 心跳机制 安全模式 校验和 回收站 元数据保护 快照机制 冗余副本策略 可以在hdfs-site.xml中设置复制因子指定副本数量 所有数据块都有副本 Datanode启动时,遍历本地文件系统,产生一份hdfs数据块和本地文件的对应关系列表(blockreport)汇报给namenode
机架策略 集群一般放在不同机架上,机架间带宽比机架内带宽要小 HDFS的“机架感知” 一般在本地架存放一个副本,在其它机架再存放别的副本,这样可以防止机架失效时丢失数据,也可以提高带宽利用率
心 跳机制 Namenode周期性从datanode接收心跳信号和块报告 Namenode根据块报告验证元数据 没有按时发送心跳的datanode会被标记为宕机,不会再给它任何I/O请求 如果datanode失效造成副本数量下降,并且低于预先设置的阈值,namenode会检测出这些数据块,并在合适的时机进行重新复制 引发重新复制的原因还包括数据副本本身损坏/ 磁盘错误,复制因子被增大等
安 全模式 Namenode启动时会先经过一个“安全模式”阶段 安全模式阶段不会产生数据写 在阶段Namenode收集各个datanode的报告,当数据块到最小副本数以上时,会被认为是“安全”的 在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安全模式结束 当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数
校验和 在文件创立时,每个文件块都产生校验和 校验和会作为单独一个隐藏文件保存在命名空间下 客户端获取数据时可以检查校验和是否相同,从而发现数据块是否损坏 如果正在读取的数据块损坏,则可以继续读取其它副本
回收站 删除文件时,其实时放入回收站/trash 回收站里的文件可以快速恢复 可以设置一个时间阈值,当回收站文件的存放时间超过这个阈值,就被彻底删除,并且释放占用的数据块
元数据保护 映像文件刚和事务日志是Namenode的核心数据,可以配置为拥有多个副本 副本会降低Namenode的处理速度,但增加安全性 Namenode依然是单点,如果发生故障要手先切换
快照 支持存储某个时间点的映像,需要时可以使数据重返这个时间点的状态 Hadoop目前还不支持,已经列入开发计划
HDFS文件操作 命令行方式 API方式
hadoop没有目录的概念,也没有cd命令 源文件 节点 bin/hadoop dfs -put ../abc abc ls -lR
HDFS文件复制到本地 bin/hadoop dfs -get abc ./xyz
删除HDFS的文档 bin/hadoop dfs -rmr abc
查看HDFS下某个文件的内容
bin/hadoop dfs -cat ./out/part-r-00000
查看HDFS基本统计信息 bin/hadoop dfsadmin -report
进入和推出安全模式 bin/hadoop dfsadmin -safemode enter bin/hadoop dfsadmin -safemode leave
ls|wc -l 查看文件大小
zcat ...........gz|less 可以看到gz文件,less可以翻屏
zcat *.gz >abc 小文件集成为大文件 abc 为大文件
input 上传文件 分解为块,将任务分解map --->shuffle 排序 压缩数据,reduce阶段 集中在某一节点,将所有的结果合并merge,所有记录放到大数据表中,最后形成最后结果,可能hdfs文件
简单没有reduce,复杂的有多个reduce
Map-reduce的思想就是“分而治之”
Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”执行
“简单的任务”有几个含义:1数据或计算规模相对于原任务要大大缩小;2就近计算,即会被分配到存放了所需数据的节点进行计算;3这些小任务可以并行计算,彼此间几乎没有依赖关系
Reducer
对map阶段的结果进行汇总
Reducer的数目由mapred-site.xml配置文件里的项目mapred.reduce.tasks决定。缺省值为1,用户可以覆盖之
Shffler
在mapper和reducer中间的一种步骤(可以没有)
可以把mapper的输出按照某种key值重新切分和组合n份,把key值符合某种范围的输出送到特定的reducer那里去处理
可以简化reducer过程
网络界面:http://192.168.1.102:50030/jobtraker.jsp
观看参数列表
http://192.168.1.102:50030/logs/
性能调优
究竟需要多少个reducer
输入:大文件优于小文件
减少网路传输:压缩map的输出
优化每个节点能运行的任务数:mapred.tasktraker.map.tasks.maximum和mapred.trasktraker.reduce.tasks.maximum(缺省值均为2)
Map-Reduce工作机制剖(pou)析
1编写好Map-Reduce程序,client node 对程序进行提交
2JobClient收到作业以后,与JobTracker联系,申请job ID,获得工作ID后,
3将源码散发出去,通过Shared FileSystem 散发到各个节点里面去
4提交作业
5JobTracker中initialize job,初始化工作,建立数据结构,记录job运行情况等等
6JobTracker会向hdfs中node 询问有关的数据在那些文件里面,文件散列在那些节点里面
7通过JobTracker与TaskTracker进行心跳联系,TaskTracker必须时能工作,负荷比较低,最好空闲节点
8定制出TaskTracker
9TaskTracker 架设运行
调度机制
缺省为先入先出作业队列调度
支持公平调度器(作业公平)
支持容量调度器
任务执行优化
推测式执行:即如果jobtracker发现有拖后腿的任务,会再启动一个相同的备份任务,然后哪个先执行完就会kill去另外一个,因此在监控网页上经常看到正常执行完的作业被kill的任务
推测执行缺省打开,但如果时代码问题,并不能解决问题,而且会使集群更慢,通过在mapred-site.xml配置文件中设置mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution可为map任务或reduce任务开启或关闭推测式执行
重启JVM,可以省去启动新的JVM消耗的时间,在mapred-site.xml配置文件中设置mpared.job.reuse.jvm.num.tasks设置单个JVM上运行的最大任务数(1,>1或-1表示没有限制)
忽略模式,任务在读取数据失败2次后,会把数据位置告诉jobtracker,后者重新启动该任务并且在遇到所记录的坏数据时直接跳过(缺省关闭,用SkipBadRecord方法打开)
错误处理机制:硬件故障
硬件故障时指jobreduce故障或tasktracker故障
jobtracker是单点,若发生故障目前hadoop还无法处理,唯有选择最牢靠的硬件作为jobtracker
Jobtracker通过心跳(周期1分钟)信号了解tasktracker是否发生故障或负载过于严重
Jobtracker将从任务节点列表中移除发生故障的tasktracker
如果故障节点在执行map任务并且尚未完成,jobtracker会要求其它节点重新执行此map任务
如果故障节点在执行reduce任务尚未完成,jobtracker会要求其它节点继续执行尚未完成的reduce任务
错误处理机制:任务失败
由于代码缺陷或进程崩溃引起任务失败
Jvm自动退出,向tasktracker父进程发送方错误信息,错误信息也会写入到日志
Tasktracker监听程序会发现进程退出,或进程很久没有更新信息送回,将任务标记为失败
标记失败任务后,人际计数器减去1以便接受鑫任务,并通过心跳信号告诉jobtracker任务失败的信息
Jobtracker获悉任务失败后,将把该任务重新放入调度队列,重新分配出去再执行
如果一个任务失败超过4次(可以设置),将不会再被执行,同时作业也宣布失败
Hadoop命令大全
hadoop.apache.org/common/docs/stable/commands_manual.html
审计日志
把log4j.properties配置文件中
log4j.logger.org.apache.hadoop.fs.FSNamesystem.audit=WARN
改为"INFO"可以打开审计日志。每个HDFS事件都会在namenode的log中写入一行记录
192.168.1.102:50070/logLevel
第三方工具
Ganglia
Chukwa
Openstack
学习hadoop的更多相关文章
- 什么是Hadoop,怎样学习Hadoop
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上:而且它 ...
- 零基础学习hadoop到上手工作线路指导
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...
- 零基础学习Hadoop
零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...
- Hadoop学习------Hadoop安装方式之(二):伪分布部署
要想发挥Hadoop分布式.并行处理的优势,还须以分布式模式来部署运行Hadoop.单机模式是指Hadoop在单个节点上以单个进程的方式运行,伪分布模式是指在单个节点上运行NameNode.DataN ...
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
1)集群规划:主机名 IP 安装的软件 运行的进程master 192.168.199.130 jdk.hadoop ...
- 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce(转)
零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce:http://www.aboutyun.com/thread-7567-1-1.html mapreduce学习目录总结 ...
- 快速学习hadoop只有这些基础可不行
“学习hadoop需要什么基础”这已经不是一个新鲜的话题了,随便上网搜索一下就能找出成百上千篇的文章在讲学习hadoop需要掌握的基础.再直接的一点的问题就是——学Hadoop难吗?用一句特别让人无语 ...
- 零基础学习hadoop开发所必须具体的三个基础知识
大数据hadoop无疑是当前互联网领域受关注热度最高的词之一,大数据技术的应用正在潜移默化中对我们的生活和工作产生巨大的改变.这种改变给我们的感觉是“水到渠成”,更为让人惊叹的是大数据已经仅仅是互联网 ...
- 零基础学习hadoop到上手工作线路指导(编程篇)
问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题? 5.如 ...
- 零基础学习hadoop到上手工作线路指导(中级篇)
此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结. 五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解: hadoop分为h ...
随机推荐
- 局域网架个YUM源-HTTP的
在安装CDH时,这是个绕不过去的坎. 参考URL: http://www.21ops.com/linux/26465.html 奇怪的是,我并没执行creatrepo这个,直接将光盘MOUNT来用的. ...
- 这样就算会了PHP么?-9
PHP关于COOKIE的应用 <?php if (!isset($_COOKIE["visittime"])) { setcookie("visittime&quo ...
- 使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道
使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道 使用python/casperjs编写终极爬虫-客户端App的抓取
- pythonchallenge学到的python内置函数整理
第0关: 计算x的n次方: x**n 第一关: maketrans(from,to):建立一个翻译规则,将from翻译成to的翻译规则,因为要从from翻译成to,所以俩个参数的长度必须一致 tran ...
- redis 学习笔记二 (简单动态字符串)
redis的基本数据结构是动态数组 一.c语言动态数组 先看下一般的动态数组结构 struct MyData { int nLen; char data[0]; }; 这是个广泛使用的常见技巧,常用来 ...
- iOS中的界面多选功能--(UICollectionView)
文/Jacob_Pan(简书作者)原文链接:http://www.jianshu.com/p/9d28ebd0f5a2著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 最近做项目接触了一 ...
- JS高级程序设计学习笔记之Date类型
日期对象的创建:var now =new Date(),不传递参数时,对象自动获取当前时间.(若要创建特定日期与时间的对象,必须传入该日期距离1970/1/1零点的毫秒数). Date.parse() ...
- (转)CommandArgument用法
1.绑定数据库中一个主键前台代码:<ItemTemplate> <asp:ImageButton ID="ibtnUpdate ...
- Jquery:强大的选择器<二>
今天跟着资料做了一个示例,为什么我感觉自己做的没书上的好看呢?好吧,我承认自己对css样式只懂一点皮毛,我也不准备深度的去学习它,因为……公司有美工嘛! 这个小示例只是实现了元素的隐藏和显示.元素cl ...
- 表格table常见的边框设置和初步的立体效果
做网页时经常会遇到表格,常见的表格如下: <style type="text/css"> .tbtest0 { width:500px; height:200px; b ...