--kudu控制台查看impala-shell创建的表
-----------------------------------------------------------------------------------------------------------------------------
Apache impala集成apache kudu
--环境准备
--服务器配置
ID IP_address Hostname Notes
1 192.168.21.241 apollo.dt.com 1.Hadoop Master 2.Spark Master 3.Kudu Master 4.Impala Master 5.JDK 6.Scala
2 192.168.21.242 artemis.dt.com 1.Hadoop Slave 2.Spark Slave 3.Kudu tserver 4.Impalad 5.JDK 6.Scala
3 192.168.21.243 uranus.dt.com 1.Hadoop Slave 2.Spark Slave 3.Kudu tserver 4.Impalad 5.JDK 6.Scala
--环境配置
-- impala 安装包下载
impala-kudu-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-debuginfo-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-state-store-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
impala-kudu-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm
------------------------------------------------------------------------------------------------------------------------
--配置本地yum源
mkdir /media/CentOS mount -t auto /dev/cdrom /media/CentOS
mount
cd /etc/yum.repos.d/ cp CentOS-Base.repo CentOS-Base.repo.bak
--修改CentOS-Base.repo的内容,注释文档中的所有mirrorlist属性,把baseurl属性打开注释,并设置baseurl的属性值为挂载点
vi /etc/yum.repos.d/CentOS-Base.repo
baseurl=file:///media/CentOS/
yum clean all
yum list
vi /etc/fstab
/dev/sr0 /media/CentOS iso9660 ro,relatime 0 0
------------------------------------------------------------------------------------------------------------------------
--下载安装依赖包
rpm -qa | grep cyrus-sasl-plain
rpm -qa | grep lsb
rpm -qa | grep ntp
yum -y install cyrus-sasl-plain lsb ntp
--安装impala
--安装 bigtop-utils (主从机都要安装)
rpm -ivh bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm
--从节点
mkdir -p /opt/software
--复制到从节点
scp bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm node2:/opt/software
scp bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm node3:/opt/software
--从节点
rpm -ivh bigtop-utils-0.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.30.el7.noarch.rpm
--安装 impala-kudu-2.7.0 (主从机都要安装)
--要加上选项--nodeps否则安装会因为缺少依赖包无法通过 rpm -ivh impala-kudu-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm --nodeps
scp impala-kudu-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node2:/opt/software
scp impala-kudu-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node3:/opt/software
--从节点
rpm -ivh impala-kudu-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm --nodeps
--安装 impala-kudu-catalog (主机安装)
rpm -ivh impala-kudu-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--scp impala-kudu-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node2:/opt/software
--scp impala-kudu-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node3:/opt/software
--从节点 安装多余了
--rpm -ivh impala-kudu-catalog-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--安装 impala-kudu-state (主机安装)
rpm -ivh impala-kudu-state-store-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--主机安装 impala-kudu-server (主从机都要安装)
rpm -ivh impala-kudu-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
scp impala-kudu-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node2:/opt/software
scp impala-kudu-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node3:/opt/software
--从节点
rpm -ivh impala-kudu-server-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--安装impala-kudu-shell (主从机都要安装)
rpm -ivh impala-kudu-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
scp impala-kudu-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node2:/opt/software
scp impala-kudu-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node3:/opt/software
--从节点
rpm -ivh impala-kudu-shell-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--安装 impala-kudu-udf-devel(主从机都要安装)
rpm -ivh impala-kudu-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
scp impala-kudu-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node2:/opt/software
scp impala-kudu-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm node3:/opt/software
--从节点
rpm -ivh impala-kudu-udf-devel-2.7.0+cdh5.9.0+0-1.cdh5.9.0.p0.11.el7.x86_64.rpm
--配置impala (主从机都要配置)
--配置 vim /etc/default/bigtop-utils里的JDK
--所有节点
vim /etc/default/bigtop-utils
# export JAVA_HOME export JAVA_HOME=/opt/java/jdk1.8.0_171
--配置vim /etc/default/impala (主从机都要配置)
--所有节点
vim /etc/default/impala
IMPALA_CATALOG_SERVICE_HOST=node1 IMPALA_STATE_STORE_HOST=node1
--配置三台机器时间同步(主从机都要配置)
--所有节点 systemctl restart ntpd systemctl enable ntpd
--把hadoop配置文件core-site.xml和hdfs-site.xml拷到/etc/impala/conf.dist/目录下并作如下改动
--拷贝core-site.xml和hdfs-site.xml (主从机都要配置)
--所有节点 cp $HADOOP_HOME/etc/hadoop/core-site.xml /etc/impala/conf.dist/ cp $HADOOP_HOME/etc/hadoop/hdfs-site.xml /etc/impala/conf.dist/
6.2.具体配置(在hadoop原有内容上增加以下内容,在configuration中嵌入以下property)
cd /etc/impala/conf.dist/
vi core-site.xml
<property> <name>dfs.client.read.shortcircuit</name> <value>true</value> </property> <property> <name>dfs.client.read.shortcircuit.skip.checksum</name> <value>false</value> </property> <property> <name>dfs.datanode.hdfs-blocks-metadata.enabled</name> <value>true</value> </property>
vi hdfs-site.xml
<!--impala configuration --> <property> <name>dfs.datanode.hdfs-blocks-metadata.enabled</name> <value>true</value> </property> <property> <name>dfs.block.local-path-access.user</name> <value>impala</value> </property> <property> <name>dfs.client.file-block-storage-locations.timeout.millis</name> <value>60000</value> </property>
--设置scoket path
在目录/var/run/目录下新建目录hadoop-hdfs (主从机都要配置)。
注意:该文件夹可能已经存在,应当确认用impala是否有权限进行读写。
如果已经存在,将用户impala加入该文件所属的组,并修改该文件组的权限即: chown -R 775 hadoop-hdfs/
--所有节点 cd /var/run/ mkdir hadoop-hdfs chown -R 775 hadoop-hdfs
--权限配置(所有机器都应当配置)
如果想要 impala 和 YARN 合作,需要把 impala 用户加入 hdfs 组,相关的可以了解的是Llama项目.
impala 在执行 DROP TABLE 操作时,需要把文件移到到 hdfs 的回收站,所以你需要创建一个 hdfs 的目录 /user/impala,并将其设置为impala 用户可写。同样的,impala 需要读取 hive 数据仓库下的数据,故需要把 impala 用户加入 hive 组。
--所有节点 usermod -G hdfs,hadoop impala groups impala
impala : impala hdfs hadoop
--Extension: 创建impala在hdfs上的目录并设置权限
hadoop fs -mkdir -p /user/impala
--警告如下:
18/05/09 21:26:54 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hadoop fs -chown impala /user/impala
--启动impala
--主机:node1
service impala-state-store restart --kudu_master_hosts=node1:7051
service impala-catalog restart --kudu_master_hosts=node1:7051
service impala-server restart --kudu_master_hosts=node1:7051
--从机:node2
service impala-server restart --kudu_master_hosts=node1:7051
--从机:node3
service impala-server restart --kudu_master_hosts=node1:7051
--登录impala-shell
impala-shell
--node1执行(按照mysql语法写impala-shell),修改后
CREATE TABLE dept ( id BIGINT, name STRING ) distribute by range(name) split rows((‘it‘),(‘op‘),(‘hr‘)) TBLPROPERTIES( ‘storage_handler‘ = ‘com.cloudera.kudu.hive.KuduStorageHandler‘, ‘kudu.table_name‘ = ‘dept‘, ‘kudu.master_addresses‘ = ‘node1:7051‘, ‘kudu.key_columns‘ = ‘id,name‘ );
--报错:
ERROR:
ImpalaRuntimeException: Error creating Kudu table
CAUSED BY: NonRecoverableException: RPC can not complete before timeout: KuduRpc(method=ListTables, tablet=null, attempt=25, DeadlineTracker(timeout=30000, elapsed=29214))
CAUSED BY: NoLeaderMasterFoundException: Master config (node1:7051) has no leader.. Exceptions received: org.kududb.client.RecoverableException: [Peer Kudu Master - node1:7051] Connection reset on [id: 0xf5a4934f]
CAUSED BY: RecoverableException: [Peer Kudu Master - node1:7051] Connection reset on [id: 0xf5a4934f]
--在kudu控制台查看impala-shell创建的表
有关更多的impala操作kudu的示例,后面会发文详细讲解!
hadoop2.8_hive_sqoop_spark_impala_cdh_centos7.3
原文:https://www.cnblogs.com/buffercache/p/14264938.html