<commit_before># JindoFS SDK 使用

<a name="3baNh"></a>
# 介绍

JindoFS SDK是一个简单易用面向Hadoop/Spark生态的OSS客户端，为阿里云OSS提供高度优化的Hadoop FileSystem实现。通过它您可以

1. 访问OSS（作为 OSS 客户端）
1. 访问JindoFS Cache模式集群
1. 访问JindoFS Block模式集群



即使您使用JindoFS SDK仅仅作为OSS客户端，相对于Hadoop社区OSS客户端实现，您还可以获得更好的性能和阿里云E-MapReduce产品技术团队更专业的支持。

目前支持的Hadoop版本包括Hadoop 2.7+和Hadoop 3.x。有问题请反馈，开PR，我们会及时处理。<br />
<br />关于JindoFS SDK和Hadoop社区OSS connector的性能对比，请参考文档[JindoFS SDK和Hadoop-OSS-SDK性能对比测试](./jindofs_sdk_vs_hadoop_sdk.md)。<br />

<a name="CLFRq"></a>
# 使用方法

<a name="EKEBo"></a>
### 1. 安装jar包
下载最新的jar包 jindofs-sdk-x.x.x.jar ，将sdk包安装到hadoop的classpath下
```
cp ./jindofs-sdk-*.jar hadoop-2.8.5/share/hadoop/hdfs/lib/jindofs-sdk.jar
```
注意： 目前SDK只支持Linux、MacOS操作系统<br />

<a name="fewNY"></a>
### 2. 创建客户端配置文件
将下面环境变量添加到/etc/profile文件中<br />export B2SDK_CONF_DIR=/etc/jindofs-sdk-conf<br />创建文件 /etc/jindofs-sdk-conf/bigboot.cfg  包含以下主要内容
```
[bigboot]
logger.dir = /tmp/bigboot-log

[bigboot-client]
client.oss.retry=5
client.oss.upload.threads=4
client.oss.upload.queue.size=5
client.oss.upload.max.parallelism=16
client.oss.timeout.millisecond=30000
client.oss.connection.timeout.millisecond=3000
```


<a name="mZiaE"></a>
### 3. 使用SDK
<a name="exCE9"></a>
#### 3.1 访问OSS (cache 模式) 
```
hadoop fs -ls oss://<ak>:<secret>@<bucket>.<endpoint>/
```
您也可以将oss的ak、secret、endpoint预先配置在hadoop-2.8.5/etc/hadoop/core-site.xml ，避免每次使用时临时填写ak。
```xml
<configuration>
    <property>
        <name>fs.oss.impl</name>
        <value>com.aliyun.emr.fs.oss.JindoOssFileSystem</value><commit_msg>update jindofs_sdk_how_to.md<commit_after># JindoFS SDK 使用

<a name="3baNh"></a>
# 介绍

JindoFS SDK是一个简单易用面向Hadoop/Spark生态的OSS客户端，为阿里云OSS提供高度优化的Hadoop FileSystem实现。通过它您可以

1. 访问OSS（作为 OSS 客户端）
1. 访问JindoFS Cache模式集群
1. 访问JindoFS Block模式集群



即使您使用JindoFS SDK仅仅作为OSS客户端，相对于Hadoop社区OSS客户端实现，您还可以获得更好的性能和阿里云E-MapReduce产品技术团队更专业的支持。

目前支持的Hadoop版本包括Hadoop 2.7+和Hadoop 3.x。有问题请反馈，开PR，我们会及时处理。<br />
<br />关于JindoFS SDK和Hadoop社区OSS connector的性能对比，请参考文档[JindoFS SDK和Hadoop-OSS-SDK性能对比测试](./jindofs_sdk_vs_hadoop_sdk.md)。<br />

<a name="CLFRq"></a>
# 使用方法

<a name="EKEBo"></a>
### 1. 安装jar包
下载最新的jar包 jindofs-sdk-x.x.x.jar ，将sdk包安装到hadoop的classpath下
```
cp ./jindofs-sdk-*.jar hadoop-2.8.5/share/hadoop/hdfs/lib/jindofs-sdk.jar
```
注意： 目前SDK只支持Linux、MacOS操作系统<br />

<a name="fewNY"></a>
### 2. 创建客户端配置文件
将下面环境变量添加到/etc/profile文件中<br />export B2SDK_CONF_DIR=/etc/jindofs-sdk-conf<br />创建文件 /etc/jindofs-sdk-conf/bigboot.cfg  包含以下主要内容
```
[bigboot]
logger.dir = /tmp/bigboot-log

[bigboot-client]
client.oss.retry=5
client.oss.upload.threads=4
client.oss.upload.queue.size=5
client.oss.upload.max.parallelism=16
client.oss.timeout.millisecond=30000
client.oss.connection.timeout.millisecond=3000
```


<a name="mZiaE"></a>
### 3. 使用SDK
<a name="exCE9"></a>
#### 3.1 访问OSS (cache 模式) 
```
hadoop fs -ls oss://<ak>:<secret>@<bucket>.<endpoint>/
```
您也可以将oss的ak、secret、endpoint预先配置在hadoop-2.8.5/etc/hadoop/core-site.xml ，避免每次使用时临时填写ak。
```xml
<configuration>
    <property>
        <name>fs.AbstractFileSystem.oss.impl</name>
        <value>com.aliyun.emr.fs.oss.OSS</value>
    </property>

    <property>
        <name>fs.oss.impl</name>
        <value>com.aliyun.emr.fs.oss.JindoOssFileSystem</value>
{'fraction_non_alphanumeric': 0.17058096415327564, 'fraction_numerical': 0.021013597033374538, 'mean_word_length': 5.119092627599244, 'pattern_counts': {'":': 0, '<': 65, '<?xml version=': 0, '>': 65, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1044527', 'n_tokens_mistral': 1798, 'n_tokens_neox': 1817, 'n_words': 176}