大数据分析olap (大数据hadoop分布式搭建)

看过我文章的都知道,在OLAP方案上,我选择使用Impala,Kudu 来实现在线联机分析。

通常使用CDH版进行部署,但出于cloudera Manager几乎是黑盒,生产上使用我们采用独立人工部署。

大数据olap,大数据hadoop安装过程

下面是部署步骤:

Kudu

使用 yum 安装 cdh 版 kudu

每一台机器进行相同操作的安装,安装后根据集群规划进行相应的配置和服务启动。

和 Impala 安装一样,编写好 cdh6 的 repo,直接使用 yum 安装【或者直接*载下** rpm 包,再使用 sudo yum localinstall

是一样的】。

sudo touch /etc/yum.repos.d/cloudera-cdh6.repo 
sudo vi /etc/yum.repos.d/cloudera-cdh6.repo 
[cloudera-cdh6] 
name=Cloudera's Distribution for Hadoop, Version 6.3.0 
baseurl=https://archive.cloudera.com/cdh6/6.3.0/redhat7/yum/ 
gpgkey=https://archive.cloudera.com/cdh6/6.3.0/redhat7/yum/RPM-GPG-KEY-cloudera 
gpgcheck=1 
sudo yum install -y kudu 

【可以探索 Apache kudu 源码编译安装】

配置/etc/kudu/conf/master.gflagfile

--master_addresses=slave3:7051,slave2:7051,slave1:7051 
--rpc_bind_addresses=slave3:7051 
--log_dir=/sumpay/kudu/master/logs 
--log_filename=kudumaster 
--fs_wal_dir=/sumpay/kudu/master/wal 
--fs_data_dirs=/sumpay/kudu/master/data 
--fs_metadata_dir=/sumpay/kudu/master/metadata 
--enable_process_lifetime_heap_profiling=true 
--heap_profile_path=/sumpay/kudu/master/heap 
--rpc-encryption=disabled 
--rpc_authentication=disabled 
--unlock_unsafe_flags=true 
--allow_unsafe_replication_factor=true 
--default_num_replicas=3 
--max_clock_sync_error_usec=10000000 
--consensus_rpc_timeout_ms=30000 
--follower_unavailable_considered_failed_sec=300 
--leader_failure_max_missed_heartbeat_periods=3 
--tserver_unresponsive_timeout_ms=60000 
--rpc_num_service_threads=10 
--max_negotiation_threads=50 
--min_negotiation_threads=10 
--rpc_negotiation_timeout_ms=300000配置/etc/kudu/conf/tserver.gflagfile 
--tserver_master_addrs=slave3:7051,slave2:7051,slave1:7051 
--log_dir=/sumpay/kudu/tserver/logs 
--log_filename=kudutserver 
--fs_wal_dir=/sumpay/kudu/tserver/wal 
--fs_data_dirs=/sumpay/kudu/tserver/data 
--fs_metadata_dir=/sumpay/kudu/tserver/metadata 
--enable_process_lifetime_heap_profiling=true 
--heap_profile_path=/sumpay/kudu/tserver/heap 
--rpc-encryption=disabled 
--rpc_authentication=disabled 
--unlock_unsafe_flags=true 
--allow_unsafe_replication_factor=true 
--max_log_size=2048 
--default_num_replicas=3 
--max_clock_sync_error_usec=10000000 
--consensus_rpc_timeout_ms=30000 
--follower_unavailable_considered_failed_sec=300 
--leader_failure_max_missed_heartbeat_periods=3 
--tserver_unresponsive_timeout_ms=60000 
--rpc_num_service_threads=10 
--max_negotiation_threads=50 
--min_negotiation_threads=10 
--rpc_negotiation_timeout_ms=3000 
--rpc_default_keepalive_time_ms=65000 
--rpc_num_acceptors_per_address=5 
--master_ts_rpc_timeout_ms=60000 
--remember_clients_ttl_ms=3600000 
--remember_responses_ttl_ms=600000 
--rpc_service_queue_length=1000 
--raft_heartbeat_interval_ms=60000 
--heartbeat_interval_ms=60000 
--heartbeat_max_failures_before_backoff=3目录创建和权限 
sudo mkdir 一一创建配置文件里的数据目录,以生产环境实际目录规划为准。 
sudo chown -R kudu:kudu /sumpay/kudu 

环境变量和启动停止

默认会创建 service,通过 service 来启动、停止、重启。

/usr/lib/systemd/system/kudu-master.service 
/usr/lib/systemd/system/kudu-tserver.service 

环境以及用户均在 service 文件里面,如:

[Service] 
Environment=KUDU_HOME=/usr/lib/kudu 
ExecStart=/usr/lib/kudu/sbin/kudu-master --flagfile=/etc/kudu/conf/master.gflagfile 
TimeoutStopSec=5 
Restart=on-failure 
User=kudu 
sudo service kudu-master start stop restart 
sudo service kudu-tserver start stop restart 

默认配置文件的目录在:/etc/kudu/conf

配置说明

最简配置只要配置如:master_addresses、tserver_master_addrs

再加上数据目录就行,其他配置使用默认值,但是最好根据实际集群情况以及数据规模进行配置。

界面查看

http://192.168.**.**:8051/masters

例如安装 3 台 master。Master、Tablet Servers 和 Table 等均可在 Web 界面上查看。Impala

使用 yum 安装 cdh 版 impala

会用到/etc/yum.repos.d/cloudera-cdh6.repo。

如果是集群安装,其中一个节点安装以下全部,其余节点安装 impala-server。

sudo yum install -y impala 
sudo yum install -y impala-server 
sudo yum install -y impala-state-store 
sudo yum install -y impala-catalog 
sudo yum install -y impala-shell 

安装 impala 后会把 https://archive.cloudera.com/cdh6/6.3.0/redhat7/yum/RPMS/x86_64/下的所有 rpm 都安装一遍,

需要注意相关 bin/下命令是否与 tarball 安装后的命令相冲突。

cdh 默认配置文件在/etc/default/下面。自定义配置文件在 /etc/impala/conf 下面。

配置文件/etc/default/impala

IMPALA_CATALOG_SERVICE_HOST=slave3 
IMPALA_STATE_STORE_HOST=slave3 
IMPALA_STATE_STORE_PORT=24000 
IMPALA_BACKEND_PORT=22000 
IMPALA_LOG_DIR=/sumpay/cdh-impala/logs 
IMPALA_CATALOG_ARGS=" -log_dir=${IMPALA_LOG_DIR} " 
IMPALA_STATE_STORE_ARGS=" -log_dir=${IMPALA_LOG_DIR} -state_store_port=${IMPALA_STATE_STORE_PORT}" 
IMPALA_SERVER_ARGS=" \ 
-log_dir=${IMPALA_LOG_DIR} \ 
-catalog_service_host=${IMPALA_CATALOG_SERVICE_HOST} \ 
-state_store_port=${IMPALA_STATE_STORE_PORT} \ 
-use_statestore \ 
-state_store_host=${IMPALA_STATE_STORE_HOST} \ 
-be_port=${IMPALA_BACKEND_PORT} \ 
-kudu_master_hosts=slave1:7051,slave2:7051,slave3:7051" 
ENABLE_CORE_DUMPS=true 
LIBHDFS_OPTS=-Djava.library.path=/usr/lib/impala/lib 
MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar 
IMPALA_BIN=/usr/lib/impala/sbin 
IMPALA_HOME=/usr/lib/impala 
# HIVE_HOME=/usr/lib/hive 
# HBASE_HOME=/usr/lib/hbase 
IMPALA_CONF_DIR=/etc/impala/conf 
HADOOP_CONF_DIR=/etc/impala/conf 
HIVE_CONF_DIR=/etc/impala/conf 
# HBASE_CONF_DIR=/etc/impala/conf拷贝 hdfs 和 hive 的配置文件 
sudo cp /home/admin/hadoop-2.8.5/etc/hadoop/hdfs-site.xml /etc/impala/conf 
sudo cp /home/admin/hadoop-2.8.5/etc/hadoop/core-site.xml /etc/impala/conf 
scp hive-site.xml slave3:/home/admin/ 
sudo mv ~/hive-site.xml /etc/impala/conf 
ls /etc/impala/conf 
core-site.xml hdfs-site.xml hive-site.xml 

目录创建和权限

mkdir /sumpay/cdh-impala 
mkdir /sumpay/cdh-impala/logs 
sudo chown -R impala:impala /sumpay/cdh-impala 

环境变量和启动停止

安装后会默认创建 service 服务启动文件,位置在/etc/init.d

impala-catalog impala-server impala-state-store

bin 可以在/usr/bin/下找到,已经在默认的环境变量里了。kudu 也是。

impalad impala-shell 
kudu-master kudu-tserver 是在/usr/sbin 下面。 
sudo service impala-state-store start status stop restart 
sudo service impala-catalog start status stop restart 
sudo service impala-server start status stop restart 

配置说明及与 Kudu 整合

配置文件位置:/etc/default 文件名:impala

配置文件中 IMPALA_SERVER_ARGS 的部分,后面的-kudu_master_hosts=slave1:7051,slave2:7051,slave3:7051 是与 Kudu

整合,如果不在这里配置 kudu master,在 impala 创建 kudu 表的时候再指定,也是可以的。

界面查看

impalad http://192.168.**.**:25000/

statestored http://192.168.**.**:25010/

catalogd http://192.168.**.**:25020/