KUDU个人总结
介绍
HDFS和HBase是大数据最常用的两种存储方式,为什么使用kudu?
HDFS(使用列式存储格式Apache Parquet,Apache ORC,适合离线分析,不支持单条记录级别的update操作,随机读写性能差)。
HBase(可以进行高效随机读写,却并不适用于基于SQL的数据分析方向,大批量数据获取时的性能较差,
那为什么HBase不适合做分析呢?
因为分析需要批量获取数据,而HBase本身的设计并不适合批量获取数据
1)都说HBase是列式数据库,其实从底层存储的角度来说它并不是列式的,获取指定列数据时是会读到其他列数据的,相对而言Parquet格式针对分析场景就做了很多优化。
2)HBase是LSM-Tree架构的数据库,这导致了HBase读取数据路径比较长,从内存到磁盘,可能还需要读多个HFile文件做版本合并。)
Kudu(这个时候Kudu出现了,它是介于HDFS和HBase两者之间的一个东西,它不及HDFS批处理快,也不及HBase随机读写能力强,但是反过来它比HBase批处理快,适用于OLAP的分析场景,而且比HDFS随机读写能力强,适用于实时写入或者更新的场景,这就是它能解决的问题)。
多了不说少了不唠,介绍完那就开始安装把:
准备:
给一个网站
http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.15.1/RPMS/x86_64/
前提是看自己hadopp集群什么版本的,如果不同可能会有冲突。
进页面搜索kudu,会看到6个rpm包,全下载下来。
之后去liunx上执行以下命令,为啥?,官网上有(kudu.apache.org)
sudo yum install autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi
cyrus-sasl-plain flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel
krb5-server krb5-workstation libtool make openssl-devel patch
pkgconfig redhat-lsb-core rsync unzip vim-common which
都准备好,把6个包放到liunx上,cd到6个包的目录下,执行命令:
sudo rpm -ivh --nodeps *
(–nodeps:意思是安装的时候不看包与包之间有啥关联关系导致安装失败,忽略,给我直接安装)
我建了两个文件夹一个存放kudu元数据,一个表:
路径:
sudo mkdir -p /data/kudu/kudu_master_data
sudo mkdir -p /data/kudu/kudu_tserver_data
之后在建一个存放log日志的kudu目录
sudo mkdir -p /data/log/kudu
切记kudu默认需要kudu用户权限执行,所以创建完文件夹需要执行这个命令:
(首先切换到data目录下)
->sudo chown -R kudu:kudu *
这句话相当于把data下所创建的文件夹变成kudu用户权限。
之后修改kudu的配置文件:
->cd /etc/kudu/conf
->ls
第一个:
->sudo vi master.gflagfile
修改这俩地址为(上面创建的地址):
–fs_wal_dir=/data/kudu/kudu_master_data
–fs_data_dirs=/data/kudu/kudu_master_data
第二个:
->sudo vi tserver.gflagfile
修改这俩地址为(上面创建的地址):
–fs_wal_dir=/home/hadoop/data/kudu/kudu_tserver_data
–fs_data_dirs=/home/hadoop/data/kudu/kudu_tserver_data
–tserver_master_addrs=hadoop000:7051
kudu强烈要求时钟同步,要不启动会报错的!!!
检查一下:
->sudo ntpstat
synchronised to NTP server (122.117.253.246) at stratum 3
time correct to within 67 ms
polling server every 512 s
(显示这个就对了)
如果是unsynchronised…就不对了哟
检查一下ntp.conf
->sudo vi /etc/ntp.conf
核心的我贴在这,比对下
restrict 127.0.0.1
restrict default nomodify
restrict ::1
# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
interface listen 127.0.0.1
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 127.0.0.1
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
fudge 127.0.0.1 stratum 10
#broadcast 192.168.1.255 autokey # broadcast server
#broadcastclient # broadcast client
#broadcast 224.0.1.1 autokey # multicast server
#multicastclient 224.0.1.1 # multicast client
#manycastserver 239.255.254.254 # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
重启下服务:等几分钟再试下命令
->sudo ntpstat
如果还是不行,那就百度下吧
ok终于完了:启动把!!!
启动目录(这种配置目录和启动的目录是在安装的时候默认路径):
cd /etc/init.d
->sudo ./kudu-master start
Started Kudu Master Server (kudu-master): [ OK ]
->sudo ./kudu-tserver start
Started Kudu Tablet Server (kudu-tserver): [ OK ]
注意:进程jps看不出来的的,用:
ps -ef|grep kudu
开始访问页面吧:hadoop000:8050
(hadoop000是自己的用户名)
…over…
4293

被折叠的 条评论
为什么被折叠?



