开始使用
该解决方案使用22端口CloudShell方式远程登录云服务器,默认已配置IP地址白名单,若需远程登录云服务器,可直接使用CloudShell远程登录。
该解决方案部署成功后,环境初始化及应用安装预计10~15分钟不等,受网络、带宽影响,部署时间会有波动,部署完成方可正常使用。
安全组规则修改(可选)
安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。
如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。
启动Kyuubi服务
- 登录华为云X实例控制台,远程登录服务器实例。 图1 登录华为云控制台
图2 选择CloudShell登录
图3 远程登录
- 准备MRS Hadoop相关的配置文件。 MRS Hadoop分析集群的master节点数量一般是2-3个,选择任何一个master即可,假设其中一台master服务器IP是10.0.11.237,执行如下命令将Hadoop相关配置文件复制到ECS本地。
export HADOOP_MASTER=10.0.11.237 mkdir -p /opt/kyuubi-conf ssh root@$HADOOP_MASTER "cat /opt/Bigdata/client/HDFS/hadoop/etc/hadoop/core-site.xml" > /opt/kyuubi-conf/core-site.xml ssh root@$HADOOP_MASTER "cat /opt/Bigdata/client/HDFS/hadoop/etc/hadoop/hdfs-site.xml" > /opt/kyuubi-conf/hdfs-site.xml ssh root@$HADOOP_MASTER "cat /opt/Bigdata/client/HDFS/hadoop/etc/hadoop/yarn-site.xml" > /opt/kyuubi-conf/yarn-site.xml
图4 示例命令截图如下
- 构建kyuubi配置文件。 参考访问MRS集群Manager服务,在Manager服务中查询Hive Metastore的IP地址。图5 MRS Manager服务界面

图6 MRS HIVE METASTORE的IP地址

通过上图得知示例中的Hive Metadata的IP分别是10.0.11.237和10.0.26.192,执行以下命令构建kyuubi配置文件/opt/kyuubi-conf/kyuubi-defaults.conf。
export HIVE1=10.0.11.237 export HIVE2=10.0.26.192 cat > /opt/kyuubi-conf/kyuubi-defaults.conf << EOF spark.hadoop.hive.metastore.uris thrift://${HIVE1}:9083,thrift://${HIVE2}:9083 spark.sql.warehouse.dir hdfs://hacluster/user/hive/warehouse EOF cat /opt/kyuubi-conf/kyuubi-defaults.conf - 新增MRS Hadoop集群的用户配置。
进入hdfs组件的界面,选择[ 配置 ] --> [ HDFS服务 ] --> [ 自定义 ],针对core-size.xml文件新增如下3个键值对。
hadoop.proxyuser.kyuubi.users *
hadoop.proxyuser.kyuubi.groups *
hadoop.proxyuser.kyuubi.hosts *
图7 MRS Hadoop配置页界面

新增配置完成后,点击左上角的[ 保存 ]按钮。
- 重启MRS集群中的HDFS组件。
在MRS Manager界面中选择HDFS组件,选择[ 重启服务 ],注意不需要去勾选[ 重启上层服务 ]的选择框。等待HDFS组件重启完成。
图8 在MRS Manager中重启HDFS组件

- 启动Kyuubi容器。 执行脚本启动Kyuubi容器,命令如下。
bash /opt/run-kyuubi.sh
观察kyuubi容器的日志,没有出现ERROR日志,说明启动成功。
docker logs -f kyuubi
图9 kyuubi容器日志

使用beeline连接kyuubi创建示例数据库和表
- beeline命令行工具连接kyuubi。
进入kyuubi容器。
docker exec -it kyuubi bash
在容器中执行如下命令,使用beeline工具去连接kyuubi服务器的10009端口,在本示例中kyuubi服务器的内网IP是10.0.6.175,-n参数表示用户名(可任意设置,例如是root、alice等)。# 命令格式: /opt/kyuubi/bin/beeline -u "jdbc:hive2://<kyuubi服务器内网IP>:10009/" -n <用户名> # 具体示例命令: /opt/kyuubi/bin/beeline -u "jdbc:hive2://10.0.6.175:10009/" -n alice
图10 beeline连接kyuubi

- beeline命令行环境中创建示例数据库和表。 在beeline命令行环境中,执行如下SQL创建示例数据库、表,最后执行表查询。
-- 创建数据库 CREATE DATABASE IF NOT EXISTS my_test_db; -- 切换到该数据库 USE my_test_db; -- 创建一个简单的员工表 CREATE TABLE employee ( id INT, name STRING, age INT, department STRING ) USING PARQUET COMMENT '员工信息表'; INSERT INTO employee VALUES (1, 'Alice', 28, 'Engineering'), (2, 'Bob', 32, 'Sales'), (3, 'Charlie', 25, 'Marketing'); -- 查询所有数据 SELECT * FROM employee;图11 查询插入的数据

重启/停止kyuubi(可选)
当kyuubi容器意外停止时,或者ECS重启后,kyuubi容器默认会自动重启。用户依然可以选择手工停止和重启kyuubi容器。
- 查看kyuubi容器状态。
docker ps -a
STATUS字段表示容器的状态,UP或Running表示正常运行,Exited或Stopped表示停止。
- 停止kyuubi容器。
docker stop kyuubi
- 重启kyuubi容器。 方式1:重启已存在的kyuubi容器。
docker restart kyuubi
方式2:删除已存在的kyuubi容器并启动新kyuubi容器。
bash /opt/run-kyuubi.sh