hadoop11--resourcemanager的HA配置以及hive的基本概念和操作

hadoop概述

  1. HDFS 分布式文件系统 用于存储数据
  2. MapReduce 分布式计算框架 用于计算数据 只适合离线分析 只专注于任务的执行, 任务的调度交给YARN
  3. YARN 云操作系统 资源的调度可以运行MapReduce, spark, 扩展性更高一些
  4. zookeeper 协调集群之间的同步
    1. 节点类型 命名为znode 保存大小为1M
      1. 持久类型 客户端进行连接中断之后, znode节点不会删除
      2. 临时类型 客户端进行连接中断之后, 节点会被删除
    2. 投票机制—面试题
      1. 没有数据的情况:
        通过myid给自己投票, 根据myid的大小绝点票数, 谁的票最多, 谁就是leader, 半数以上的的节点运行成功之后, 才能提供服务
      2. 有数据的情况:
        根据xid数据的更新版本号为标准, 如果xid一样则判断myid的票数
    3. HA原理解答思路:
      1. 存在的服务: zookeeper, jnode, zkfc
      2. 什么是HA?
        两个节点:一个Active一个standby, 解决了namenode单点故障
        同步元数据:jnode节点同步edits编辑日志, 也要是一个集群, 安全性得到了保障, 一致性减弱了, 为了解决一致性的问题, 需要存在zookeeper,用来监控集群, 当某一个节点出现问题时, 找一个空闲节点来接替出现故障的节点
      3. 切换机制:
        首先要监控到namenode,当一个namanode出现故障的时候, 才能进行切换, 通过ZKFCRPC调用监控namenode, 一旦一个namenode出现故障, zookeeper就会通知另外一个namenode的zkfc的进程启动standby,kill掉active执行一个ssh进程调用.

ResourceManager HA

一、集群规划(3台)
PC01PC02PC03
NameNodeNameNode
ZKFCZKFC
 ResourceManagerResourceManager
DataNodeDataNodeDataNode
JournalNodeJournalNodeJournalNode
NodeManagerNodeManagerNodeManager
ZooKeeperZooKeeperZooKeeper
二、修改配置文件
=====yarn-site.xml
	<!--启用resourcemanager ha-->
	<property>
	   <name>yarn.resourcemanager.ha.enabled</name>
	   <value>true</value>
	</property>
		
	<property>
	   <name>yarn.resourcemanager.cluster-id</name>
	   <value>rmcluster</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.ha.rm-ids</name>
	   <value>rm1,rm2</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.hostname.rm1</name>
	   <value>hadoop.senior02</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.hostname.rm2</name>
	   <value>hadoop.senior03</value>
	</property>

	<!--指定zookeeper集群的地址--> 
	<property>
	   <name>yarn.resourcemanager.zk-address</name>  
	   <value>hh1:2181,hh2:2181,hh3:2181</value>
	</property>

	<!--启用自动恢复--> 
	<property>
	   <name>yarn.resourcemanager.recovery.enabled</name>
	   <value>true</value>
	</property>

	<!--指定resourcemanager的状态信息存储在zookeeper集群--> 
	<property>
	   <name>yarn.resourcemanager.store.class</name>
	   <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
	</property>
三、分发配置文件

将yarn-site.xml分发到其他两台

	scp etc/hadoop/yarn-site.xml hh2:/opt/modules/hadoop-2.5.0/etc/hadoop/

	scp etc/hadoop/yarn-site.xml hh3:/opt/modules/hadoop-2.5.0/etc/hadoop/
四、启动ResourceManagere

在PC2上:

	sbin/start-yarn.sh

在pc3上单独启动:

	sbin/yarn-daemon.sh start resourcemanager
五、查看状态及测试

查看状态

	bin/yarn rmadmin -getServiceState rm1      ##查看rm1的状态
	bin/yarn rmadmin -getServiceState rm2      ##查看rm2的状态

查看web界面

	hh2:8088
	hh3:8088

当PC02的ResourceManager是Active状态的时候,访问PC03的ResourceManager会自动跳转到PC02的web页面


	bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar pi 1 3	

【PC1】

	[hadoop@hadoop hadoop-2.5.0]$ jps
	12837 DataNode
	13199 DFSZKFailoverController
	13022 JournalNode
	13430 Jps
	9386 QuorumPeerMain
	13312 NodeManager
	12738 NameNod

【PC2】

	[hadoop@hadoop hadoop-2.5.0]$ jps
	9648 ResourceManager
	9260 NameNode
	9547 DFSZKFailoverController
	7184 QuorumPeerMain
	9422 JournalNode
	9329 DataNode
	10084 Jps
	9744 NodeManager

【PC3】

	[hadoop@hadoop hadoop-2.5.0]$ jps
	6815 ResourceManager
	6537 JournalNode
	5449 QuorumPeerMain
	6630 NodeManager
	6871 Jps
	6447 DataNode

Hive

Hive是什么?
  • 主要用于解决海量数据的日志分析, 是基于hadoop的数据仓库工具, 可以把结构化的数据映射成一张表, 通过MR模板在YARN上运行MapReduce的程序

  • 运行SQL语句, 称为HQL, 本质上把HQL语句转换为MapReduce程序运行

  • 数据库和数据仓库的区别:
    数据库直接存储数据, 而数据仓库不直接存储数据, 数据存储到HDFS 上

  • Hive的特点:
    优点: 简单, 容易上手, 维护方便, 学习容易
    缺点: 自动生成的MapReduce程序不够灵活, 智能, 效率方面不是很高

hive的安装部署
  1. 课程中会用到Apache和CDH两个版本
  2. 由于hive是依赖于hadoop的, 所以先把hadoop相关的服务启动
  3. 配置hive
    –>解压 tar -zxvf apache-hive-1.2.1-bin.tar.gz -C [一个安装目录]
    –>创建目录用于保存hive的所有数据, 便于管理
    	bin/hdfs dfs -mkdir       /tmp
    	bin/hdfs dfs -mkdir       /user/hive/warehouse
    
    –>修改权限
    	bin/hdfs dfs -chmod g+w   /tmp
    	bin/hdfs dfs -chmod g+w   /user/hive/warehouse
    
  4. hive在HDFS上的默认路径
       <property>
         <name>hive.metastore.warehouse.dir</name>
         <value>/user/hive/warehouse</value>
         <description>location of default database for the warehouse</description>
       </property>
    
  5. 修改hive-env.sh(改名)
    	# Set HADOOP_HOME to point to a specific hadoop install directory
    	HADOOP_HOME=/opt/moduels/hadoop-2.5.0
    	# Hive Configuration Directory can be controlled by:
    	export HIVE_CONF_DIR=/opt/moduels/hive-0.13.1-bin/conf
    
  6. 启动hive
    	${HIVE_HOME}/bin/hive
    

数据库操作

一 基本操作
  1. 查看数据库
	show databases;
  1. 创建数据库
	create database test;
  1. 使用数据库
	 use test;
  1. 查看数据库下所有的表
	show tables;
  1. 创建数据库表
	create table student (id int , name string);
  1. 查看表结构
	desc student;
  1. 增加数据
	insert into student values(20,"tom");
  1. 查询表中的数据
	select * from student;
二 本地数据导入到hive
  1. 在本地目录准备好需要导入的数据/data
  2. 创建指定分隔符的数据表
    create table student(id int , name string) row format delimited fields terminated by ‘\t’;
  3. 加载数据到数据表中load data local inpath ‘/data/student.txt’ into table student;
三 删除数据库
	drop database test;   //只能删除一个空的数据库
	
	drop database test cascade;//如果要删除的数据库不为空,里面存在数据表,则可以加上关键字cascade
四 删除表
  1. 先创建一个普通的表,指定文件的位置为一个存在数据的位置
	 create table student4(id int,name string) 
	 row format delimited fields terminated by '\t'
	 stored as textfile 
	 location '/user/hive/warehouse/student';
  1. 删除后对该表进行查询,发现也可以查询到数据
	drop table student4;
  1. 管理表和外部表
    • 管理表:对于表中的结构存在所属权, 对于创建一个普通的表来说, 默认就是管理表
    • 外部表:表中的结构不存在所属权, 因为创建的表为外表, 对数据没有所有的权限, 就相当于不完全拥有这份数据
  2. 创建外部表
	 create EXTERNAL table student4(id int,name string) 
	 row format delimited fields terminated by '\t'
	 stored as textfile 
	 location '/user/hive/warehouse/student';

通过这种方式创建外部表, 在删除的时候不会删除原来的数据.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值