机器需求
其中,master和zk可以共用机器。
alluxio源码编译打包
- 本地编译打包
工程根目录下的README文件:
编译:
mvn -T 2C clean install -DskipTests -Dmaven.javadoc.skip -Dfindbugs.skip -Dcheckstyle.skip -Dlicense.skip -Dchecksum.skip -Phadoop-2 -Dhadoop.version=2.6.0-cdh5.14.4
打包:
./dev/scripts/generate-tarballs single -hadoop-distribution=hadoop-2.6 -mvn-args "-Pspark,-Dhadoop.version=2.6.0-cdh5.14.4,-DskipTests,-Dmaven.javadoc.skip,-Dfindbugs.skip,-Dcheckstyle.skip,-Dlicense.skip,-Dchecksum.skip"
在工程根目录下执行上面的编译和打包命令,最后在根目录下生成“alluxio-1.8.1.tar.gz”
将生成的alluxio包上传到要进行部署的服务器上。
部署流程
- 服务器初始化
初始化系统参数,在所有服务器上执行:
#!/bin/bash
s
echo 'vm.swappiness=0' >> /etc/sysctl.conf
sysctl -p
useradd hdfs
useradd alluxio
mkdir /var/log/alluxio /var/log/zookeeper /var/lib/zookeeper
chown -R hdfs:hdfs /var/log/alluxio /var/log/zookeeper /var/lib/zookeeper
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
swapoff -a
cat << EOF >>/etc/sysctl.conf
vm.max_map_count = 262140
kernel.pid_max = 229376
net.core.somaxconn = 32768
net.ipv4.tcp_retries2 = 5
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_time = 120
net.ipv4.tcp_max_tw_buckets = 10000
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_wmem = 8192 131072 16777216
net.ipv4.tcp_rmem = 32768 131072 16777216
net.ipv4.tcp_max_syn_backlog = 32768
net.ipv4.tcp_syncookies = 0
EOF
sysctl -p
yum install jdk1.8-1.8.0_192-fcs.x86_64 -y
- 配置环境变量
添加环境变量,修改/etc/profile,在所有服务器执行:
export JAVA_HOME=/usr/java/latest
export PATH=/opt/bigdata/app/zookeeper/bin:$JAVA_HOME/bin:/opt/bigdata/app/alluxio/bin:/usr/share/jmxtrans/bin:$PATH
export ALLUXIO_CONF_DIR=/opt/bigdata/conf/alluxio/conf
- worker节点——存储目录初始化
初始化worker服务器,在worker机器上执行:
#!/bin/bash
mkdir /mnt/ramdisk/
mkdir /var/log/alluxio
useradd hdfs
useradd alluxio
mount -t ramfs -o size=220g ramfs /mnt/ramdisk/
chown -R hdfs:hdfs /mnt/ramdisk/ /var/log/alluxio
chown -R hdfs:hdfs /data*
-
部署zk
…
部署并启动完成后,检查进程是否运行 -
部署alluxio
在所有服务器上部署,为了方便管理,配置文件与包文件可以独立开来。
解压前面上传的alluxio包,将软链指到新解压的alluxio包,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RmBN1USK-1593931454046)(quiver-image-url/6527F9FC1A680C869EBC3A72BD967772.jpg =691x148)]
-
alluxio-env.sh,根据集群规模和机器配置调整进程jvm参数,不做叙述
-
alluxio-site.properties,alluxio主配置文件,理论上一个集群的所有机器配置保持一致,除非集群中的worker有不同机型,需要分别进行管理,可自行查看线上配置,需要修改的配置项有:
alluxio.zookeeper.address #需要修改成对应的zk地址,每个集群必须独立
alluxio.master.journal.folder #修改成对应的地址,存放集群journallog,每个集群必须独立
其它配置项可根据集群实际情况考虑是否需要修改
- 初始化集群
以上部署以及配置完成后,在集群其中一台服务器执行初始化(此操作会格式化集群,切记不要对线上集群进行操作,并且保证alluxio.master.journal.folder配置正确)
su - hdfs
alluxio format
- 启动集群
启动master:
alluxio-start.sh master
启动worker:
alluxio-start.sh worker NoMount