云服务器内容精选

  • 处理步骤1 执行以下命令: source /opt/Bigdata/ MRS _XXX/install/dbservice/.dbservice_profile gsql -h DBservice浮动IP地址 -p 20051 -d hivemeta -U hive -W hive用户密码 如果不能正确进入交互界面,说明数据库初始化失败。如果报如下错误说明在DBservice所在的节点的配置文件可能丢失了hivemeta的配置。 org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "192.168.0.146", database "HIVEMETA"。 编辑“/srv/BigData/dbdata_service/data/pg_hba.conf”,在文件最后面追加host hivemeta hive 0.0.0.0/0 sha256配置。 执行source /opt/Bigdata/MRS_XXX/install/dbservice/.dbservice_profile命令配置环境变量。 执行gs_ctl -D $GAUSSDATA reload #命令使修改后的配置生效。
  • 操作步骤 以客户端安装用户,登录安装客户端的节点,客户端安装详细操作请参见安装客户端(3.x及之后版本)。 执行以下命令切换到客户端目录,客户端安装目录如:/opt/client。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建Hive表的权限,具体请参见创建角色配置拥有对应权限的角色,参考创建用户为用户绑定对应角色。如果当前集群未启用Kerberos认证,则无需执行此命令。 kinit MRS集群用户 例如,kinit hiveuser。 运行Hive客户端命令,实现A业务。 内部表操作 执行以下命令登录Hive客户端命令行: beeline 根据表1创建用户信息表user_info并添加相关数据,例如: create table user_info(id string,name string,gender string,age int,addr string); insert into table user_info(id,name,gender,age,addr) values("12005000201","A","男",19,"A城市"); 在用户信息表user_info中新增用户的学历、职称信息。 以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。 alter table user_info add columns(education string,technical string); 根据用户编号查询用户姓名和地址。 以查询编号为12005000201的用户姓名和地址为例,其他用户类似。 select name,addr from user_info where id='12005000201'; 删除用户信息表。 drop table user_info; 执行以下命令退出Hive客户端。 !q 外部分区表操作 可使用insert语句直接向外部表中插入数据,也可以使用load data命令导入HDFS中的文件数据到外部表中。如果需要使用load data命令导入文件数据,需执行以下操作: 根据表1数据创建文件。例如,文件名为“txt.log”,以空格拆分字段,以换行符作为行分隔符。 执行以下命令上传文件至HDFS中,例如“/tmp”目录下。 hdfs dfs -put txt.log /tmp 执行以下命令创建外部表数据存储路径: hdfs dfs -mkdir /hive/ hdfs dfs -mkdir /hive/user_info 执行以下命令登录Hive客户端命令行: beeline 执行以下命令创建表: create external table user_info(id string,name string,gender string,age int,addr string) partitioned by(year string) row format delimited fields terminated by ' ' lines terminated by '\n' stored as textfile location '/hive/user_info'; fields terminated:表示分隔的字符,如按空格分隔,' '。 lines terminated:表示分行的字符,如按换行分隔,'\n'。 /hive/user_info:存储表user_info数据的HDFS路径。 导入数据。 使用insert语句插入数据,以插入编号为12005000201的用户相关信息为例,其他用户类似。 insert into user_info partition(year="2018") values ("12005000201","A","男",19,"A城市"); 使用load data命令导入文件数据。 load data inpath '/tmp/txt.log' into table user_info partition (year='2011'); 其中,“/tmp/txt.log”为5.a上传至HDFS的数据文件。 执行以下命令查询导入数据。 select * from user_info; 执行以下命令删除用户信息表。 drop table user_info; 执行以下命令退出Hive客户端。 !q
  • 背景信息 假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用Hive客户端实现A业务操作流程如下: 普通表的操作: 创建用户信息表user_info。 在用户信息中新增用户的学历、职称信息。 根据用户编号查询用户姓名和地址。 A业务结束后,删除用户信息表。 表1 用户信息 编号 姓名 性别 年龄 地址 12005000201 A 男 19 A城市 12005000202 B 女 23 B城市 12005000203 C 男 26 C城市 12005000204 D 男 18 D城市 12005000205 E 女 21 E城市 12005000206 F 男 32 F城市 12005000207 G 女 29 G城市 12005000208 H 女 30 H城市 12005000209 I 男 26 I城市 12005000210 J 女 25 J城市
  • 查询Hudi的Schema演进表对应的Hive外部表 如果该Hudi表为Schema演进表(表的字段执行过修改),则在Hive客户端查询该表时还需额外设置一个参数: set hive.exec.schema.evolution=true; 例如以cow表实时视图的查询举例,其他各个视图的查询都要额外添加该参数: set hive.exec.schema.evolution=true; select * from hudicow;
  • Hudi表对应的Hive外部表介绍 Hudi源表对应一份HDFS的数据,通过Spark组件、Flink组件或者Hudi客户端,可以将Hudi表的数据映射为Hive外部表,基于该外部表,Hive可以进行实时视图查询、读优化视图查询以及增量视图查询。 根据Hudi源表的类型的不同,提供不同的视图查询: Hudi源表类型为Copy On Write时,可以映射为Hive的一张外部表,该表可以提供实时视图查询以及增量视图查询。 Hudi源表类型为Merge On Read时,可以映射为Hive的两张外部表(ro表和rt表),ro表提供读优化视图查询,rt表提供实时视图查询以及增量视图查询。 不能对Hudi表映射的Hive外部表做增删改操作(即insert、update、delete、load、merge、alter、msck),只支持查询操作(select)。 表授权:不支持修改类权限(update、Alter、write、All)。 备份与恢复:由于ro表和rt表均由同一个Hudi源表映射的,备份其中一张表,另一张也会跟着备份,恢复也是同时恢复的,因此只需备份其中一张表即可。 组件版本: Hive: FusionInsight _HD_xxx,Hive内核版本3.1.0。 Spark2x:FusionInsight_Spark2x_xxx,Hudi内核版本:0.11.0。
  • 操作步骤 以Hive客户端安装用户登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd 客户端安装目录 例如安装目录为“/opt/client”,则执行以下命令: cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 集群认证模式是否为安全模式。 是,执行以下命令进行用户认证: kinit Hive业务用户 否,执行5。 执行以下命令,将需要关联的关系型数据库驱动Jar包上传到HDFS目录下。 hdfs dfs -put Jar包所在目录 保存Jar包的HDFS目录 例如将“/opt”目录下ORACLE驱动Jar包上传到HDFS的“/tmp”目录下,则执行如下命令。 hdfs dfs -put /opt/ojdbc6.jar /tmp 按照如下示例,在Hive客户端创建关联关系型数据库的外表。 -- 关联oracle linux6版本示例 -- 如果是安全模式,需设置admin权限 set role admin; -- 添加连接关系型数据库的驱动Jar包,不同数据库有不同的驱动Jar ADD JAR hdfs:///tmp/ojdbc6.jar; CREATE EXTERNAL TABLE ora_test -- hive表的列需比数据库返回结果多一列用于分页查询 (id STRING,rownum string) STORED BY 'com.qubitproducts.hive.storage.jdbc.JdbcStorageHandler' TBLPROPERTIES ( -- 关系型数据库类型 "qubit.sql.database.type" = "ORACLE", -- 通过JDBC连接关系型数据库的url(不同数据库有不同的url格式) "qubit.sql.jdbc.url" = "jdbc:oracle:thin:@//10.163.0.1:1521/mydb", -- 关系型数据库驱动类名 "qubit.sql.jdbc.driver" = "oracle.jdbc.OracleDriver", -- 在关系型数据库查询的sql语句,结果将返回hive表 "qubit.sql.query" = "select name from aaa", -- hive表的列与关系型数据库表的列进行匹配(可忽略) "qubit.sql.column.mapping" = "id=name", -- 关系型数据库用户 "qubit.sql.dbcp.username" = "test", -- 关系型数据库密码,命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。 "qubit.sql.dbcp.password" = "xxx"); 如果是安全模式,建表的用户需要“ADMIN”权限。 ADD JAR的路径请以实际路径为准。
  • 背景信息 假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用Hive客户端实现A业务操作流程如下: 普通表的操作: 创建用户信息表user_info。 在用户信息中新增用户的学历、职称信息。 根据用户编号查询用户姓名和地址。 A业务结束后,删除用户信息表。 表1 用户信息 编号 姓名 性别 年龄 地址 12005000201 A 男 19 A城市 12005000202 B 女 23 B城市 12005000203 C 男 26 C城市 12005000204 D 男 18 D城市 12005000205 E 女 21 E城市 12005000206 F 男 32 F城市 12005000207 G 女 29 G城市 12005000208 H 女 30 H城市 12005000209 I 男 26 I城市 12005000210 J 女 25 J城市
  • 操作步骤 以Hive客户端安装用户登录安装客户端的节点。 执行以下命令,切换到客户端安装目录。 cd 客户端安装目录 例如安装目录为“/opt/client”,则执行以下命令: cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 集群认证模式是否为安全模式。 是,执行以下命令进行用户认证: kinit Hive业务用户 否,执行5。 执行以下命令,将需要关联的关系型数据库驱动Jar包上传到HDFS目录下。 hdfs dfs -put Jar包所在目录 保存Jar包的HDFS目录 例如将“/opt”目录下ORACLE驱动Jar包上传到HDFS的“/tmp”目录下,则执行如下命令。 hdfs dfs -put /opt/ojdbc6.jar /tmp 按照如下示例,在Hive客户端创建关联关系型数据库的外表。 如果是安全模式,建表的用户需要“ADMIN”权限,ADD JAR的路径请以实际路径为准。 -- 关联oracle linux6版本示例 -- 如果是安全模式,设置admin权限 set role admin; -- 添加连接关系型数据库的驱动jar包,不同数据库有不同的驱动JAR ADD JAR hdfs:///tmp/ojdbc6.jar; CREATE EXTERNAL TABLE ora_test -- hive表的列需比数据库返回结果多一列用于分页查询 (id STRING,rownum string) STORED BY 'com.qubitproducts.hive.storage.jdbc.JdbcStorageHandler' TBLPROPERTIES ( -- 关系型数据库类型 "qubit.sql.database.type" = "ORACLE", -- 通过JDBC连接关系型数据库的url(不同数据库有不同的url格式) "qubit.sql.jdbc.url" = "jdbc:oracle:thin:@//10.163.0.1:1521/mydb", -- 关系型数据库驱动类名 "qubit.sql.jdbc.driver" = "oracle.jdbc.OracleDriver", -- 在关系型数据库查询的sql语句,结果将返回hive表 "qubit.sql.query" = "select name from aaa", -- hive表的列与关系型数据库表的列进行匹配(可忽略) "qubit.sql.column.mapping" = "id=name", -- 关系型数据库用户 "qubit.sql.dbcp.username" = "test", -- 关系型数据库密码,命令中如果携带认证密码信息可能存在安全风险,在执行命令前建议关闭系统的history命令记录功能,避免信息泄露。 "qubit.sql.dbcp.password" = "xxx");