15.2 设置Spark和DataCleaner环境
为了工作,Apache Spark需要环境变量HADOOP_CONF_DIR 或 YARN_CONF_DIR中的任何一个到包含Hadoop/Yarn配置文件(如core-site.xml , yarn-site.xml 等.)的目录中。
将配置文件上传到HDFS
Hadoop上的DataCleaner需要一个常规的DataCleaner配置文件(conf.xml格式). 最好将其上传到hadoop分布式文件系统(HDFS)。我们建议将此文件放入路劲 /datacleaner/conf.xml 下. 配置文件(conf.xml格式)的简单示例使用基于HDFS文件或目录的CSV数据存储:
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://eobjects.org/analyzerbeans/configuration/1.0">
<datastore-catalog>
<csv-datastore name="mydata">
<filename>hdfs://bigdatavm:9000/path/to/data.txt</filename>
<multiline-values>false</multiline-values>
</csv-datastore>
</datastore-catalog>
</configuration>
注意这里用scheme、hostname和port指定的文件名:
<filename>hdfs://bigdatavm:9000/path/to/data.txt</filename>
这里指的是Hadoop Namenode的主机名和端口。
也可以更含蓄地指定它,而不使用用户名和端口:
<filename>hdfs:///path/to/data.txt</filename>
甚至不使用scheme
<filename>/path/to/data.txt</filename>
将作业文件上传到HDFS
上传要运行的DataCleaner作业(一个DataCleaner .analysis.xml 作业文件)到HDFS。我们建议将此文件放入/datacleaner/jobs/myjob.xml 等路径中. 这些作业可以使用DataCleaner桌面UI构建,但是要确保它们也能很好地映射到HDFS上的配置文件。
基于上述数据存储的作业文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<job xmlns="http://eobjects.org/analyzerbeans/job/1.0">
<source>
<data-context ref="mydata" />
<columns>
<column id="col_country" path="country" />
<column id="col_company" path="company" />
</columns>
</source>
<analysis>
<analyzer>
<descriptor ref="Create CSV file"/>
<properties>
<property name="File" value="hdfs:///path/to/output.csv"/>
<property name="Separator char" value=","/>
<property name="Quote char" value="""/>
<property name="Escape char" value="\"/>
<property name="Include header" value="true"/>
<property name="Encoding" value="UTF-8"/>
<property name="Fields" value="[COUNTRY,CUSTOMERNUMBER]"/>
<property name="Overwrite file if exists" value="true"/>
</properties>
<input ref="col_country" name="Columns"/>
<input ref="col_company" name="Columns"/>
</analyzer>
</analysis>
</job>
此特定作业非常简单-它只是将数据从A复制到B。有关作业文件内容的说明:
- 作业引用的是mydata,mydata是配置文件中定义的CSV数据存储的名称。
- "File"属性中使用了另一个HDFS文件引用。文件名格式与配置文件中的格式相同。
如果您的桌面应用程序可以访问namenode,那么您可以在桌面应用程序中生成此作业,保存它并在spark上运行它。这个作业没有什么特别的地方可以让它在spark上运行,只是涉及的文件引用可以从hadoop节点解析。
将可执行文件上传到HDFS
在DataCleaner的安装中,您可以找到 ‘DataCleaner-spark.jar’ 文件.
这个jar文件包含在Hadoop上使用Apache Spark运行DataCleaner所需的核心内容。它还包含DataCleaner的标准组件。
将这个jar文件上传到 /datacleaner/lib 文件夹中的HDFS。
将您的DataCleaner许可证文件上传到 /datacleaner/hi_datacleaner.lic.
上传您需要的任何扩展jar文件(例如Groovy-DataCleaner.jar)到同一个文件夹。