博客
关于我
Alluxio+HDFS+MapReduce集成及测试
阅读量:460 次
发布时间:2019-03-06

本文共 2725 字,大约阅读时间需要 9 分钟。

在 HDFS 上配置 Alluxio

在本节中,我们将介绍如何在 HDFS 上配置 Alluxio 集群,并展示如何在 Alluxio 上运行 MapReduce 作业。

1.1 节点角色

本节使用 3 台虚拟机作为 Alluxio 集群节点。具体配置如下:

主机名 IP 地址 角色
node1 192.168.xxx.xx1 master
node2 192.168.xxx.xx2 worker
node3 192.168.xxx.xx3 worker

1.2 软件版本

确保所有节点上的软件版本为:

软件 版本
JDK 1.8.0_281
Hadoop 2.7.3
Alluxio 2.1.0

1.3 准备工作

1.3.1 设置 SSH 免密登录

确保三台虚拟机之间可以通过 SSH 免密登录。可以预先在每台机器上生成并添加 SSH 秘钥。

1.3.2 安装 JDK

在所有节点上安装 JDK。安装完成后,将 JDK 的路径添加到环境变量中。

1.3.3 安装 Hadoop

使用完全分布式安装方法安装 Hadoop。安装完成后,将 Hadoop 的路径也添加到环境变量中。

1.4 安装 Alluxio

1.4.1 下载与解压

在主节点 (node1) 上下载并解压 Alluxio 二进制文件:

[root@node1 opt]# tar -zxvf alluxio-2.1.0-bin.tar.gz

1.4.2 设置环境变量

修改 /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

1.4.3 配置 Alluxio

在 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
  • mastersworkers 文件中添加所有节点的 hostname。

  • alluxio-env.sh

    export JAVA_HOME=/opt/jdk1.8.0_281

将这些配置文件通过 rsync 复制到所有节点。

1.4.4 挂载 Alluxio

在主节点上执行挂载命令:

[root@node1 alluxio-2.1.0]# bin/alluxio-mount.sh Mount workers

1.4.5 格式化与启动

在首次启动前格式化节点:

[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 界面。

1.5 问题

1.5.1 安装 2.5.0 版本错误

如果遇到以下错误:

No Under File System Factory found for: hdfs://node1:9000/alluxio/underFSStorage

请确保 HDFS 集群和 Alluxio 的配置完全一致。

1.5.2 集群重启失败

如果 AlluxioWorker 启动失败,确保节点间网络连接正常,并检查防火墙设置。

2 在 Alluxio 上运行 MapReduce

2.1 前提条件

  • 已安装 JDK
  • 已安装 Alluxio

2.2 配置

在 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"

将上述文件复制到其他节点并执行命令。

2.3 测试 WordCount

将输入文件复制到 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/

你可能感兴趣的文章
PHP XSS攻击防范--如何过滤用户输入
查看>>
php zookeeper实现分布式锁
查看>>
PHP 中 this,self,parent 的区别、用法
查看>>
PHP 中如何高效地处理大规模数据的排序?
查看>>
PHP 之ftp客户端类封装实现
查看>>
php 代码改进
查看>>
php 代码混淆
查看>>
PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
查看>>
Redis系列之如何避免缓存击穿
查看>>
php 内存分析
查看>>
PHP 函数名前面加&
查看>>
php 删除包含某一字符的数组元素
查看>>
Redis学习总结(19)——Redis 5种集群方式对比
查看>>
php 反射
查看>>
php 处理 大并发
查看>>
php 大文件上传
查看>>
php 子进程监听消息,swoole学习笔记之多线程端口监听问题记录 多进程epoll模式...
查看>>
PHP 学习笔记 (四)
查看>>
Redis入门概述
查看>>
php 实现Iterator 接口
查看>>