华为云上DWS连接hdfs服务

开发工具

  1、获取dws虚拟机地址

  登录service om【https://mgmt.cloud.whit:31943】

  选择首页 > 虚拟机 > 搜索虚拟机【EICommon-Region-Master】

  复制虚拟机的ip地址【3台复制一台即可】

  2、登录虚拟机

  ssh opsadmin@50.81.132.151

  Hwsimg#ops2022$【opsadmin用户的密码】

  su - root【切换root用户】

  Hwsimg@sre2022【root用户密码】

  3、获取容器【dws服务都是运行在容器中】

  kubectl get pod -n ecf

  登录【dwsmaintaintool】容器,该容器为运维容器

  kubectl -n ecf exec -it dwsmaintaintool-bb7bdcc49-jfr6l【容器名】 bash【进入容器】

  4、进入实例

  步骤4必须在容器内执行

  cd opsTool/

  sh connectTool.sh -uecf -drms -h 50.81.130.98【mysql地址】 -p7306【mysql端口】 -n whccb_dws-dws-cn-cn-1-1【dws实例名称】 -t standalone

  怎么获取mysql地址和端口,请参考附录1

  Xj97cjOaQ2sv#@hIn7【常用密码,可以参考】

  su - Ruby

  5、需要上传的文件内容,【建议将5个文件放到文件夹hdfs_conf中】

  需要上传的文件为:【hdfs-site.xml、core-site.xml、user.keytab、krb5.conf】这 4个文件需要在MRS中下载

  【elk-site.xml】手动创建,内容为:

  <?xml version="1.0" encoding="UTF-8" standalone="no"?><configuration><property><name>dfs.namenode.kerberos.principal</name><value>user@hadoop.hadoop.com@HADOOP.COM</value> //连接Hadoop的用户@域名//用户需要创建@通过“系统”->“权限”->“域和互信”->“本端域”获取HD域名。</property><property><name>remote_connect_hdfs_enable</name><value>true</value></property><property><name>dfs.namenode.kerberos.keytab</name><value>{配置目录}/user.keytab</value> //连接Hadoop用户的keytab文件的绝对路径</property></configuration>

  6、将云外文件上传到实例内

  客户环境云内DWS实例是可以和MRS地址是通的,其它局点根据实际情况进行参考

  如果云内DWS实例和MRS地址不通,则检查

  su - Ruby

  ssh ’hostname -i‘

  scp root@mrs服务器地址:/文件地址 实例内文件地址

  7、进入实例内,将文件进行分发【就是把单节点的文件复制到另外两个节点】

  ssh ’hostname -i‘【容器的特性,需要重新进入一下,权限会发生变化】

  gs_ssh -c "scp -r Ruby@10.0.73.113【本机ip】:源文件目录 目的文件目录"

  8、将mrs集群hosts配置到DWS实例中

  vi /etc/hosts

  在MRS集群中获取MRS的hosts配置信息

  将配置信息粘贴到dws实例的hosts文件中。

  9、测试网络【每台实例都执行一次】

  在实例中使用root用户,测试访问MRS集群的hdfs的namenode节点业务地址

  ping mrs的namenode业务地址【就是看看能不能ping通】

  如果网络不通,则新增路由配置

  添加临时路由

  route add -net 50.81.201.0/24【 50.81.201.0/24:MRS地址】 dev bond0.1875【 bond0.1875:route -n查看dws的ip

  地址绑定的bond名称 】 gw 50.82.201.1【50.82.201.1:dws网关】

  添加永久路由

  cat /etc/sysconfig/static-routes

  any net 50.81.201.0【MRS地址】 netmask 255.255.255.0 gw 50.82.201.1【DWS网关】·

  systemctl restart NetworkManager

  10、创建测试用例

  进入dws数据库命令行:

  gsql -d gaussdb -p 8000 -U dbadmin -W SDws@1234 -ar

  创建外表服务器

  CREATE SERVER hdfs_server_test_3 FOREIGN DATA WRAPPER HDFS_FDW OPTIONS (address '50.81.201.3:25000,50.81.201.4:25000',hdfscfgpath '/MRS/hdfs_conf',type'HDFS');

  hive中创建表:

  create table test2 (id int) row format delimited fields terminated by ',' stored AS ORC;

  dws中创建外表

  CREATE FOREIGN TABLE IF NOT EXISTS test1(id int)

  SERVER hdfs_server_test_3 OPTIONS (encoding 'utf8',foldername '/user/hive/warehouse/test2',format 'orc') DISTRIBUTE BY ROUNDROBIN;

  在hive表中插入一条数据,测试在dws外表中能否查询到

  附录1--寻找裸金属服务器源数据库

  进入cop页面

  选择运维服务-》*-CDK

  选择变更管理-》服务升级

  右侧搜索实例名“dws”

  选择第一个即可,并点击下一步

  搜索参数名“db.url”

  其中参数值:【jdbc:mariadb://50.81.130.98:7306/rms?autoReconnect=true&socketTimeout=300000&useSSL=true&trustServerCertificate=true&requireSSL=true】

  取其中ip地址,作为mysql登录语句的ip地址

  mysql -h50.81.130.98 -P7306 -uecf -pXj97cjOaQ2sv#@hIn7

  切换用户rms

  use rms;

标签: 开发工具