集群管理用户手册:WDP数据处理平台的使用指南
目录
1……………………………………………………概述
1.1…………………………………………大数据简介
1.2………………………………WDP数据处理平台简介
2……………………………启动集群管理-server服务
3…………………………………配置集群管理-agent
4…………………………………部署管理Hadoop集群
4.1……………………………………部署Hadoop集群
4.2………………………………………HDFS运维管理
4.2.1……………………………………HDFS命令手册
4.2.2…………………………………………进程管理
4.2.3………………………………………可靠性管理
4.3…………………………………………MapReduce
4.3.1…………………………………………运行案例
5……………………………………部署Hive数据仓库
5.1……………………………………………部署Hive
5.2………………………………………Hive用户指南
5.2.1…………………………………………测试验证
5.2.2…………………………………hive 命令参数
5.2.3……………………………………………表类型
5.2.4 ……………………………………sql操作及桶
5.2.5……………………管理HDFS中的网络日志数据
6 …………………………部署Hbase分布式列数据库
6.1 …………………………………………部署HBase
6.2………………………………………HBase用户指南
6.2.1……………………………………………测试验证
6.2.2……………………………HBase Shell常用命令
6.2.3……………………………………………运行案例
7…………………………………部署Mahout数据挖据工
7.1……………………………………………部署Mahout
8……………………………………部署Pig数据分析平台
8.1…………………………………………………部署Pig
8.2…………………………………………………Pig简介
8.2.1………………………………………Pig的运行模式
8.2.2…………………………………………运行Pig程序
8.2.3…………………………………………Pig常用命令
8.1 ………………………………………………运行案例
8.1.1…………………………………………计算IP点击数
8.1.2 ………………………………使用Pig分析最高气温
9 ………………………………………………………Flume
9.1………………………………使用ng搭建日志传输场景
9.2…………………使用ng实时上传文件至HDFS文件系统
10………………………………………Spark并行计算框架
11…………………………………………………部署Spark
11.1………………………………………………Spark简介
11.2………………………………………弹性分布式数据集
11.3…………………………………………………常用语法
11.4…………………………………………………运行案例
11.4.1………………………………………………日志分析
1 概述
1.1 大数据简介
“大数据”是一个体量特别大,数据类别特别庞杂的数据集合,并且这样的数据集无法用传统数据库工具或常规软件工具抓取、管理和处理其内容。大数据技术是指从各种各样类型的庞杂数据中,快速的获取有价值的信息的能力。适用于大数据的技术包括大规模并行处理数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台和可扩展的存储系统。
Apache的Hadoop项目是可靠的、可扩展的、开源的、分布式计算软件。Apache的Hadoop软件库是允许通过相对简单的程序模型构建计算集群为庞大的数据集进行分布式计算的框架。
Hadoop的设计思想可以将计算模式从单节点服务器扩展为数以千计的计算集群,每一个单独的服务器都提供自主的本地计算及存储能力。
对于高可用指标而言,Hadoop软件库自身可以通过检测和故障调试从应用层来实现高可用而不需要关心硬件底层的高可用性。所以提供一个计算集群上层的高可用服务对于集群故障修复而言就显得至关重要。
1.2 WDP数据处理平台简介
WDP数据处理平台是基于集群管理进行二次开发的Hadoop分布式集群配置管理工具,该平台通过安装向导来进行集群的搭建,简化了集群供应。同时,他还有一个监控组件,叫做WDP-Metrics,可以提前配置好关键的运维指标(metrics),然后收集集群的中服务、主机等运行状态等信息,通过WEB的方式显示出来。我们可以直接查看Hadoop Core(HDFS和MapReduce)及相关项目(如HBase、Hive和HCatalog)是否健康。它的用户界面非常直观,用户可以轻松有效地查看信息并控制集群。
WDP数据处理平台支持作业与任务执行的可视化与分析,能够更好地查看依赖和性能。通过一个完整的RESTful API把监控信息暴露出来,集成了现有的运维工具。平台使用Ganglia收集度量指标,用Nagios支持系统报警。
其中集群管理是一个分布式架构的软件,主要由两部分组成:集群管理 Server 和 集群管理 Agent,如图1-1所示。集群管理 Server 会读取 Stack 和 Service 的配置文件。当用 集群管理 创建集群的时候,集群管理 Server 传送 Stack 和 Service 的配置文件以及 Service 生命周期的控制脚本到 集群管理 Agent。Agent 拿到配置文件后,会下载安装公共源里软件包(Redhat,就是使用 yum 服务)。安装完成后,集群管理 Server 会通知 Agent 去启动 Service。之后 集群管理 Server 会定期发送命令到 Agent 检查 Service 的状态,Agent 上报给 Server,并呈现在 集群管理 的 GUI 上,方便用户了解到集群的各种状态,并进行相应的维护。
2 启动集群管理-server服务
# WDP集群管理-server start
登陆界面http://192.9.200.211:8080/
登录用户名密码为admin:admin
3 配置集群管理-agent
# master & slaver1
# yum -y install 集群管理-agent
# vi /etc/集群管理-agent/conf/集群管理-agent.ini
[server]
hostname= master
# 集群管理-agent restart
# tail -f /var/log/集群管理-agent/集群管理-agent.log
INFO 2017-01-12 09:44:20,919 Controller.py:265 - Heartbeat response received (id = 1340)
INFO 2017-01-12 09:44:30,820 Heartbeat.py:78 - Building Heartbeat: {responseId = 1340, timestamp = 1484214270820, commandsInProgress = False, componentsMapped = True}
4 部署管理Hadoop集群
4.1 部署Hadoop集群
登陆界面http://{IP Address}:8080/,用户名密码为admin:admin。接下来就可以启动安装向导,创建集群,安装服务。
关于WDP-BigData 的软件包进行了分开打包。
WDP-BigData-v2.0.2-BASE.iso软件包包含HDFS、MapReduce2、YARN、Tez、Hive、HBase、Pig、Sqoop、Zookeeper、Storm、Flume、集群管理 Metrics、Kerberos、Mahou、Spark等服务组件。
WDP-BigData-v2.0.2-EXT.iso软件包包含了accumulo、atlas、falcon、kafka、knox、oozie、ranger、slider等服务组件。这里如果需要这些服务组件,则需要添加一个yum配置文件,如下:
# vi HDP-EXTEND.repo
[HDP-2.4-EXTEND]
name=HDP-2.4-EXTEND
baseurl=http://master/HDP-2.4-EXTEND
enabled=1
gpgcheck=0
这里要设置Grafana Admin的密码。
部署成功后,便可成功进入界面。在主界面中,可以查看集群状态监控信息。
在HadoopMaster的终端执行jps命令,在打印结果中会看到master上运行的进程,这些进程表示主节点进程启动成功。
在HadoopSlave 的终端执行jps命令,也会看到相应的进程:
Slaver1:
4.2 HDFS运维管理
4.2.1 HDFS命令手册
概述
切换到hdfs用户,可以通过“hadoop fs -”命令来查看HDFS文件系统的帮助命令,通过提示的命令来对文件系统进行管理。
命令如下:
$ hadoop fs -
执行结果如下:
所有的hadoop命令均由bin/hadoop脚本引发。不指定参数运行hadoop脚本会打印所有命令的描述。
用法:hadoop [--config confdir] [COMMAND] [GENERIC_OPTIONS] [COMMAND_OPTIONS]
Hadoop有一个选项解析框架用于解析一般的选项和运行类。
命令选项 |
描述 |
--config confdir |
覆盖缺省配置目录。缺省是${HADOOP_HOME}/conf |
GENERIC_OPTIONS |
多个命令都支持的通用选项 |
COMMAND 命令选项S |
各种各样的命令和它们的选项会在下面提到。这些命令被分为 用户命令 管理命令两组。 |
权限管理
在Hadoop集群中,只有hdfs用户才有对HDFS文件系统的管理权限,当其它用户对文件系统进行操作,需要给其赋予相应的权限,这里为了方便操作,将所有用户的读写执行权限全部放开,命令如下:
# su hdfs
$ hadoop fs -chmod -R 777 /
常规选项
下面的选项被 dfsadmin, fs, fsck和 job支持。 应用程序要实现 Tool来支持常规选项。
GENERIC_OPTION |
描述 |
-conf <configuration file> |
指定应用程序的配置文件。 |
-D <property=value> |
为指定property指定值value。 |
-fs <local|namenode:port> |
指定namenode。 |
-jt <local|jobtracker:port> |
指定job tracker。只适用于job。 |
-files <逗号分隔的文件列表> |
指定要拷贝到map reduce集群的文件的逗号分隔的列表。 只适用于job。 |
-libjars <逗号分隔的jar列表> |
指定要包含到classpath中的jar文件的逗号分隔的列表。 只适用于job。 |
-archives <逗号分隔的archive列表> |
指定要被解压到计算节点上的档案文件的逗号分割的列表。 只适用于job。 |
用户命令
hadoop集群用户的常用命令。
archive
创建一个hadoop档案文件。参考 Hadoop Archives.
用法:hadoop archive -archiveName NAME -p <parent path> <src>* <dest>
命令选项 |
描述 |
-archiveName NAME |
要创建的档案的名字。 |
-p <parent path> |
父路径,格式与正则表达式一致。 |
src |
父路径下面需要创建档案的文件名(可多个) |
dest |
保存档案文件的目标目录。 |
distcp
递归地拷贝文件或目录。参考DistCp指南以获取等多信息。
用法:hadoop distcp <srcurl> <desturl>
命令选项 |
描述 |
srcurl |
源Url |
desturl |
目的Url |
fs
用法:hadoop fs [GENERIC_OPTIONS] [COMMAND_OPTIONS]
运行一个常规的文件系统客户端。
fsck
运行HDFS文件系统检查工具。参考Fsck了解更多。
用法:hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]
命令选项 |
描述 |
<path> |
检查的起始目录。 |
-move |
移动受损文件到/lost+found |
-delete |
删除受损文件。 |
-openforwrite |
打印出写打开的文件。 |
-files |
打印出正被检查的文件。 |
-blocks |
打印出块信息报告。 |
-locations |
打印出每个块的位置信息。 |
-racks |
打印出data-node的网络拓扑结构。 |
jar
运行jar文件。用户可以把他们的Map Reduce代码捆绑到jar文件中,使用这个命令执行。
用法:hadoop jar <jar> [mainClass] args...
job
用于和Map Reduce作业交互和命令。
用法:hadoop job [GENERIC_OPTIONS] [-submit <job-file>] | [-status <job-id>] | [-counter <job-id> <group-name> <counter-name>] | [-kill <job-id>] | [-events <job-id> <from-event-#> <#-of-events>] | [-history [all] <jobOutputDir>] | [-list [all]] | [-kill-task <task-id>] | [-fail-task <task-id>]
命令选项 |
描述 |
-submit <job-file> |
提交作业 |
-status <job-id> |
打印map和reduce完成百分比和所有计数器。 |
-counter <job-id> <group-name> <counter-name> |
打印计数器的值。 |
-kill <job-id> |
杀死指定作业。 |
-events <job-id> <from-event-#> <#-of-events> |
打印给定范围内jobtracker接收到的事件细节。 |
-history [all] <jobOutputDir> |
-history <jobOutputDir> 打印作业的细节、失败及被杀死原因的细节。更多的关于一个作业的细节比如成功的任务,做过的任务尝试等信息可以通过指定[all]选项查看。 |
-list [all] |
-list all显示所有作业。-list只显示将要完成的作业。 |
-kill-task <task-id> |
杀死任务。被杀死的任务不会不利于失败尝试。 |
-fail-task <task-id> |
使任务失败。被失败的任务会对失败尝试不利。 |
pipes
运行pipes作业。
用法:hadoop pipes [-conf <path>] [-jobconf <key=value>, <key=value>, ...] [-input <path>] [-output <path>] [-jar <jar file>] [-inputformat <class>] [-map <class>] [-partitioner <class>] [-reduce <class>] [-writer <class>] [-program <executable>] [-reduces <num>]
命令选项 |
描述 |
-conf <path> |
作业的配置 |
-jobconf <key=value>, <key=value>, ... |
增加/覆盖作业的配置项 |
-input <path> |
输入目录 |
-output <path> |
输出目录 |
-jar <jar file> |
Jar文件名 |
-inputformat <class> |
InputFormat类 |
-map <class> |
Java Map类 |
-partitioner <class> |
Java Partitioner |
-reduce <class> |
Java Reduce类 |
-writer <class> |
Java RecordWriter |
-program <executable> |
可执行程序的URI |
-reduces <num> |
reduce个数 |
version
打印版本信息。
用法:hadoop version
CLASSNAME
hadoop脚本可用于调调用任何类。
用法:hadoop CLASSNAME
运行名字为CLASSNAME的类。
管理命令
hadoop集群管理员常用的命令。
balancer
运行集群平衡工具。管理员可以简单的按Ctrl-C来停止平衡过程。参考Rebalancer了解更多。
用法:hadoop balancer [-threshold <threshold>]
命令选项 |
描述 |
-threshold <threshold> |
磁盘容量的百分比。这会覆盖缺省的阀值。 |
daemonlog
获取或设置每个守护进程的日志级别。
用法:hadoop daemonlog -getlevel <host:port> <classname>
用法:hadoop daemonlog -setlevel <host:port> <classname> <level>
命令选项 |
描述 |
-getlevel <host:port> <classname> |
打印运行在<host:port>的守护进程的日志级别。这个命令内部会连接http://<host:port>/logLevel?log=<name> |
-setlevel <host:port> <classname> <level> |
设置运行在<host:port>的守护进程的日志级别。这个命令内部会连接http://<host:port>/logLevel?log=<name> |
datanode
运行一个HDFS的datanode。
用法:hadoop datanode [-rollback]
命令选项 |
描述 |
-report |
报告文件系统的基本信息和统计信息。 |
-safemode enter | leave | get | wait |
安全模式维护命令。安全模式是Namenode的一个状态,这种状态下,Namenode 1. 不接受对名字空间的更改(只读) 2. 不复制或删除块 Namenode会在启动时自动进入安全模式,当配置的块最小百分比数满足最小的副本数条件时,会自动离开安全模式。安全模式可以手动进入,但是这样的话也必须手动关闭安全模式。 |
-refreshNodes |
重新读取hosts和exclude文件,更新允许连到Namenode的或那些需要退出或入编的Datanode的集合。 |
-finalizeUpgrade |
终结HDFS的升级操作。Datanode删除前一个版本的工作目录,之后Namenode也这样做。这个操作完结整个升级过程。 |
-upgradeProgress status | details | force |
请求当前系统的升级状态,状态的细节,或者强制升级操作进行。 |
-metasave filename |
保存Namenode的主要数据结构到hadoop.log.dir属性指定的目录下的<filename>文件。对于下面的每一项,<filename>中都会一行内容与之对应 1. Namenode收到的Datanode的心跳信号 2. 等待被复制的块 3. 正在被复制的块 4. 等待被删除的块 |
-setQuota <quota> <dirname>...<dirname> |
为每个目录 <dirname>设定配额<quota>。目录配额是一个长整型整数,强制限定了目录树下的名字个数。 命令会在这个目录上工作良好,以下情况会报错: 1. N不是一个正整数,或者 2. 用户不是管理员,或者 3. 这个目录不存在或是文件,或者 4. 目录会马上超出新设定的配额。 |
-clrQuota <dirname>...<dirname> |
为每一个目录<dirname>清除配额设定。 命令会在这个目录上工作良好,以下情况会报错: 1. 这个目录不存在或是文件,或者 2. 用户不是管理员。 如果目录原来没有配额不会报错。 |
-help [cmd] |
显示给定命令的帮助信息,如果没有给定命令,则显示所有命令的帮助信息。 |
secondarynamenode
运行HDFS的secondary namenode。
用法:hadoop secondarynamenode [-checkpoint [force]] | [-geteditsize]
命令选项 |
描述 |
-checkpoint [force] |
如果EditLog的大小 >= fs.checkpoint.size,启动Secondary namenode的检查点过程。 如果使用了-force,将不考虑EditLog的大小。 |
-geteditsize |
打印EditLog大小。 |
4.2.2 进程管理
查看当前系统中启动的进程
命令如下:
# jps
执行结果如下:
重启NameNode和DateNode进程
hadoop-daemon.sh脚本是启动和停止hadoop后台程序,“—config”参数指定启动程序时用到的配置文件目录。
命令如下:
# /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/conf stop {namenode/datenode}
# /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/conf start {namenode/datenode}
4.2.3 可靠性管理
Hadoop集群中的主机在某些情况下会出现宕机或者系统损坏的问题,一旦遇到这些问题,HDFS文件系统中的数据文件难免会产生损坏或者丢失,为了保证HDFS文件系统的可靠性,可以采取以下策略:
冗余副本策略
更改集群冗余副本的复制因子为5,从而避免某台节点主机损坏导致数据丢失的情况,这里我们有两种方式来设置复制因子。
第一种是通过WEB界面,进入到HDFS配置中修改Block replication的参数值。
第二种方式是在Shell命令行模式下,修改hdfs-site.xml配置文件,将“dfs.replication”的值设置为5,然后重启NameNode和DataNode进程。
# vi /etc/hadoop/2.3.6.0-3796/0/hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>5</value>
</property>
安全模式
当在进行系统维护或者集群维护时,不希望用户进行再去操作HDFS文件系统中文件,这时候需要手动将NameNode设置成安全模式的状态。该操作需要HDFS管理用户来进行实现,即hdfs用户。
命令如下:
$ hadoop dfsadmin -safemode enter
$ hadoop dfsadmin -safemode get
执行结果如下:
Safe mode is ON
回收站
设置HDFS文件系统回收站中的文件彻底删除的时间间隔为7天。进入到HDFS配置中修改“fs.trash.interval”的值为10080(分钟)。注:当该值为0时,表示禁用回收站的功能。
快照管理
为HDFS文件系统中“/1daoyun”目录创建快照,首先需要设置该目录可进行快照功能,然后再进行创建快照。
创建完成后,创建一个恢复文件夹,通过cp命令可以恢复快照,如下:
4.3 MapReduce
4.3.1 运行案例
进入/usr/hdp/2.4.3.0-227/hadoop-mapreduce/目录中,存在一个hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar 的案例JAR包,其所自带的案例如下:
这里,我们以运行一个圆周率的计算为例:
# cd /usr/hdp/2.4.3.0-227/hadoop-mapreduce/
# hadoop jar hadoop-mapreduce-examples-2.7.1.2.4.3.0-227.jar pi 5 5
5 部署Hive数据仓库
5.1 部署Hive
进入WDP数据处理平台主界面,点击左侧的动作按钮,添加Hive服务。
1.1 Hive用户指南
5.1.1 测试验证
启动hive客户端
# su hive
$ hive
$ logout
退出hive用户
5.1.2 hive 命令参数
usage: hive
上一篇:
O2O公司常规架构部署
下一篇:
解决O2O“最后一公里”难题的五种方法