Monthly Archive: 十二月 2014

hdfs 基本操作命令

官网文档:http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/FileSystemShell.html

hadoop fs –ls / 列出当前目录有哪些子目录,有哪些文件。

hadoop fs –mkidr /test 在Hadoop文件系统当中,创建一个test目录

hadoop fs –get /filename 从Hadoop文件系统当中,获取一个文件到本地的文件系统。

hadoop fs –put srcfile /desfile 从本地的文件系统上传一个文件到Hadoop文件系统中。

【翻译】Apache Hadoop MapReduce

原文:http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html

综述

Hadoop MapReduce是一个便于开发并行处理海量数据(TB级)的应用的软件框架,该框架在由普通pc机组成的大规模集群(上千台节点)上实现了可靠性及容错。

一个MapReduce任务(job)通常会将输入数据集分片,这一工作是由map任务完全并行的完成的。框架整理map的运行结果,作为reduce任务的输入。通常数据的输入输出都是在文件系统上完成的。MapReduce框架负责调度、监控及重做失败任务的工作。

通常来讲计算节点和存储节点是一样的,也就是说,MapReduce框架及HDFS运行在同一个节点集合。这种配置使得框架可以在数据已就绪的节点集群内高效的调度任务,这样在集群内获得了 非常大的带宽。

MapReduce框架包含一个资源管理器(ResourceManager ),每个节点上的NodeManager及每个应用上的MRAppMaster。

应用至少要指定输入输出位置,并通过适当的接口实现及抽象类来提供map及reduce的功能。

Hadoop的job-client提交前述任务(这个任务可以是jar,也可以是其他可执行的文件),并配置到资源管理器。资源管理器将软件及配置分发给从机,调度并监控任务,向job-client提供状态及诊断信息。

尽管Hadoop框架是用Java实现的,MapReduce应用不限定使用Java编写。

Hadoop  Streaming使得用户可以创造及运行任意的可执行程序作为mapper或者reducer。

Hadoop Pipes是兼容SWIG的C++ API,用于实现MapReduce应用。

输入输出

MapReduce框架运行在键值对(<key, value>)上,也就是说,MapReduce框架将任务的输入视为一个键值对的集合,产生新的键值对集合作为任务输出。key及value的类需要能够被框架序列化,因此必须实现Hadoop的writable接口(org.apache.hadoop.io )。此外,key类需要实现WritableComparable接口(org.apache.hadoop.io)来促进框架的排序。

一个MapReduce任务的输入输出类型示例:

(input) <k1, v1> -> map -> <k2, v2> -> combine -> <k2, v2> -> reduce -> <k3, v3> (output)

接下来玩例子:

MapReduce工作方式的小栗子:词频统计(wordcount)

 Java 源代码

复制上述代码到文件:

注意!文件夹及后面的jar需要让hdfs用户有7的权限!!!否则后面执行出错。

使用

假设环境变量设置如下(主要添加了后两条,不加会有classNotFound的错误)

编译前述WordCount.java文件并生成jar。

cdh hadoop默认lib目录:

/var/lib/

假设输入输出目录如下

/user/class_example/4_1/wordcount/input

/user/class_example/4_1/wordcount/output

 

在本地生成输入文件

导入到hdfs

(在jar的目录)跑一把前面生成的MapReduce程序的jar

参观一下输出:

 

 

 

 

 

 

 

 

 

 

 

【翻译】Apache Hadoop 下一代MapReduce ——YARN

官网链接:http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

在学习YARN之前先了解一下MapReduce:http://bananalighter.com/apache-hadoop-mapreduce/

MapReduce经历了hadoop-0.23版本的大规模修改,目前是MapReduce2.0(MRv2)或者叫做YARN。

MRv2的核心思想是将JobTracker的资源管理及任务的调度监控分解为多个不同的后台程序。这个思路是建立一个全局的资源管理器(ResourceManager),为每一个应用建立一个应用控制器(ApplicationMaster)。应用要么是一个传统的MapReduce任务,要么是一系列任务的有向无环图(DAG)。

资源管理器(RM)及每个节点上的节点管理器(NodeManager)来自于数据计算框架。资源管理器(RM)是系统中所有应用及其资源的最高级别的仲裁。

每个应用的应用管理员(ApplicationMaster)是一个框架的特定库,用于从资源管理器(RM)协调资源,并和节点管理器(NM)一起执行和监控任务。

YARN arch

 

资源管理器(RM)包含两个主要组成部分:调度器及应用管理器(ApplicationManager)。

调度器负责为不同的应用分配容量资源、排队等等。调度器单纯进行调度,不进行监控及状态跟踪。

翻译了一半发现董西城的blog上已经早都有了。。。

链过去好了= =:http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/

删除cloudera manager 及 cdh

边翻译边干:http://www.cloudera.com/content/cloudera/en/documentation/cloudera-manager/v5-0-0/Cloudera-Manager-Installation-Guide/cm5ig_uninstall_cm.html

配置情况

一台cm server(使用mysql)

四台cdh主机

默认的用户目录

以下目录是默认安装时的各个工具的目录:

/var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper /dfs /mapred /yarn

假如在安装时自己改过,那就在重新安装的时候注意删除自定义的目录。

停止各种cdh及cm的服务

可以在界面上操作

删除cm server上的服务及安装

检查cm server状态

确认server及agent关闭后删除:

清除mysql数据库

 

 删除集群上的cm agent及各种cdh软件

关闭cm agent

删除agent

clean yum cache

 删除cdh中的组件

删除cloudera manager的数据

重启后试试 物理机重启那叫一个慢。。。。。。。。

重启以后删掉了。

删除cloudera manager的lock文件

竟然没有,可能是因为通过命令正常关闭的,本身没有产生lock。

再删除其他hadoop的组件

*我没有删除/dfs,因为最初物理分区直接给分了个/dfs出来。

done

windows 修改远程桌面端口

修改远程桌面端口需要两个步骤:
1、打开注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp],修改右边PortNamber的值,其默认值是3389,修改成所希望的端口即可,例如3309
2、再打开注册表 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro1Set\Control\Tenninal Server\WinStations\RDP-Tcp],修改右边PortNamber的值,其默认值是3389,修改成所希望的端口即可,例如3309
修改完后需要重启生效,注意防火墙的问题!

参考:http://zhidao.baidu.com/link?url=sbMt1YylQyd6gHrTqaP0-Wj4LZ74SG_X_UhVLloFypdCZ96IUygLIWa-qpzLBC9dhNB1VAYx-oXjI4j0kBnhtK

 

 

使用CDH Manager(及本地源)自动化安装CDH 5

一、准备工作

共性准备配置

1.ntp服务器

2.关闭iptables及selinux

3.配置hosts文件(增加Manager机记录、增加所有slaver机记录)

slaver机准备

1.slaver机配置yum文件(添加cm、cdh的源,添加rhel光盘的源)

(添加光盘的源不再赘述)

manager机准备

1.安装并建立本地repo的http服务

2.http://bananalighter.blog.51cto.com/6386339/1546624

二、使用CM 安装CDH

登陆http://ip:7180

添加主机按提示操作(选择本地repo)。

参考:http://debugo.com/cm5-install/