HDB IN ACTION(1)

一、SQL on Hadoop
我们需要知道业界很多产品如hive、Presto、Drill、SparkSQL、Impala等均在发力sql on hadoop,如果谈及这个话题,需要很多的篇幅,
我们这里只需要知道hawq是开源的一款sql on hadop的产品,具体它的优势,请另行查询,熟悉greenplum的用户应该知道mpp数据库的强劲性能
而hawq2.0是将mpp和hadoop结合后的产品。

二、几个概念
1.hawq和hdb
hawq是pivotal公司将产品共性给apache基金会的开源名称
hdb是pivotal公司的sql on hadoop的产品名称,二者内核是一致的,只是一个开源一个商用,当然我个人认为商用版本更完善。

2.hdb和hdp
大家千万不要混淆这两个名称,hdp是HORTONW0RKS DATA PLATFORM的简称,是HORTONW0RKS公司的hadoop产品,与其同名的还有CDH,其是Cloudera公司的hadoop产品。

3.Ambari
Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件, 包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。
Ambari host对内存和硬盘有一定要求,50hosts以内,内存不小于2GB,硬盘不小于50GB.500hosts以内内存8GB,硬盘200GB,一般都能满足要求。

三、安装选择
1.hadoop版本选择
hawq安装需要hadoop2.5以上,如果低于版本要求,可以安装上,创建库和表都可以但是无法插入数据,我第一次尝试就是在hadoop2.2的开源
版本安装的,安装后能启动,能创建数据库、能建表,但是就是不能插入数据。后面的例子用的版本是hadoop2.6.5的开源版本安装的,具体
hadoop的安装过程,可参照之前的2.2版本安装或者自行查询教程。

2.ambari版本和jdk版本要求
这一点是很多安装教程中没有真正提及的,会误导很多用户,如果你的jdk版本不能修改,那你必须再次基础上进行选择,比如我测试环境的
jdk版本就是1.6.0.45那就不能使用ambari安装。

参看hdb的安装教程:http://hdb.docs.pivotal.io/220/hdb/releasenotes/HAWQ220ReleaseNotes.html
hdb2.2需要ambari2.4.2,但是ambari1.5.1就已经不支持java6了,因此采用jdk6就不能用ambari。

3.centos 6还是7决定你装hawq还是hdb
虽然centos6是可以安装hawq的,但是坑太多了,因为hawq2.0以后尤其2.2是根据最新的系统版本进行测试编译的,用老的6的版本进行编译,需要更新的组件太多,而且相互间的关联会让人混乱,我尝试了几次在centos6.6上的源码安装hawq2.2基本都快到最后几步了,但是还是没成功,推荐对linux组件很熟悉的朋友尝试,一般用户推荐使用商用版本的hdb,你不要觉得hdb安装简单,在安装过程中,自己的知识积累通过排错提升了很多,后面我会放上源码编译hawq的内容。

四、安装环境
采用之前的4台虚拟机安装(c9test91—94),系统版本Centos6.6 内存8GB ,hadoop版本为2.6.5官方release版本。
如果不单独说明,后续的操作均在所有机器上执行

1.hadoop环境介绍

主机安装软件进程
c9test91jdk hadoop zkNameNode、DFSZKFailoverController、JournalNode、QuorumPeerMain
c9test92jdk hadoop zkNameNode、DFSZKFailoverController、JournalNode、QuorumPeerMain
c9test93jdk hadoop zkDataNode、NodeManager、JournalNode、QuorumPeerMain 、ResourceManager
c9test94jdk hadoopDataNode、NodeManager

2.文件描述符

#ulimit -Sn 和ulimit -Hn,如果小于10000,使用下面命令更新所有主机:
ulimit -n 10000 

3.禁用防火墙:

etc/init.d/iptables stop  
chkconfig iptables off 

4.禁用selinux:

vi /etc/selinux/config
SELINUX=disabled#输入 setenforce 0 让配置生效

5.主机名设置

vi /etc/hosts192.168.209.91 c9test91192.168.209.91 c9test92192.168.209.91 c9test93192.168.209.91 c9test94#需要注意的是:hostname执行结果要和上面配置的主机名一致,否则修改/etc/sysconfig/network

6.NTP
确保各个主机时间一致,采用crontab更新,更新系统和硬件,注意这里采用的不是安装ntp server的方式而是定时同步

* */2 * * * /usr/sbin/ntpdate asia.pool.ntp.org && /sbin/hwclock --systohc

7.用户各主机的免密码登陆
在安装hadoop的时候,已经设置过了root和hadoop账户的免密码登陆,这里需要增加gpadmin用户

groupadd -g 3030 gpadmin
useradd -u 3030 -g gpadmin -m -s /bin/bash gpadmin 
echo gpadmin | passwd  gpadmin --stdinsu - gpadmin #后面操作在gpadmin用户下操作#设置免密码登陆:
#(1)生成公钥和私钥,在所有机器执行
ssh-keygen -t rsa -P ''#(2)以下操作在c9test91上操作
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh gpadmin@c9test92 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh gpadmin@c9test93 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh gpadmin@c9test94 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keysscp ~/.ssh/authorized_keys gpadmin@c9test92:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys gpadmin@c9test93:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys gpadmin@c9test94:~/.ssh/authorized_keys#(3)如果个别机器不能生效,可以采用ssh-copy-id -i ~/.ssh/id_rsa.pub gpadmin@c9test92 
#此种方法是设置操作机器可以访问对方主机,需要在不同的双向间执行#(4)注意事项
#权限不对不生效chmod 600 ~/.ssh/authorized_keys所有机器执行

8.主机内存限制
(1)配置主机内存匹配OOM的时候进程被系统kill

vi /etc/sysctl.conf
kernel.threads-max=798720
vm.overcommit_memory=2   #通过此设置,OOM killer进程报告错误,而不是杀死正在运行的进程sysctl -p #附:检查配置命令:sysctl -a | grep overcommit_memory 

(2)vm.overcommit_ratio设定:
2GB-8GB内存:
交换空间=物理RAM
vm.overcommit_ratio=50
8GB和64GB之间内存:
交换空间= 0.5 *物理RAM
vm.overcommit_ratio=50
大于64GB:
交换空间= 4GB
vm.overcommit_ratio=100

  参数修改在/etc/sysctl.conf,修改后用sysctl -p生效检查命令:sysctl -a | grep overcommit_ratio
cat /proc/meminfo | grep Swap用yarn做资源管理器vi yarn-site.xml修改yarn.nodemanager.resource.memory-mb例子1:大型主机内存:256GB  SWAP:4GBNON_HAWQ_MEMORY设置:2GB给操作系统;2GB用于datanode2GB用于NodeManager1GB用于PXFovercommit_ratio_percentage:为1(100)则:TOTAL_MEMORY = 256GB * 1 + 4GB = 260GB使用yarn进行资源管理,需要设置yarn.nodemanager.resource.memory-mb为TOTAL_MEMORY - NON_HAWQ_MEMORY = 260GB - 7GB = 253例子2:中型主机内存:64GB  SWAP:32GBNON_HAWQ_MEMORY设置:2GB给操作系统;2GB用于datanode2GB用于NodeManager1GB用于PXFovercommit_ratio_percentage:为0.5(50)则:TOTAL_MEMORY = 64GB * 0.5 + 32GB = 64GB使用yarn进行资源管理,需要设置yarn.nodemanager.resource.memory-mb为TOTAL_MEMORY - NON_HAWQ_MEMORY = 64GB - 7GB = 57例子3:小型主机,测试用内存:8GB  SWAP:8GBNON_HAWQ_MEMORY设置:2GB给操作系统;2GB用于datanode2GB用于NodeManager1GB用于PXFovercommit_ratio_percentage:为0.5(50)则:TOTAL_MEMORY = 8GB * 0.5 + 8GB = 12GB使用yarn进行资源管理,需要设置yarn.nodemanager.resource.memory-mb为TOTAL_MEMORY - NON_HAWQ_MEMORY = 12GB - 7GB = 5

9.网络
生产推荐万兆,多网卡做网卡绑定
pxf插件需要使用tomcat,保留端口8005 8080 8009

10.hawq主机要求
hawq segment必须位于运行HDFS DataNode的主机上
master和standby位于不同主机

11.pxf主机要求
必须在HDFS NameNode 和所有HDFS DataNodes上安装PXF
如果已配置具有高可用性的Hadoop,则PXF也必须安装在所有HDFS节点上,包括所有NameNode服务
如果要使用带有HBase或Hive的PXF,必须先在要安装PXF的每台机器上安装HBase客户端(hbase-client)和/或Hive客户机(hive-client)
5432端口不能被占用

 注意: Ambari服务器节点使用PostgreSQL作为默认元数据库。 Hive Metastore使用MySQL作为默认元数据库

12.依赖包

    yum、rpm、scp、curl、unzip、tar、wget、OpenSSL (v1.01, build 16 or later)、Python 2.6.x、OpenJDK 7/8 64-bityum install httpd httpd -v :2.2.15#默认安装完web目录在/var/www/html#配置文件在/etc/httpd/conf/httpd.conf


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部