CentOS 7 搭建 Impala 4.1.2 + Kudu 1.15.0 测试环境

news2024/11/15 4:52:57

安装依赖

这部分不过于详细介绍,如果有现成环境也可以直接拿来使用。

Java

下载 java 安装包,需要登录 oracle,请自行下载。

cd /mnt
tar zxvf jdk-8u202-linux-x64.tar.gz

配置环境变量到 /etc/bashrc,并执行 source /etc/bashrc。启动包含了 Hadoop、Hive 的环境变量。

export JAVA_HOME=/mnt/jdk1.8.0_202
export PATH=$JAVA_HOME/bin:HIVE_HOME/bin:HADOOP-HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME=/mnt/hadoop-3.3.2
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_NAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

Hadoop

下载 Hadoop 3.3.2

wget https://archive.apache.org/dist/hadoop/core/hadoop-3.3.2/hadoop-3.3.2.tar.gz
tar zxvf hadoop-3.3.2.tar.gz

配置本机免密

ssh-keygen -t rsa
cd ~/.ssh/
cat id_rsa.pub >> authorized_keys

修改配置文件

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.proxyuser.work.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.work.groups</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/mnt/hadoop-3.3.2/tmp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/mnt/hadoop-3.3.2/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/mnt/hadoop-3.3.2/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

格式化

/mnt/hadoop-3.3.2/bin/hdfs namenode -format

启动

/mnt/hadoop-3.3.2/sbin/start-dfs.sh

MySQL

通过 yum 安装 MySQL 8

yum install -y ca-certificates
wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
yum -y install mysql80-community-release-el7-2.noarch.rpm
yum -y install mysql-community-server --nogpgcheck
# 启动 mysql
systemctl start mysqld

修改密码

# 查看初始 mysql 密码
grep "password" /var/log/mysqld.log
# 登录 mysql 后修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'AAAaaa111~';
# 修改 mysql 密码策略和长度限制
set global validate_password.policy=0;
set global validate_password.length=4;

创建 Hive 所需数据库

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
DELETE FROM mysql.user WHERE user='';
flush privileges;
CREATE DATABASE hive charset=utf8;

Hive

下载 Hive 3.1.2

wget https://downloads.apache.org/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar zxvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin hive-3.1.2

修改配置文件

hive-site.xml

<configuration>
    <property>
        <name>hive.metastore.dml.events</name>
        <value>true</value>
    </property>  
    <property>
      <name>hive.exec.scratchdir</name>
      <value>/mnt/hive-3.1.2/scratchdir</value>
    </property>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/mnt/hive-3.1.2/warehouse</value>
    </property>
    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://localhost:9083</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.cj.jdbc.Driver</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;allowPublicKeyRetrieval=true&amp;serverTimezone=UTC</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
    </property>
    <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>AAAaaa111~</value>
    </property>
    <property>
      <name>hive.metastore.event.db.notification.api.auth</name>
      <value>false</value>
    </property> 
    <property>
      <name>hive.server2.active.passive.ha.enable</name>
      <value>true</value>
    </property>
</configuration>

初始化schema

/mnt/hive-3.1.2/bin/schematool -dbType mysql -initSchema

启动

/mnt/hive-3.1.2/bin/hive --service metastore

安装核心组件

Kudu

下载 Kudu 1.15.0

wget https://github.com/MartinWeindel/kudu-rpm/releases/download/v1.15.0-1/kudu-1.15.0-1.x86_64.rpm

安装 ntp 服务

yum install ntpd
systemctl start ntpd
systemctl enable ntpd

修改配置文件(也可不修改)

master.gflagfile

--log_dir=/mnt/kudu
--fs_wal_dir=/mnt/kudu/master
--fs_data_dirs=mnt/kudu/master

tserver.gflagfile

--tserver_master_addrs=127.0.0.1:7051

--log_dir=/mnt/kudu
--fs_wal_dir=/mnt/kudu/tserver
--fs_data_dirs=/mnt/kudu/tserver

启动

kudu-master --flagfile /etc/kudu/conf/master.gflagfile &
kudu-tserver --flagfile /etc/kudu/conf/tserver.gflagfile &

Impala

Impala 4.1.2 是通过源码编译的,编译时需要注意要添加 export USE_APACHE_HIVE=true,这样编译完才能兼容 Hive 3.1.2。否则会在创建库的时候报错:

ERROR: ImpalaRuntimeException: Error making 'createDatabase' RPC to Hive Metastore:
CAUSED BY: TApplicationException: Invalid method name: 'get_database_req'

编译完成后,自行打的 RPM 包进行安装。可以参考 impala-rpm 自行修改。

修改配置文件

创建 hive-site.xmlcore-site.xml 的软链到 /etc/impala/conf/ 路径下。

ln -s /mnt/hive-3.1.2/conf/hive-site.xml hive-site.xml
ln -s /mnt/hadoop-3.3.2/etc/hadoop/core-site.xml core-site.xml

impala-conf.xml

<configuration>
  <property>
    <name>catalog_service_enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>catalog_topic_mode</name>
    <value>minimal</value>
  </property>
  <property>
    <name>kudu_master_hosts</name>
    <value>localhost:7051</value>
  </property>
  <property>
    <name>default_storage_engine</name>
    <value>kudu</value>
  </property>
</configuration>

启动

impalad &
catalogd &
statestored &

验证

[root@bogon ~] impala-shell
Starting Impala Shell with no authentication using Python 2.7.5
Opened TCP connection to localhost.localdomain:21050
Connected to localhost.localdomain:21050
Server version: impalad version 4.1.2-RELEASE RELEASE (build 1d7b63102ebc8974e8133c964917ea8052148088)
***********************************************************************************
Welcome to the Impala shell.
(Impala Shell v4.1.2-RELEASE (1d7b631) built on Thu Jul  6 05:44:12 UTC 2023)

To see live updates on a query's progress, run 'set LIVE_SUMMARY=1;'.
***********************************************************************************
[localhost.localdomain:21050] default> CREATE TABLE test
                                     > (
                                     >   id BIGINT,
                                     >   name STRING,
                                     >   PRIMARY KEY(id)
                                     > )
                                     > PARTITION BY HASH PARTITIONS 16
                                     > STORED AS KUDU
                                     > TBLPROPERTIES (
                                     >   'kudu.master_addresses' = 'localhost:7051',
                                     >   'kudu.num_tablet_replicas' = '1'
                                     > );
+-------------------------+
| summary                 |
+-------------------------+
| Table has been created. |
+-------------------------+
Fetched 1 row(s) in 9.89s
[localhost.localdomain:21050] default> insert into test values (1, 'xiedeyantu');
Query: insert into test values (1, 'xiedeyantu')
Query submitted at: 2023-07-07 03:50:41 (Coordinator: http://bogon:25000)
Query progress can be monitored at: http://bogon:25000/query_plan?query_id=b94595ef56094a6e:05654dec00000000
Modified 1 row(s), 0 row error(s) in 0.22s
[localhost.localdomain:21050] default> select * from test;
Query: select * from test
Query submitted at: 2023-07-07 03:50:44 (Coordinator: http://bogon:25000)
Query progress can be monitored at: http://bogon:25000/query_plan?query_id=a74db79af051b646:81c486ed00000000
+----+------------+
| id | name       |
+----+------------+
| 1  | xiedeyantu |
+----+------------+
Fetched 1 row(s) in 0.15s

通过 Web 页面看一下 Kudu,地址为:http://127.0.0.1:8051。为了方便也可以使用 w3m 来进行访问:w3m http://127.0.0.1:8051

在这里插入图片描述

通过 Web 页面看一下 Impala,端口分别为:

组件名称Web端口
statestored25010
catalogd25020
impalad25000

打开:http://127.0.0.1:25020/catalog

在这里插入图片描述

打开:http://127.0.0.1:25000/backends

在这里插入图片描述

打开:http://127.0.0.1:25010/metrics

在这里插入图片描述

至此,所有的安装验证就完成了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/732242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于深度学习图像数据增广

数据增广方法在广义上可以按照产生新数据的方式分为数据变形和数据过采样。由于操作简单&#xff0c;同时数据量上的需求远比现在要低得多&#xff0c;早期对数据增广的应用多是数据变形类方法。对于图像数据&#xff0c;基本的图像变换操作都属于数据变形类增广方法&#xff0…

Jvm参数设置-JVM(八)

上篇文章说了逃逸分析和标量&#xff0c;代码实例解析了内存分配先从eden区域开始&#xff0c;当内存不足的时候&#xff0c;才会进入s0和s1&#xff0c;发生yangGC&#xff0c;之后大内存会放入old&#xff0c;因为我们昨天程序运行了一个45M的对象&#xff0c;于是小对象在ed…

详解------>数组笔试题(必备知识)

目录 本章将通过列题进一步了解sizeof 与strlen的区别&#xff0c;加强对数组的理解。 1&#xff1a;一维数组列题 2&#xff1a;字符数组列题 3&#xff1a;二维数组列题 首先在进行这些习题讲解之前我们需要知道的知识点 sizeof&#xff1a;是一个关键字&#xff0c;可以…

KMP--高效字符串匹配算法(Java)

KMP算法 KMP算法算法介绍代码演示: KMP算法 KMP算法是为了解决这一类问题,给定一个字符串str1,和一个字符串str2,如果str2属于str1d的字串,则返回字串第一个出现位置的下标,不存在返回-1. 注意: 子串是连续的. 举个例子 str1 “abc123abs” str1 长度假设m str2 “123”; str2…

pycharm汉化

安装pycharm 不多说了&#xff0c;直接下载安装即可 汉化 file -setting plugins 输入chinese进行搜索 点击 进行安装&#xff0c;等待安装完成 安装完成需要重启&#xff0c;点击重启&#xff0c;等待重启完成即可 出现上图&#xff0c;说明汉化成功了

【计算机视觉】YOLOv8的测试以及训练过程(含源代码)

文章目录 一、导读二、部署环境三、预测结果3.1 使用检测模型3.2 使用分割模型3.3 使用分类模型3.4 使用pose检测模型 四、COCO val 数据集4.1 在 COCO128 val 上验证 YOLOv8n4.2 在COCO128上训练YOLOv8n 五、自己训练5.1 训练检测模型5.2 训练分割模型5.3 训练分类模型5.4 训练…

Mybatis-xml和动态sql

xml映射方式 除了之前那种 select(语句) public void ...();通过注解定义sql语句&#xff0c;还可以通过xml的方式来定义sql语句 注意 在resource创建的是目录&#xff0c;要用斜线分隔 创建出文件后 先写约束 <?xml version"1.0" encoding"UTF-8"…

第4集丨JavaScript 使用原型(prototype)实现继承——最佳实战2

目录 一、临时构造器方式1.1 代码实现1.2 代码分析 二. 增加uber属性&#xff0c;用于子对象访问父对象2.1 实现分析2.2 代码实现 三. 将继承封装成extend()函数3.1 代码实现3.1.1 临时构造器实现extend()3.1.2 原型复制实现extend2() 3.2 代码测试3.2.1 测试extend()函数3.2.1…

uniapp打包嵌入app,物理返回键的问题

问题描述&#xff1a;将uniapp开发的应用打包成wgt包放入app后&#xff0c;发现手机自带的返回键的点击有问题&#xff0c;比如我从app原生提供的入口进入了uniapp的列表页&#xff0c;然后我又进入了详情页&#xff0c;这时候在详情页点击物理返回键的话&#xff0c;它直接就返…

C语言—最大公约数和最小公倍数

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《算法详解》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心…

过河卒

题目描述 棋盘上 A 点有一个过河卒&#xff0c;需要走到目标 B 点。卒行走的规则&#xff1a;可以向下、或者向右。同时在棋盘上 C 点有一个对方的马&#xff0c;该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。 棋盘用坐标表示&#xff…

云同步盘 vs 普通网盘:选择哪种更适合你?区别解析与选购指南!

云同步盘是一种基于云存储的在线服务&#xff0c;主要用于将本地文件存储到云端&#xff0c;并通过客户端软件实现文件的自动同步&#xff0c;从而保持本地和云端文件的同步更新。用户可以在任何设备上访问和共享这些文件。 云同步盘和普通云盘都是云存储服务&#xff0c;可以让…

Kubernetes CoreDNS

Kubernetes CoreDNS 1、DNS服务概述 coredns github 地址&#xff1a; https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.base service 发现是 k8s 中的一个重要机制&#xff0c;其基本功能为&#xff1a;在集群内通过服务名…

TL-ER2260T获取SSH密码并登录后台

TL-ER2260T获取SSH密码并登录后台 首先需要打开诊断模式 打开Ubuntu&#xff0c;通过如下指令计算SSH密码&#xff0c;XX-XX-XX-XX-XX-XX是MAC地址echo -n "XX-XX-XX-XX-XX-XX" | tr -d - | tr [a-z] [A-Z] | md5sum | cut -b 1-16SSH登录ssh -oKexAlgorithmsdiffie…

硬件打样和小批量生产

PCB 打样和小批量生产过程 包括PCB 定型、生产文件制作、元器件准备、装配图制作、贴片、全流程测试。 打样一般是 几块PCB 手工进行焊接。 其中生产文件根据加工厂 一般提供PCB或者Gerber。 元器件准备设计公司的物料管理&#xff0c;这里假设已经拿到了所需的物料。 装…

微信小程序开发22__在列表中 高亮选中某一项

思考一个问题: 在一个列表中&#xff0c;怎样实现高亮选中 某一项呢? 我们先看要实现的效果图 <!-- 这里data-index 用于点击时传递参数, 在js取时写法&#xff1a; e.target.dataset.index --> <view wx:for"{{info}}" class"{{indexnum?active:…

UTOPIA Automatic Generation of Fuzz Driver using Unit Tests

UTOPIA: Automatic Generation of Fuzz Driver using Unit Tests 这篇论文主要由三星研究院发表于2023 IEEE Symposium on Security and Privacy (SP)会议上 论文获取链接&#xff1a; https://gts3.org/assets/papers/2023/jeong:utopia.pdf 背景 模糊测试分为两种&#xf…

整理FTP协议相关知识,撰写FTP服务器文件列表展示、文件上传、文件下载等代码案例和实现步骤细节;

1、FTP简介&#xff1a; FTP 是File Transfer Protocol&#xff08;文件传输协议&#xff09;的英文简称&#xff0c;而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时&#xff0c;它也是一个应用程序&#xff08;Application&#xff09;。基于不同的操作…

Redis-Desktop-Manager连接时出现Can’t connect to redis-server

目录 1. Redis-Desktop-Manager连接需要四个参数 2.修改数据库配置文件 3.关闭防火墙 4.此时连接Redis-Desktop-Manager 1. Redis-Desktop-Manager连接需要四个参数 Name&#xff1a;自定义连接名 Host&#xff1a;redis服务器地址&#xff0c;在CentOS终端中使用命令&…

dubbo入门

Dubbo概述 官网&#xff1a; https://dubbo.apache.org Dubbo快速入门 1 安装zk 参考 https://blog.csdn.net/qq_34914039/article/details/131614771 2 实现步骤