alluxio-install

Alluxio 安装文档

Alluxio是一个基于内存的分布式文件系统,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。


架构图

架构图.jpg

在大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、Apache HBase、Apache Hive 或 Apache Flink)和各种持久化存储系统(如 Amazon S3、Google Cloud Storage、OpenStack Swift、HDFS、GlusterFS、IBM Cleversafe、EMC ECS、Ceph、NFS 、Minio和 Alibaba OSS)之间。 Alluxio 统一了存储在这些不同存储系统中的数据,为其上层数据驱动型应用提供统一的客户端 API 和全局命名空间。


安装:

下载地址:

https://www.alluxio.io/download/releases/

wget https://downloads.alluxio.io/downloads/files/2.8.1/alluxio-2.8.1-bin.tar.gz

Alluxio 集群安装分为两种,zookeeper 和 raft 两种方式。

Zookeeper 方式,集群master通过zk来选择主节点。

安装说明:

两个master节点,两个work节点。

用hadoop用户启动,每个节点之间ssh免密

####修改配置文件:

1
2
3
4
su – hadoop 
cd apache-hadoop
tar -zxvf alluxio-2.8.1-bin.tar.gz
cd alluxio-2.8.1/conf/

软连hdfs配置文件

1
2
ln -s $HADOOP_CONF_DIR/hdfs-site.xml hdfs-site.xml
ln -s $HADOOP_CONF_DIR/core-site.xml core-site.xml

vim master # 写上master 节点的主机名

1
2
shining-bigdata00.host.com
shining-bigdata01.host.com

vim workers # 写上 worker 节点的主机名

1
2
shining-bigdata02.host.com
shining-bigdata04.host.com

vim alluxio-site.properties # alluxio主配置文件 zookeeper HA 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#########<--  zookeeper ha #######
# Common properties
alluxio.master.hostname=shining-bigdata00.host.com # 每个master 设置自己的主机名,每个worker 节点不用配置, 需要注意!!!
#配置日志文件目录
alluxio.master.mount.table.root.ufs=hdfs://shininghadoop/underFSStorage
alluxio.underfs.hdfs.configuration=/home/hadoop/apache-hadoop/hadoop/etc/hadoop/core-site.xml:/home/hadoop/pache-hadoop/hadoop/etc/hadoop/hdfs-site.xml
alluxio.debug=true

##下面是高可用的配置
alluxio.master.hostname=shining-bigdata00.host.com
alluxio.zookeeper.enabled=true
alluxio.zookeeper.address=shining-bigdata00.host.com:2181,shining-bigdata01.host.com:2181,shining-bigdata03.host.com2181,shining-bigdata04.host.com:2181,shining-bigdata02.host.com:2181
alluxio.master.journal.type=UFS
alluxio.master.journal.folder=hdfs://shininghadoop/alluxio/journal

# Security properties
alluxio.security.authorization.permission.enabled=false
alluxio.security.authentication.type=NOSASL
##配置用户模拟,允许yarn用户模拟任意用户
alluxio.master.security.impersonation.yarn.users=*

# Worker properties
alluxio.worker.ramdisk.size=5GB
alluxio.worker.tieredstore.levels=1
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/home/hadoop/alluxio_ramdisk

# User properties
#alluxio.user.file.readtype.default=CACHE
#alluxio.user.file.writetype.default=ASYNC_THROUGH
######### zookeeper ha --> ######

vim alluxio-site.properties # alluxio主配置文件 RAFT HA 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
######### <-- raft ha #####
# raft ha
alluxio.master.hostname=shining-bigdata00.host.com
alluxio.master.mount.table.root.ufs=hdfs://shininghadoop/underFSStorage
alluxio.master.embedded.journal.addresses=shining-bigdata00.host.com:19200,shining-bigdata01.host.com:19200
alluxio.underfs.hdfs.configuration=/home/hadoop/apache-hadoop/hadoop/etc/hadoop/core-site.xml:/home/hadoop/apache-hadoop/hadoop/etc/hadoop/hdfs-site.xml
alluxio.debug=true
alluxio.master.journal.type=UFS
alluxio.master.journal.folder=hdfs://shininghadoop/alluxio/journal

# Security properties
alluxio.security.authorization.permission.enabled=false
alluxio.security.authentication.type=NOSASL
##配置用户模拟,允许yarn用户模拟任意用户
alluxio.master.security.impersonation.yarn.users=*

# Worker properties
alluxio.worker.ramdisk.size=5GB
alluxio.worker.tieredstore.levels=1
alluxio.worker.tieredstore.level0.alias=MEM
alluxio.worker.tieredstore.level0.dirs.path=/home/hadoop/alluxio_ramdisk
######### raft ha --> #####

根据上面的配置,需要准备的配置:

HDFS 上创建目录:

1
2
3
4
5
6
7
hdfs dfs -mkdir /alluxio/journal
hdfs dfs -mkdir /underFSStorage
hdfs dfs -chmod 777 /underFSStorage /alluxio/journal
worker 节点上执行:
su – Hadoop
mkdir -p /home/hadoop/alluxio_ramdisk
chmod 777 /home/hadoop/alluxio_ramdisk

同步配置文件

1
2
3
cd /home/hadoop/alluxio-2.8.1
alluxio copyDir conf/ # 会将此节点的conf目录下的所有配置同步到master和worker节点上,(前提需要ssh免密)
workers 上 修改visudo 让hadoop用户有sudo权限

启动和停止Alluxio集群:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
启动:
cd /home/hadoop /alluxio-2.8.1
./bin/alluxio formatMaster
./bin/alluxio-start.sh all SudoMount
./bin/alluxio fs leader # 查看当前leader节点
./bin/alluxio runTests # 运行一个测试
停止:
./bin/alluxio-stop.sh all
下次再启动的时候就用用
./bin/alluxio-start.sh all
其他启动命令:
Master:
alluxio-start.sh master
alluxio-start.sh job_master
alluxio-start.sh proxy

worker:

1
2
3
4
alluxio-start.sh worker
alluxio-start.sh job_worker
alluxio-start.sh proxy
停止用 alluxio-stop.sh 后面跟相同服务即可

Web UI 访问地址:

http://shining-bigdata00.host.com:19999/overview

HDFS支持Alluxio

修改hdfs配置文件

cd $HADOOP_CONF_DIR

vim core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<property>
<name>fs.alluxio.impl</name>
<value>alluxio.hadoop.FileSystem</value>
<description>The Alluxio FileSystem (Hadoop 1.x and 2.x)</description>
</property>
<property>
<name>fs.AbstractFileSystem.alluxio.impl</name>
<value>alluxio.hadoop.AlluxioFileSystem</value>
<description>The Alluxio AbstractFileSystem (Hadoop 2.x)</description>
</property>
<!-- alluxio zookeeper 集群时,配置
<property>
<name>alluxio.zookeeper.enabled</name>
<value>true</value>
</property>
<property>
<name>alluxio.zookeeper.address</name>
<value>shining-bigdata00.host.com:2181</value>
</property>
-->
<!—alluxio raft 集群时配置
<property>
<name>alluxio.master.rpc.addresses</name>
<value>shining-bigdata00.host.com:19998,shining-bigdata01.host.com:19998</value>
</property>
-->

添加jar包,将alluxio-client 的jar包放到hdfs的lib加载目录下。

1
2
cp /home/hadoop/alluxio-2.8.1/client/alluxio-2.8.1-client.jar /home/hadoop/apache-hadoop/hadoop/share/hadoop/common/lib/
分发到每台datanode上

重启 hadoop 集群

之后,可以用hdfs命令查看alluxio上文件

1
hadoop fs -ls alluxio:///ys

hive 配置alluxio

copy alluxio client jar 包

1
cp /home/hadoop/alluxio-2.8.1/client/alluxio-2.8.1-client.jar $HIVE_HOME/lib/

hive 配置文件中 hive-site.xml 中添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!--
<property>
<name>alluxio.zookeeper.enabled</name>
<value>true</value>
</property>
<property>
<name>alluxio.zookeeper.address</name>
<value>shining-bigdata00.host.com:2181</value>
</property>
-->
<property>
<name>alluxio.master.rpc.addresse</name>
<value>shining-bigdata00.host.com:19998,shining-bigdata01.host.com:19998</value>
</property>

Hive 客户端和hive meta 都需要添加。



Hive中创建 alluxio 文件系统的表。

Alluxio 官网提供一个测试的hive数据,

可以在 http://grouplens.org/datasets/movielens/

下载数据文件(如:ml-100k.zip)。然后接下该文件,并且将文件u.user上传到Alluxio的ml-100k/下:

1
2
./bin/alluxio fs mkdir /ml-100k
./bin/alluxio fs copyFromLocal /path/to/ml-100k/u.user /ml-100k/

创建表:

1
2
3
4
5
6
7
8
9
10
hive> CREATE TABLE u_user (
userid INT,
age INT,
gender CHAR(1),
occupation STRING,
zipcode STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS TEXTFILE
LOCATION 'alluxio://shining-bigdata00.host.com:19998,shining-bigdata01.host.com:19998/ml-100k';

执行查询:

1
Select * from u_user limit 5;

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
./bin/alluxio copyDir conf/

./bin/alluxio formatMaster
./bin/alluxio-start.sh all SudoMount
./bin/alluxio runTests
./bin/alluxio fs leader
alluxio fs masterInfo
alluxio fsadmin report
./bin/alluxio fs ls /
alluxio fs loadMetadata -R /ys/
alluxio fs copyToLocal /ml-100k/u.user 123

alluxio fs stat /ys/hdfs_file_num/000000_0
alluxio fs setTtl /ys/hdfs_file_num/000000_0 60000
alluxio fs setTtl --action /ys/hdfs_file_num/000000_0 60000


hadoop fs -ls alluxio:///ys
感谢您的支持!