Alluxio 1.8.0 Release

1.8.0 Release Notes

We are excited to announce the release of Alluxio v1.8.0. This release provides significant usability improvements. Highlights for the release are listed below.

Downloads for this release can be found here: Downloads

Highlights

Enhanced Metrics

Alluxio 1.8 vastly increases the coverage of metrics reported by the system. All RPC requests will be recorded with an associated user, resulting in a detailed set of machine consumable metrics for monitoring the Alluxio cluster. Alluxio continues to use the CodaHale library for metrics and provides a number of common sinks out of the box, including Graphite, CSV, and Prometheus.

System metrics also continue to be viewable from the metrics/json UI end point. Below is an example of the new per-user RPC metrics collected

"Master.CreateFile.User:ec2-user": {
  "count": 332928,
  "max": 88.05187699999999,
  "mean": 11.21973939685654,
  "min": 0.041839,
  "p50": 11.015314,
  "p75": 11.825085999999999,
  "p95": 15.304113,
  "p98": 17.424474,
  "p99": 18.278126,
  "p999": 88.05187699999999,
  "stddev": 3.5377795650097585,
  "m15_rate": 5876.613279694217,
  "m1_rate": 2988.5458620836016,
  "m5_rate": 5399.19713655201,
  "mean_rate": 3542.67432971973,
  "duration_units": "milliseconds",
  "rate_units": "calls/second"
}

In addition to system metrics, Alluxio 1.8 also includes human readable cluster metrics displayed in the UI. These metrics are a good signal for the overall utilization of the Alluxio cluster, including stats such as the number of bytes served from Alluxio storage and bytes served from under storages.

Simplified Configuration Management

Alluxio v1.8 simplifies the configuration management by supporting cluster-wide default configuration. As a result, different client applications such as Alluxio Shell commands, Spark jobs, or MapReduce jobs can initialize their configuration with the cluster-wide configuration values retrieved from masters, including client-side settings (e.g., alluxio.user.*) or network transport settings (such as alluxio.security.authentication.type).

For example, Alluxio property alluxio.user.file.writetype.default is default to MUST_CACHE which only writes to Alluxio space. In an Alluxio cluster deployment where data persistency is preferred and all jobs should to write through to both UFS and Alluxio, with Alluxio v1.8 or later the admin can simply add alluxio.user.file.writetype.default=CACHE_THROUGH to the master-side ${ALLUXIO_HOME}/conf/alluxio-site.properties. After restarting the cluster, all the new jobs will automatically set property alluxio.user.file.writetype.default to CACHE_THROUGH as its default value.

See the documentation for more details.

fsadmin CLI

A new CLI has been added to help with monitoring and debugging from the command line. The CLI exposes most of the information available in the web UI.

Usage: alluxio fsadmin [generic options]
	 [backup [directory] [--local]]                            
	 [doctor [category]]                                       
	 [getBlockInfo [blockId]]                                  
	 [report [category] [category args]]                       
	 [ufs [--mode <noAccess/readOnly/readWrite>] <ufsPath>]

See the documentation for more details

Configuration Checking

v1.8 adds a server-side configuration checking to help discover configuration errors and warnings. Suspected configuration errors are reported through the web UI, doctor CLI, and master logs.

Users can also run the fsadmin doctor command to get the same results.

$ /bin/alluxio fsadmin doctor configuration
Server-side configuration errors (those properties are required to be identical):
key: key1
    value: hdfs://name2:port2 (masterHostname3:masterPort, masterHostname4:masterPort)
    value: hdfs://name1:port1 (masterHostname1:masterPort, masterHostname2:masterPort)
key: key2
    value: ErrorValue2 (masterHostname1:masterPort, masterHostname3:masterPort)
    value: ErrorValue1 (masterHostname4:masterPort, masterHostname2:masterPort)

Server-side configuration warnings (those properties are recommended to be identical):
key: key3
    value: /a/b/c (workerHostname1:workerPort, workerHostname2:workerPort)
    value: /d/e/f (masterHostname1:port1, masterHostname2:port2)
key: key4
    value: no value set (workerHostName1:workerPort, workerHostname2:workerPort)
    value: WarnValue1 (workerHostname1:workerPort, workerHostName3:workerPort)

Configuration warnings can also be seen in the master logs.

2018-06-29 13:46:07,368 ERROR ServerConfigurationChecker - Inconsistent configuration detected. Only a limited set of inconsistent configuration will be shown here. For details, please visit Alluxio web UI or run fsadmin doctor CLI.
Errors: [InconsistentProperty{key=key1, values=hdfs://name2:port2 (masterHostname3:masterPort, masterHostname4:masterPort), hdfs://name1:port1 (masterHostname1:masterPort, masterHostname2:masterPort)}, InconsistentProperty{key=key2, values=ErrorValue2 (masterHostname1:masterPort, masterHostname3:masterPort), ErrorValue1 (masterHostname4:masterPort, masterHostname2:masterPort)}]
Warnings: [InconsistentProperty{key=key3, values=/a/b/c (workerHostname1:workerPort, workerHostname2:workerPort), /d/e/f (masterHostname1:port1, masterHostname2:port2)}], [InconsistentProperty{key=key4, values=no value set (workerHostname1:workerPort, workerHostName3:workerPort), WarnValue2 (workerHostName1:workerPort, workerHostname2:workerPort)}]

Journal Backup and Restore

Users can now take journal backups and re-apply them at a later time. Administrators can take backups by running

$ bin/alluxio fsadmin backup
Successfully backed up journal to /alluxio_backups/alluxio-backup-2018-06-28-1530226970157.gz

To restore from a backup, stop the cluster, format the cluster, and start with the -i flag

$ bin/alluxio-stop.sh all
$ bin/alluxio format
$ bin/alluxio-start.sh -i /alluxio_backups/alluxio-backup-2018-06-28-1530226970157.gz all

See the docs for further details

Functionality changes

There were a few functionality changes that users should be aware of when upgrading to 1.8.0.

Async eviction enabled by default

Alluxio 1.8 sets alluxio.worker.tieredstore.reserver.enabled to true by default. The worker will automatically ensure it has a certain amount of available local storage by kicking off eviction internally. This greatly improves bursty write workloads at the cost of under utilizing the Alluxio storage by a small amount.

For more details, see the documentation page. NoMount by default instead of SudoMount

In 1.8.0, alluxio-start.sh script now defaults to the NoMount option instead of SudoMount. The change implies that worker startup will not attempt to mount a ramdisk by default. This new default prevents accidental formatting of the ramdisk on restart. Either explicitly invoke the alluxio-mount.sh script or pass in the SudoMount option to mount a ramdisk on Alluxio workers.

Rename tiered_identity.sh to alluxio-locality.sh

In 1.7.0, Alluxio would search the conf directory for a file named tiered_identity.sh, executing it if in exists to determine locality information about the local node. In 1.8.0, this file name is changing to alluxio-locality.sh, and Alluxio now supports discovering this file from the classpath, consistent with how we search for the alluxio-site.properties configuration file.

Acknowledgements

We would like to thank the following members of the community for their contributions to Alluxio 1.8.0. The release would not have been possible without your efforts!

Abhijeet dhumal, Adit Madan, Aegon1113, AlexYinHan, Andrew Audibert, Arcadia-Zyx, BicunXu, Bin Fan, Brian KimJohnson, Calvin Jia, CbcWestwolf, Channing, Cheng Chang, Cloudwisever, Constela, David Zhu, DeadFire, Deqm525, ElephantNote, Elzat, EnzoDuan, FREELANCER2017, FancyYan123, GasEunaM, Gene Pang, Giovanni Liva, GodLikeGXS, Hao Kailong, Haodong Tang, Happy-kai, HuangWenJ, Hugues Malphettes, HumanZhong, Jackbrocp, Kevin Chen, Limelatte, LinluD, Liu Liu, LuQQiu, LunitFare, MaoShunzi, Miaozu-Humphrey, Miklos Szots, Mohamed Aboelhassan, MoonLiY, Mr-Ace-1997, NJU-Jet, NJU-Justice, NaviS1mple, PCJ600, Pavel Simó, RailgunHamster, Rico Chiu, Roy Chan, S847659045, Sean, Shailesh cheke, Shawy Geng, Shuai Zhang, Siva Santhalingam, SkyeWoo, Sunny Wang, Tina-XX, Vivian004, WY, Wandayu, WangYuxin, Weiwei Hu, Wu Weiwei, Xu Lijun, YMing-Li, Yanqin Jin, Yi-Jiang Yang, YinQiaoyi, Yuan, Yuha, Yunpeng Ding, Yupeng Fu, Yupeng Fu, Yuting Chen, ZhangFanruo, ZhengYunhui, Zhixiang Zhang, ZhuoerXXXXX, Ziqian Xu, anwaroff, asinmhk, bf8086, biaos, brucewayne0, cathy2z, challvy, chen1234yue, chh15, chy123chy, cz, fishpear, fy, gaofengning, gossac, hchdjp, homework, ilan xu, irishaha, jarson, kiking, liangyuegucheng, lizhihao6, lule, luyiming, lw66, madanadit, marshtompsxd, mbl, mecthew, moon19971102, murong00, newnius, nimrodzhang, njuyangliu, pengdejia, qianlanwyd, qxyyqx, rubychen0611, snow-rain, tangruize, tedyu, thunderning, uronce-cc, waxnkw, wcr7966, wlp22, wxdwar, xchappy, xianyu-w, xiaomi97, xmh645214784, yezhenyu, yousayyouknow, yzfeng, zengbingjie, zengjiemin, zhangmang, zhangnew, zhangyi, zhangyi, zhangzhiting, zhouguang1105, zx8054, 汤沁予, 蒋雨霖, 李书城, 罗一刀