hdfs->obs翻译使用

举报
不期而至的美好 发表于 2020/06/30 20:10:29 2020/06/30
【摘要】 通过HDFS地址映射到OBS地址的方式,支持将HDFS中的数据迁移到OBS后,不需要变动业务逻辑中的数据地址,即可完成数据访问。 例如将HDFS文件系统的数据迁移到OBS服务中,通过使用HDFS地址映射功能简单配置即可实现客户端无需修改自己的的业务代码逻辑的情况下,访问存储到OBS的数据。或将元数据信息从HDFS文件系统部分迁移到OBS服务中,通过使用HDFS地址映射功能简单配置即可实现既能访问

hdfs->obs翻译使用说明

 

功能说明:通过HDFS地址映射到OBS地址的方式,支持将线下数据迁移到OBS后,不需要变动业务逻辑中的数据地址。

 

用户场景:1. 客户端不能修改自己的的业务代码逻辑的情况下,实现上云,将数据从HDFS文件系统迁移到OBS系统,通过使用翻译功能简单配置即可访问存储到OBS的数据。

2. 将元数据信息从HDFS文件系统部分迁移到OBS,通过使用翻译功能简单配置即可既能访问存储到OBS的数据又可以访问存储在HDFS文件系统的数据。

注意:不支持使用WebHdfsFileSystem (A FileSystem for HDFS over the web.)的rest api访问的场景。

一 通过hadoop客户端命令操作hdfs(/path方式或hdfs://namespace/path方式)

1. 修改hdfs用到的 core-site.xml文件:

vim /opt/client/HDFS/hadoop/etc/hadoop/core-site.xml

2加入如下property,并保存:

<property>

<name>fs.hdfs.mounttable.hacluster.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.impl</name>

<value>com.huawei.hadoop.MRSHDFSWrapperFileSystem</value>

</property>

<property>

<name>fs.obs.endpoint</name>

<value>obs.cn-north-5.myhuaweicloud.com</value>

</property>

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

使用示例:

1)hdfs://namespace/方式

hadoop fs -mkdir -p hdfs://hacluster/var/test

hadoop fs -put abc.txt hdfs://hacluster/var/test/

hadoop fs -ls hdfs://hacluster/var/test

2)hadoop命令行(不加namespace)

hadoop fs -mkdir -p /var/test

hadoop fs -put abc.txt /var/test/

hadoop fs -ls /var/test

 

二 通过hadoop客户端命令操作hdfs(hdfs://namenodeIp:port/path)

1. 修改hdfs用到的 core-site.xml文件:

vim /opt/client/HDFS/hadoop/etc/hadoop/core-site.xml

2假如你有两个namenode,ip分别为namenodeIp1,namenodeIp2,端口号都是port(HDFS NameNode RPC端口号。 【默认值】9820),加入如下property,并保存:(注意:使用这种方式需要配置所有namenode的namenodeIp:port对应的映射)

<property>

<name>fs.hdfs.mounttable.hacluster.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.mounttable.namenodeIp1:port.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.mounttable. namenodeIp2:port.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.impl</name>

<value>com.huawei.hadoop.MRSHDFSWrapperFileSystem</value>

</property>

<property>

<name>fs.obs.endpoint</name>

<value>obs.cn-north-5.myhuaweicloud.com</value>

</property>

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

使用示例:

hadoop fs -ls hdfs://192.168.1.91:9820/var/

三 通过hadoop客户端命令执行MR作业

1. 修改hdfs用到的 core-site.xml文件:

vim /opt/client/HDFS/hadoop/etc/hadoop/core-site.xml

2加入如下property,并保存:

<property>

<name>fs.hdfs.mounttable.hacluster.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.impl</name>

<value>com.huawei.hadoop.MRSHDFSWrapperFileSystem</value>

</property>

<property>

<name>fs.obs.endpoint</name>

<value>obs.cn-north-5.myhuaweicloud.com</value>

</property>

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

3. 修改yarn用到的 core-site.xml文件:

vim /opt/client/Yarn/config/core-site.xml

4. 加入如下property,并保存:

<property>

<name>fs.hdfs.mounttable.hacluster.link./var</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.impl</name>

<value>com.huawei.hadoop.MRSHDFSWrapperFileSystem</value>

</property>

<property>

<name>fs.obs.endpoint</name>

<value>obs.cn-north-5.myhuaweicloud.com</value>

</property>

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

使用示例:

将wordcount结果写入obs目录

hadoop jar /opt/share/hadoop-mapreduce-examples-2.8.3-mrs-1.9.0/hadoop-mapreduce-examples-2.8.3-mrs-1.9.0.jar wordcount  /yy /yy/test10

 

四 通过hive beeline jdbc访问hdfs数据

前提:1. 集群默认的文件系统是hdfs。即fs.defaultFS的配置项是hdfs://开始。

2. 集群详情页面配置默认委托。

进入集群详情页配置步骤如下图:

                                             

进入节点管理:(确保每个节点都已经选择了默认委托)

 

正式使用步骤:

1. 进入MRS管理页面后

2. 服务管理页签中选择Hive 服务

3. 服务配置中选择全部配置

4. 自定义配置中增加如下配置:

fs.hdfs.impl->com.huawei.hadoop.MRSHDFSWrapperFileSystem

fs.hdfs.mounttable.hacluster.link./yy->obs://obs-5486-yyp/job/yy

 

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

映射的键”.link”字符串后的目录不能使用这些目录/tmp/hive-scratch、/tmp/hive、/apps、/datasets、/mrs、/user及其子目录。这些目录下的文件hive启动过程要用到。

5. 点击保存配置,勾选重新启动受影响的服务或实例

 

使用示例:

比如你hive on spark使用如下语句创建一个表,表将存入obs://obs-5486-yyp/job/yy/sparktest文件夹下面。

drop table if exists Table_spark_sql;

create external table Table_spark_sql(line string, id string) row format delimited fields terminated by "," stored as textfile location "hdfs://hacluster/yy/sparktest";

insert into Table_spark_sql values("v3456","ffff");

 

五 通过presto_cli.sh jdbc访问hdfs数据

前提:集群详情页面配置默认委托。

进入集群详情页配置步骤如下图:

进入节点管理:(确保每个节点都已经选择了默认委托)

 

正式使用步骤:

1. 进入MRS管理页面后

2. 服务管理页签中选择Presto服务

3. 服务配置中选择全部配置

4. 参数类别选择Hive自定义配置core.site.customized.configs中增加如下配置:

fs.hdfs.impl->com.huawei.hadoop.MRSHDFSWrapperFileSystem

fs.hdfs.mounttable.hacluster.link./yy->obs://obs-5486-yyp/job/yy

若你是用root用户访问数据:

fs.hdfs.mounttable.hacluster.link./tmp/presto-root->obs://obs-5486-bnn/job/presto_root/

注意:此项配置的键必须跟这里(fs.hdfs.mounttable.hacluster.link./tmp/presto-root)一致,presto内核代码的临时目录产生是在location的默认或者指定文件系统下创建的一个临时目录/tmp/presto-root。

若你是用omm用户访问数据:

fs.hdfs.mounttable.hacluster.link./tmp/presto-omm->obs://obs-5486-bnn/job/presto_omm/

注意:此项配置的键必须跟这里(fs.hdfs.mounttable.hacluster.link./tmp/presto-omm)一致,presto内核代码的临时目录产生是在location的默认或者指定文件系统下创建的一个临时目录/tmp/presto-omm。

同理,别的用户替换掉对应的用户名即可。

 

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

 

5. 点击保存配置,勾选重新启动受影响的服务或实例

 

使用示例:

比如你presto on hive使用如下语句创建一个表,表将存入obs://obs-5486-yyp/job/yy/ presto文件夹下面。

presto_cli.sh

use hive.default;

CREATE TABLE mcs_test1 ( field1 bigint, field2 bigint) WITH ( format='TEXTFILE', external_location='hdfs://hacluster/yy/presto');

INSERT INTO mcs_test1 VALUES (3, 3);

 

六 通过MRS服务安装的组件flink提交作业

1. 进入MRS管理页面后

2. 服务管理页签中选择Yarn 服务

3. 服务配置中选择全部配置

4. 自定义配置中增加如下配置:

fs.hdfs.impl->com.huawei.hadoop.MRSHDFSWrapperFileSystem

fs.hdfs.mounttable.hacluster.link./yy->obs://obs-5486-yyp/job/yy

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

5. 点击保存配置,勾选重新启动受影响的服务或实例

 

使用示例:

执行如下命令启动session,并在session中提交作业。

yarn-session.sh -nm "session-name"

flink run /opt/client/Flink/flink/examples/streaming/WordCount.jar --input hdfs://hacluster/yy/ --output hdfs://hacluster/yy/test

执行如下命令在Yarn上提交单个作业

flink run -m yarn-cluster -ynm "test" /opt/client/Flink/flink/examples/streaming/WordCount.jar --input hdfs://hacluster/yy/ --output hdfs://hacluster/yy/test


七 提交Spark作业或者执行Spark SQL

1. master节点修改spark用到的core-site.xml文件:

vim /opt/client/Spark/spark/conf/core-site.xml

2加入如下配置,并保存:

<property>

<name>fs.hdfs.mounttable.hacluster.link./yy</name>

<value>obs://obs-5486-bnn/job/yy</value>

</property>

<property>

<name>fs.hdfs.impl</name>

<value>com.huawei.hadoop.MRSHDFSWrapperFileSystem</value>

</property>

注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

使用示例:

Spark作业:

spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.JavaWordCount /opt/client/Spark/spark/examples/jars/spark-examples_2.11-2.2-mrs-1.9.0.jar hdfs://hacluster/yy/test(java代码的spark wordcount最后结果是打印到控制台)

spark-submit --master yarn --deploy-mode client wordcount.py hdfs://hacluster/yy/ hdfs://hacluster/yy/test

spark-submit --master yarn --deploy-mode cluster wordcount.py hdfs://hacluster/yy/ hdfs://hacluster/yy/test

Spark SQL

cd /opt/client/Spark/spark/bin

执行 ./spark-sql --master yarn-client 进入Spark-sql:

DROP TABLE IF EXISTS Table_spark_sql;

create external table Table_spark_sql(line string, id string) row format delimited fields terminated by "," stored as textfile location "hdfs://hacluster/yy/sparktest";

insert into Table_spark_sql values("v3456","ffff");

 

通过spark beeline jdbc访问hdfs数据

前提:集群详情页面配置默认委托。

进入集群详情页配置步骤如下图:

进入节点管理:(确保每个节点都已经选择了默认委托)

 

正式使用步骤:

1. 进入MRS管理页面后

2. 服务管理页签中选择Spark 服务

3. 服务配置中选择全部配置

4. 参数类别选择JDBCServer自定义配置spark.core-site.customized.configs中增加如下配置:

fs.hdfs.impl->com.huawei.hadoop.MRSHDFSWrapperFileSystem

fs.hdfs.mounttable.hacluster.link./yy->obs://obs-5486-yyp/job/yy 


注意:标红的hacluster是core-site.xml配置中fs.defaultFS的值的namespace,若你修改了默认fs.defaultFS的配置的namespace,’hacluster’修改对应的值即可。

5. 点击保存配置,勾选重新启动受影响的服务或实例


 

使用示例:

cd /opt/client/Spark/spark/bin/

./spark-beeline

 

DROP TABLE IF EXISTS Table_spark_sql;

create external table Table_spark_sql(line string, id string) row format delimited fields terminated by "," stored as textfile location "hdfs://hacluster/yy/sparktest";

insert into Table_spark_sql values("v3456","ffff");

 

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。