必备的组件:
gcc
gcc-c++
glibc-devel
make
pam-devel
使用yum安装相关组件
sudo yum install gcc gcc-c++ glibc-devel make git pam-devel
开始安装
wget http://s3.amazonaws.com/downloads.basho.com/riak/2.0/2.0.0/riak-2.0.0.tar.gz
tar zxvf riak-2.0.0.tar.gz
cd riak-2.0.0
make rel
修改全局配置:
vi /etc/riak/riak.conf
%% -*- mode: erlang;erlang-indent-level: ;indent-tabs-mode: nil -*- %% ex: ft=erlang ts= sw= et [ %% Riak Client APIs config {riak_api, [ %% pb_backlog is the maximum length to which the queue of pending %% connections may grow. If . %% By . If you anticipate a huge number of %% connections being initialised *simultaneously*, set this number %% higher. %% {pb_backlog, }, %% pb is a list of IP addresses and TCP ports that the Riak %% Protocol Buffers interface will bind. {pb, [ { } ]} ]}, %% Riak Core config {riak_core, [ %% Default location of ringstate {ring_state_dir, "/var/lib/riak/ring"}, %% Default ring creation size. Make sure it , %% e.g. , , , , , etc %{ring_creation_size, }, %% http is a list of IP addresses and TCP ports that the Riak %% HTTP interface will bind. {http, [ { } ]}, %% https is a list of IP addresses and TCP ports that the Riak %% HTTPS interface will bind. %{https, [{ }]}, %% Default cert and key locations for https can be overridden %% with the ssl config variable, for example: %{ssl, [ % {certfile, "/etc/riak/cert.pem"}, % {keyfile, "/etc/riak/key.pem"} % ]}, %% riak_handoff_port is the TCP port that Riak uses for %% intra-cluster data handoff. {handoff_port, }, %% To encrypt riak_core intra-cluster data handoff traffic, %% uncomment the following line and edit its path to an %% appropriate certfile and keyfile. (This example uses a %% single file with both items concatenated together.) %{handoff_ssl_options, [{certfile, "/tmp/erlserver.pem"}]}, %% DTrace support %% Do not enable 'dtrace_support' unless your Erlang/OTP %% runtime is compiled to support DTrace. DTrace is %% available in R15B01 (supported by the Erlang/OTP %% official source package) and in R14B04 via a custom %% source repository & branch. {dtrace_support, false}, %% Health Checks %% If disabled, health checks registered by an application will %% be ignored. NOTE: this option cannot be changed at runtime. %% To re-enable, the setting must be changed and the node restarted. %% NOTE: As of Riak , health checks are deprecated as they %% may interfere with the new overload protection mechanisms. %% If there is a good reason to re-enable them, you must uncomment %% this line and also add an entry in the riak_kv section: %% {riak_kv, [ ..., {enable_health_checks, true}, ...]} %% {enable_health_checks, true}, %% Platform-specific installation paths (substituted by rebar) {platform_bin_dir, "/usr/sbin"}, {platform_data_dir, "/var/lib/riak"}, {platform_etc_dir, "/etc/riak"}, {platform_lib_dir, "/usr/lib64/riak/lib"}, {platform_log_dir, "/var/log/riak"} ]}, %% Riak KV config {riak_kv, [ %% Storage_backend specifies the Erlang module defining the storage %% mechanism that will be used on this node. {storage_backend, riak_kv_bitcask_backend}, %% raw_name is the first part of all URLS used by the Riak raw HTTP %% interface. See riak_web.erl and raw_http_resource.erl for %% details. %{raw_name, "riak"}, %% Enable active anti-entropy subsystem + optional debug messages: %% {anti_entropy, {on|off, []}}, %% {anti_entropy, {on|off, [debug]}}, {anti_entropy, {on, []}}, %% Restrict how fast AAE can build hash trees. Building the tree %% for a given partition requires a full scan over that partition's %% data. Once built, trees stay built until they are expired. %% Config is of the form: %% {num-builds, per-timespan-in-milliseconds} %% Default build per hour. {anti_entropy_build_limit, {, }}, %% Determine how often hash trees are expired after being built. %% Periodically expiring a hash tree ensures the on-disk hash tree %% data stays consistent with the actual k/v backend data. It also %% helps Riak identify silent disk failures and bit rot. However, %% expiration is not needed for normal AAE operation and should be %% infrequent for performance reasons. The time is specified in %% milliseconds. The week. {anti_entropy_expire, }, %% Limit how many AAE exchanges/builds can happen concurrently. {anti_entropy_concurrency, }, %% The tick determines how often the AAE manager looks for work %% to do (building/expiring trees, triggering exchanges, etc). %% The seconds. Lowering this value will %% speedup the rate that all replicas are synced across the cluster. %% Increasing the value is not recommended. {anti_entropy_tick, }, %% The directory where AAE hash trees are stored. {anti_entropy_data_dir, "/var/lib/riak/anti_entropy"}, %% The LevelDB options used by AAE to generate the LevelDB-backed %% on-disk hashtrees. {anti_entropy_leveldb_opts, [{write_buffer_size, }, {max_open_files, }]}, %% mapred_name is URL used to submit map/reduce requests to Riak. {mapred_name, "mapred"}, %% mapred_2i_pipe indicates whether secondary-index %% MapReduce inputs are queued in parallel via their own %% pipe ('true'), or serially via a helper process %% ('false' or undefined). Set to 'false' or leave %% undefined during a rolling upgrade from 1.0. {mapred_2i_pipe, true}, %% Each of the following entries control how many Javascript %% virtual machines are available for executing map, reduce, %% pre- and post-commit hook functions. {map_js_vm_count, }, {reduce_js_vm_count, }, {hook_js_vm_count, }, %% js_max_vm_mem is the maximum amount of memory, in megabytes, %% allocated to the Javascript VMs. If unset, the default is %% 8MB. {js_max_vm_mem, }, %% js_thread_stack is the maximum amount of thread stack, in megabyes, %% allocate to the Javascript VMs. If unset, the default is 16MB. %% NOTE: This is not the same as the C thread stack. {js_thread_stack, }, %% js_source_dir should point to a directory containing Javascript %% source files which will be loaded by Riak when it initializes %% Javascript VMs. %{js_source_dir, "/tmp/js_source"}, %% http_url_encoding determines how Riak treats URL encoded %% buckets, keys, and links over the REST API. When set to 'on' %% Riak always decodes encoded values sent as URLs and Headers. %% Otherwise, Riak defaults to compatibility mode where links %% are decoded, but buckets and keys are not. The compatibility %% mode will be removed in a future release. {http_url_encoding, on}, %% Switch to vnode-based vclocks rather than client ids. This %% significantly reduces the number of vclock entries. %% Only set true if *all* nodes in the cluster are upgraded to 1.0 {vnode_vclocks, true}, %% This option toggles compatibility of keylisting with 1.0 %% and earlier versions. Once a rolling upgrade to a version %% > 1.0 is completed for a cluster, this should be set to %% true for better control of memory usage during key listing %% operations {listkeys_backpressure, true}, %% This option specifies how many of each type of fsm may exist %% concurrently. This is for overload protection and is a new %% mechanism that obsoletes 1.3's health checks. Note that this number %% represents two potential processes, so +P in vm.args should be at %% least 3X the fsm_limit. {fsm_limit, }, %% Uncomment to make non-paginated results be sorted the %% same way paginated results are: by term, then key. %% In Riak , all results were sorted this way %% by default, which can adversely affect performance in some cases. %% Setting this to true emulates that behavior. %% {secondary_index_sort_default, true}, %% object_format controls which binary representation of a riak_object %% is stored on disk. %% Current options are: v0, v1. %% v0: Original erlang:term_to_binary format. Higher space overhead. %% v1: New format for more compact storage of small values. {object_format, v1} ]}, %% Riak Search Config {riak_search, [ %% To enable Search functionality set this 'true'. {enabled, false} ]}, %% Merge Index Config {merge_index, [ %% The root dir to store search merge_index data {data_root, "/var/lib/riak/merge_index"}, %% Size, in bytes, of the in-memory buffer. When this %% threshold has been reached the data is transformed %% into a segment file which resides on disk. {buffer_rollover_size, }, %% Overtime the segment files need to be compacted. %% This is the maximum number of segments that will be %% compacted at once. A lower value will lead to %% quicker but more frequent compactions. {max_compact_segments, } ]}, %% Bitcask Config {bitcask, [ %% Configure how Bitcask writes data to disk. %% erlang: Erlang's built-in file API %% nif: Direct calls to the POSIX C API %% %% The NIF mode provides higher throughput for certain %% workloads, but has the potential to negatively impact %% the Erlang VM, leading to higher worst-case latencies %% and possible throughput collapse. {io_mode, erlang}, {data_root, "/var/lib/riak/bitcask"} ]}, %% eLevelDB Config {eleveldb, [ {data_root, "/var/lib/riak/leveldb"} ]}, %% Lager Config {lager, [ %% What handlers to install with what arguments %% The defaults for the logfiles are to rotate the files when %% they reach 10Mb or at midnight, whichever comes first, and keep %% the last rotations. See the lager README for a description of %% the time rotation format: %% https://github.com/basho/lager/blob/master/README.org %% %% If you wish to disable rotation, you can either %% and the rotation time to -tuple that only %% consists of {Logfile, Level}. %% %% If you wish to have riak log messages to syslog, you can use a handler %% like this: %% {lager_syslog_backend, ["riak", daemon, info]}, %% {handlers, [ {lager_file_backend, [ {, }, {, } ]} ] }, %% Whether to write a crash log, and where. %% Commented/omitted/undefined means no crash logger. {crash_log, "/var/log/riak/crash.log"}, %% Maximum size {crash_log_msg_size, }, %% Maximum size of the crash log in bytes, before its rotated, set %% to to disable rotation - {crash_log_size, }, %% What time to rotate the crash log - default is no time %% rotation. See the lager README for a description of this format: %% https://github.com/basho/lager/blob/master/README.org {crash_log_date, "$D0"}, %% Number of rotated crash logs to keep, means keep only the %% current one - {crash_log_count, }, %% Whether to redirect error_logger messages into lager - defaults to true {error_logger_redirect, true}, %% maximum number of error_logger messages to handle in a second %% lager shipped with a limit of , which is a little low for riak's startup {error_logger_hwm, } ]}, %% riak_sysmon config {riak_sysmon, [ %% To disable forwarding events of a particular type, use a %% limit of . {process_limit, }, {port_limit, }, %% Finding reasonable limits for a given workload is a matter %% of experimentation. %% NOTE: Enabling the 'gc_ms_limit' monitor (by setting non-zero) %% can cause performance problems on multi-CPU systems. {gc_ms_limit, }, {heap_word_limit, }, %% Configure the following items to 'false' to disable logging %% of that event type. {busy_port, true}, {busy_dist_port, true} ]}, %% SASL config {sasl, [ {sasl_error_logger, false} ]}, %% riak_control config {riak_control, [ %% Set to false to disable the admin panel. {enabled, false}, %% Authentication style used for access to the admin %% panel. Valid styles are 'userlist' <TODO>. {auth, userlist}, %% If auth is set to 'userlist' then this is the %% list of usernames and passwords for access to the %% admin panel. {userlist, [{"user", "pass"} ]}, %% The admin panel is broken up into multiple %% components, each of which is enabled or disabled %% by one of these settings. {admin, true} ]} ].
/etc/init.d/riak restart
web访问:
http://192.168.1.111:8098/riak/test