本文共 2730 字,大约阅读时间需要 9 分钟。
在本节中,我们将介绍如何在 HDFS 上配置 Alluxio 集群,并展示如何在 Alluxio 上运行 MapReduce 作业。
本节使用 3 台虚拟机作为 Alluxio 集群节点。具体配置如下:
| 主机名 | IP 地址 | 角色 |
|---|---|---|
| node1 | 192.168.xxx.xx1 | master |
| node2 | 192.168.xxx.xx2 | worker |
| node3 | 192.168.xxx.xx3 | worker |
确保所有节点上的软件版本为:
| 软件 | 版本 |
|---|---|
| JDK | 1.8.0_281 |
| Hadoop | 2.7.3 |
| Alluxio | 2.1.0 |
确保三台虚拟机之间可以通过 SSH 免密登录。可以预先在每台机器上生成并添加 SSH 秘钥。
在所有节点上安装 JDK。安装完成后,将 JDK 的路径添加到环境变量中。
使用完全分布式安装方法安装 Hadoop。安装完成后,将 Hadoop 的路径也添加到环境变量中。
在主节点 (node1) 上下载并解压 Alluxio 二进制文件:
[root@node1 opt]# tar -zxvf alluxio-2.1.0-bin.tar.gz
修改 /etc/profile 文件,将以下内容添加到末尾并保存:
export JAVA_HOME=/opt/jdk1.8.0_281export HADOOP_HOME=/opt/hadoop-2.7.3export ALLUXIO_HOME=/opt/alluxio-2.1.0export PATH=$PATH:/:$HADOOP_HOME/bin:$JAVA_HOME/bin:$ALLUXIO_HOME/bin
将该文件复制到其他节点并执行 source /etc/profile。
在 Alluxio 安装目录下创建必要的配置文件:
[root@node1 conf]# pwd/opt/alluxio-2.1.0/conf
添加以下配置:
alluxio-site.properties:
alluxio.master.hostname=node1alluxio.master.mount.table.root.ufs=hdfs://node1:9000/alluxio
masters 和 workers 文件中添加所有节点的 hostname。
alluxio-env.sh:
export JAVA_HOME=/opt/jdk1.8.0_281
将这些配置文件通过 rsync 复制到所有节点。
在主节点上执行挂载命令:
[root@node1 alluxio-2.1.0]# bin/alluxio-mount.sh Mount workers
在首次启动前格式化节点:
[root@node1 alluxio-2.1.0]# bin/alluxio format
启动 Alluxio 集群:
[root@node1 alluxio-2.1.0]# bin/alluxio-start.sh all
通过浏览器访问 http://node1:19999/ 查看 Alluxio Web 界面。
如果遇到以下错误:
No Under File System Factory found for: hdfs://node1:9000/alluxio/underFSStorage
请确保 HDFS 集群和 Alluxio 的配置完全一致。
如果 AlluxioWorker 启动失败,确保节点间网络连接正常,并检查防火墙设置。
在 Alluxio Client 节点上,将 Alluxio Client JAR 包添加到 Hadoop 类路径中。
[root@node1 ~]# cp /opt/alluxio-2.1.0/client/alluxio-2.1.0-client.jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/
在主节点上修改 core-site.xml 文件:
fs.alluxio.impl alluxio.hadoop.FileSystem The Alluxio FileSystem (Hadoop 1.x and 2.x) fs.AbstractFileSystem.alluxio.impl alluxio.hadoop.AlluxioFileSystem The Alluxio AbstractFileSystem (Hadoop 2.x)
在主节点上修改 hadoop-env.sh 文件:
export HADOOP_CLASSPATH="/opt/alluxio-2.1.0/client/alluxio-2.1.0-client.jar:$HADOOP_CLASSPATH"
将上述文件复制到其他节点并执行命令。
将输入文件复制到 Alluxio 目录中:
[root@node1 ~]# alluxio fs copyFromLocal wc.txt /Copied file:///root/wc.txt
运行 WordCount 作业:
[root@node1 ~]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount alluxio://node1:19998/wc.txt alluxio://node1:19998/wc-out
查看结果:
[root@node1 ~]# alluxio fs cat /wc-out/part-r-00000
转载地址:http://nhkbz.baihongyu.com/