Author Archive: 香蕉与打火机

About 香蕉与打火机

李小蕉!

【翻译】安装Hive

参考:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_hive_install.html

一、安装Hive

1.安装hive包

2.配置hive组件的堆大小及垃圾回收(暂时保持默认)

 

二、配置Hive元存储

Hive元数据服务使用关系型数据库存储Hive表及分区的信息。使用元数据服务API对外提供前述信息的客户端连接。接下来的部分介绍部署选项及推荐配置。

1.元数据部署模式

嵌入式模式

hive_embeddedmetastore

 

默认安装模式。将元数据存储在derby中。数据库及及元数据服务都嵌入在HiveServer进程中,随HiveServer一起启动。这种模式配置最简单,但同时仅支持一个活动用户,不能用于生产。

本地模式

hive_localmetastore

Hive元数据服务内嵌在HiveServer中,但元数据数据库在单独进程中执行,并可以在分离的主机上。内嵌的元数据服务通过JDBC与元数据数据库通信。

远程模式(CDH推荐的生产环境部署方案)

hive_remotemetastore

元数据服务在独立的JVM进程中,HiveServer2, HCatalog, Cloudera Impala™,及其他进程与元数据服务通过网络API(通过 hive.metastore.uris 参数进行配置)通信。元数据服务通过JDBC与元数据数据库通信(通过 javax.jdo.option.ConnectionURL 参数进行配置)。元数据服务、元数据数据库及HiveServer可以在同一主机上运行,但是将HiveServer分离到单独的主机可以提供更好的可用性和扩展性。

远程模式较之本地模式先进之处在于:远程模式不需要管理员为每一个Hive用户共享JDBC登陆信息。HCatalog需要这种模式。

2.安装元数据数据库

 (1)安装mysql

 (2)创建mysql实例及账号

3.配置元数据服务相关参数(hive-site.xml)

配置连接到mysql数据库的参数。可以将此配置文件传播到每一台hive主机上。每一台Hive的相关主机(client, metastore, HiveServer)都需要配置hive.metastore.uris。该文件中其他的参数仅用于配置metastore服务所在主机。

 三、配置HiveServer2

1.向hive-site.xml添加参数

适当的配置Hive表锁管理器。这需要安装zookeeper。

2.创建hive在hdfs上的工作目录

在hdfs上创建 /user/hive/warehouse目录,并将权限修改为1777。

四、打开服务

1.启动元数据服务

在hadoop01上:

2.启动hive server2

在hadoop01~03上:

3.检查启动日志(/etc/hive/conf/hive-site.xml),没有报错则可测试hive。

五、测试使用

 1.测试连接

 2.测试执行

 

大功告成。

 

 

 

 

 

【翻译】在集群上部署MapReduce v2 (YARN)

原文:http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_yarn_cluster_deploy.html#topic_11_4

环境hadoop01~03三台机器,其中hadoop01为rm及JobHistory Server。

一、修改mapred-site.xml

在configuration之间添加内容(标明使用yarn代替MapReduce1的框架功能):

二、yarn-site.xml中一定要配的参数

1.添加以下内容以确保ResourceManager配置到正确的主机(日志位置要对应在hdfs上创建好目录,否则执行时会无报错的卡住)。

2.创建对应的hdfs上的目录

三、配置history server

如果在集群上使用YARN代替MRv1. 需要运行MapReduce JobHistory server。

1.以下是需要配置到mapred-site.xml文件的参数。

Property

Recommended value

Description

mapreduce.jobhistory.address

historyserver.company.com:10020

The address of the JobHistory Server host:port

mapreduce.jobhistory.webapp.address

historyserver.company.com:19888

The address of the JobHistory Server web applicationhost:port

In addition, make sure proxying is enabled for the mapred user; configure the following properties in core-site.xml:

2.在core-site.xml文件中配置以下参数,以确保mapred用户的代理功能可用。

Property

Recommended value

Description

hadoop.proxyuser.mapred.groups

*

Allows the mapreduser to move files belonging to users in these groups

hadoop.proxyuser.mapred.hosts

*

Allows the mapreduser to move files belonging on these hosts

JobHistory Server的参考:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-jobhistory-log/

3.创建对应的目录

四、配置staging 目录

1.配置mapred-site.xml文件

2.创建hdfs上的目录

五、将各配置文件部署到其余两个节点

六、安装启停脚本

1.在hadoop01上安装ResourceManager的启停脚本,JobHistory Server的启停脚本

2.在hadoop01~3上安装NodeManager的启停脚本

七、启动

1.在hadoop01上启动Resource Manager

2.在hadoop01~3上启动nodemananger

3.启动JobHistory Server

三、测试yarn

1.建立测试目录及文件

2.YARN测试

3.查看结果

四、故障及排除

1.卡map0% reduce0%:

hdfs namenode -format

删除datanode在本地的存储

2.卡map 100% reduce0%

修改/etc/hosts

删掉各种域,变为:

 

 

 

linux 查看当前登陆用户 与之发信息

查看当前登陆用户:

w

比较逗趣的是可以给用户发信息

机器一

机器二

 

使用TOP查看内存占用情况

可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
$ top -u oracle

内容解释:

  PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

原文:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html

 

 

rhel 绑定双网卡主备

百度知道:http://jingyan.baidu.com/album/25648fc1a2cbc99190fd007a.html?picindex=1

一、新建bond文件

/etc/sysconfig/network-scripts/ifcfg-bond0

配上网络,以后的网络出入都走这个。

mode=1指主备,0则为负载均衡。

miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路

二、修改网卡文件

物理网卡配置到bond上。

/etc/sysconfig/network-scripts/ifcfg-eth0

同理另一块网卡

/etc/sysconfig/network-scripts/ifcfg-eth1

三、修改/etc/modprobe.d/dist.conf

添加以下行

 

运行

四、重启网络

 

 

vmware 使用powercli为数据中心添加主机

1.首先安装powercli程序

可以直接官网下载

2.获取命令行内帮助的方法

3.连接vCenter并添加主机

4.附add-vmhost的help

 

 

 

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/