本篇文章只是用于demo的HDFS集群搭建教程,用于跑通ElasticCTR的各个流程。本文将会带着大家在百度云的节点上搭建一个HDFS,并将Criteo数据集按照ElasticCTR的数据集格式要求,存放在HDFS上。
搭建 HDFS 集群的过程较为复杂,首先需要购买一个 BCC 实例
在 BCC 实例当中购买较大的 CDS 云磁盘。
在进入 BCC 之后首先需要用 fdisk 工具确认分区是否已经安装。
选择 hadoop-2.8.5.tar.gz。下载后解压把 hadoop-2.8.5 目录 move 到/usr/local 目录下。 在/usr/local/hadoop-2.8.5/etc/hadoop/下,编辑 core-site.xml文件,修改为
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://${LOCAL_IP}:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop</value>
</property>
</configuration>
此处 $LOCAL_IP
推荐用内网的 IP,也就是在 ifconfig 下为 192.168
开头的 IP,在 K8S 当中也可以被访问 到。
在 slave
文件下输入 root@127.0.0.1
接下来配置无密码访问,首先要 ssh-keygen
,无论提示什么全部回车数次之后,用 ssh-copy-id
命令把无密码访问配置到 127.0.0.1
,localhost
,0.0.0.0
几个 IP 地址。
把/usr/local/hadoop-2.8.5/etc/hadoop
设置为 $HADOOP_HOME
再把$HADOOP_HOME/bin
放在 $PATH
下。如果输入 hadoop
命令可以被执行,就执行 hadoop namenode format
。
最后在/usr/local/hadoop-2.8.5/sbin
目录下运行 ,start-all.sh
。
以上操作之后,HDFS 服务就启动完毕,接下来就创建流式训练的文件夹 /train_data/
,使用命令 hdfs dfs -mkdir hdfs://$IP:9000/train_data/
接下来从 https://paddle-serving.bj.bcebos.com/criteo_ctr_example/criteo_demo.tar.gz
下载数据集,解压之后在criteo_demo下
执行
hdfs dfs -put * hdfs://$IP:9000/train_data/20200401
$IP
就是先前到HDFS地址。
这样,就在train_data下目录到20200401目录下存放了5个小时的训练集。20200401可以改动成任意一个日期。
在主页面的教程中,data.config
文件就是用来现在配置的HDFS信息,日期信息会在这里被调用。