共计 9346 个字符,预计需要花费 24 分钟才能阅读完成。
OpenTSDB+Grafana 监控环境搭建
硬件 3 台服务器.192.168.1.1;192.168.1.2;192.168.1.3。64 位 CentOS6.5
1. 安装 rzsz
yum install lrzsz
2. 安装 jdk
yum -y list Java*
yum -y install java-1.7.0-openjdk*
3. 配置 JAVA_HOME
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
// 生效
source /etc/profile
// 测试 JAVA_HOME 是否生效
4. 安装 zookeeper
上传 zookeeper
cd /usr/local/src
rz
tar -zxvf zookeeper-3.4.8.tar.gz
cd /home
mkdir zookeeper
cd zookeeper
mkdir data
mkdir logs
cp -r /usr/local/src/zookeeper-3.4.8 /home/zookeeper/
cd /home/zookeeper/zookeeper-3.4.8/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 修改数据目录.
dataDir=/home/zookeeper/data
# 增加日志目录
dataLogDir=/home/zookeeper/logs
# 增加部署地址
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
# 修改 server.1 的 myid。写入 1;server.2 则写入 2
cd /home/zookeeper/data
vi myid
# 其他两台重复以上步骤
# 启动
cd /home/zookeeper/zookeeper-3.4.8/bin
./zkServer.sh start
# 关闭
./zkServer.sh stop
# 测试集群是否都启动成功
./zkCli.sh -server 192.168.1.1:2181
5. 安装 Hadoop
一、配置 hosts 文件
二、建立 hadoop 运行帐号(也可直接用 root 账号)
三、配置 ssh 免密码连入
四、下载并解压 hadoop 安装包
五、配置各种配置文件
六、向各节点复制 hadoop
七、格式化 namenode
八、启动 hadoop
九、用 jps 检验各后台进程是否成功启动
十、通过网站查看集群情况
5.1 配置 host
(1)编辑 /etc/hosts 文件
vi /etc/hosts
192.168.1.1 sms-test-001
#sms-test-001 作为 master,sms-test-002,sms-test-003 作为 slave
(2)编辑 /etc/sysconfig/network 文件
(3)Hostname设置
hostname sms-test-001
(4)输入 hostname 验证
5.2 建立 hadoop
运行账号
// 设置 hadoop 用户组
sudo groupadd hadoop
// 添加一个 hadoop 用户,此用户属于 hadoop 用户组
sudo useradd -s /bin/bash -d /home/user/hadoop -m hadoop -g hadoop
# 设置 hadoop 权限./home 目录的读写执性权限
setfacl -m u:hadoop:rwx /home
// 设置用户 hadoop 登录密码
sudo passwd hadoop
// 切换到 hadoop 用户中
su hadoop
【注】不一定要新建账号。例如我用 root 账号登录的,直接用 root 账号也可以,为了方便下面就直接用 root 账号操作。
5.3 配置 ssh 免密码连接
# 单点回环免密码登录
cd /root
ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
# 验证免密码。welcome 则表示成功
ssh localhost
# 退出用 exit
#master 连接 slave 免密码登录
#sms-test-002 服务器
cd /root/.ssh
scp root@sms-test-001:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
#sms-test-001 服务器 ssh sms-test-002。第一次需要密码,后面就可以免密码登录
#sms-test-003 服务器重复以上操作。
#sms-test-001 登录 002 和 003 可以免密码登录了,但是 002,003 登录 001 还需要手动认证。
#slave 连接 master 免密码登录。重复 master 连接 slave 的操作
6. 安装 hadoop
# 在 sms-test-001 服务器上传 hadoop
cd /usr/local/src
rz
tar -zxvf hadoop-2.6.0.tar.gz
cd /home
mkdir hadoop
cd /home/hadoop
cp -r hadoop-2.6.0 /home/hadoop/
cd hadoop-2.6.0
ll
cd etc/hadoop
ls
# 修改 hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-size.xml、mapred-site.xml、yarn-size.xml、slaves 文件
(1)配置 hadoop-env.sh 和 yarn-env.sh 的 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
(2)配置 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://sms-test-001:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>sms-test-001:2181,sms-test-002:2181,sms-test-003:2181</value>
</property>
(3)配置 hdf-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hdfs_data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hdfs_data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>sms-test-001:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
(4)配置 mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>Master.Hadoop:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>sms-test-001:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>sms-test-001:19888</value>
</property>
(5)配置 yarn-site.xml(8088 端口如果想通过外网访问,则要配置成外网地址)
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>sms-test-001:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>sms-test-001:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>sms-test-001:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>sms-test-001:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>sms-test-001:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>768</value>
</property>
(5)配置 slaves 文件
vi slaves
# 写入
# 至此 sms-test-001 的配置已完成。可以把 sms-test-001 的 hadoop 拷贝到 002 和 003 上,也可以重新上传,然后把上面七个文件的改成和 sms-test-001 的一样的就行。
(6)格式化 namenode (Master 机器上面)
cd /home/hadoop/hadoop-2.6.0/bin
./hdfs namenode -format
(7)启动 hds. 会报一个警告, 不过不影响。(注:如果安装的是 openjdk 需要启动可能失败,检查是否安装 nss)
cd /home/hadoop/hadoop-2.6.0/sbin
#sms-test-001 上执行 jps 看到有NameNode,ResourceManager,SecondaryNameNode。002 和 003 上执行 jps 看到有DataNode
(8)http://sms-test-001:8088/ 可以访问任务情况
(9)http://sms-test-001:50070/ 可以访问数据节点信息
7. 安装 hbase
在 sms-test-001 服务器上传 hbase
cd /usr/local/src
rz
tar -zxvf hbase-1.1.4-bin.tar.gz
cd /home/
mkdir hbase
cd /home/hbase
cp -r /usr/local/src/hbase-1.1.4 /home/hbase
# 修改 hbase-env.sh
cd /home/hbase/hbase-1.1.4/conf
vi hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
export HBASE_MANAGES_ZK=false
# 修改 hbase-site.xml
vi hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://sms-test-001:9000/hbase/hbase-1.1.4</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>sms-test-001:2181,sms-test-002:2181,sms-test-003:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hbase/zookeeper</value>
</property>
# 设置regionservers
sms-test-001
sms-test-002
sms-test-003
# 创建目录
cd /home/hbase
mkdir tmp
mkdir zookeeper
# 设置 hbase 环境变量
vi /etc/profile
export HBASE_HOME=/home/hbase/hbase-1.1.4
# 保存,使环境变量生效
source /etc/profile
# 分发 hbase 到其它机器,并在其上设置环境变量
# 在 sms-test-001 上启动 hbase
cd /home/hbase/hbase-1.1.4/bin
./start-hbase.sh
jps
# 可以看到HMaster,HRegionServer
# 在 002 和 003 上可以执行 jps 只能看到HRegionServer
# 访问http://sms-test-001:16030/
# 访问 http://120.25.126.184:16010/
8. 安装 Opentsdb
在 sms-test-001 服务器上传 opentsdb
cd /user/local/src
rz
tar -zxvf opentsdb-2.2.0.tar.gz
cd /home
cp -r /usr/local/src/opentsdb-2.2.0 /home
mv opentsdb-2.2.0 opentsdb
#Opentsdb 依赖 Gnuplot,它 是一个命令行的交互式绘图工具。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析
yum install gnuplot
# 安装 opentsdb
cd /home/opentsdb
./build.sh
# 注:build 过程可能失败, 安装 autoconf 和 automake(yum install autoconf;yum install automake)
# 如果报‘aclocal-1.14’ is missing on your system 则执行 sudo autoreconf -ivf
# 配置环境变量,在 shell 中执行如下命令env COMPRESSION=NONE HBASE_HOME=/home/hadoop/hadoop-2.6.0
# 建表
cd /home/opentsdb/src
vi create_table.sh
create ‘tsdb-uid’,
{NAME => ‘id’, COMPRESSION => ‘$COMPRESSION’, BLOOMFILTER => ‘$BLOOMFILTER’},
{NAME => ‘name’, COMPRESSION => ‘$COMPRESSION’, BLOOMFILTER => ‘$BLOOMFILTER’}
create ‘tsdb’,
{NAME => ‘t’, VERSIONS => 1, COMPRESSION => ‘$COMPRESSION’, BLOOMFILTER => ‘$BLOOMFILTER’}
create ‘tsdb-tree’,
{NAME => ‘t’, VERSIONS => 1, COMPRESSION => ‘$COMPRESSION’, BLOOMFILTER => ‘$BLOOMFILTER’}
create ‘tsdb-meta’,
{NAME => ‘name’, COMPRESSION => ‘$COMPRESSION’, BLOOMFILTER => ‘$BLOOMFILTER’}
# 运行 opentsdb
./build/tsdb tsd –port=4242 –staticroot=build/staticroot –cachedir=/tmp/tsdtm –zkquorum=sms-test-001:2181,sms-test-002:2181,sms-test-003:2181
# 启动参数说明
Usage: tsd –port=PORT –staticroot=PATH –cachedir=PATH
Starts the TSD, the Time Series Daemon
–async-io=true|false Use async NIO (default true) or traditionalblocking io
–auto-metric Automatically add metrics to tsdb as they are inserted. Warning:this may cause unexpected metrics to be tracked
–cachedir=PATH Directory underwhich to cache result of requests.
–flush-interval=MSEC Maximum time for which a new data point canbe buffered (default: 1000).
–port=NUM TCPport to listen on.
–staticroot=PATH Web root from which toserve static files (/s URLs).
–table=TABLE Nameof the HBase table where to store the time series (default: tsdb).
–uidtable=TABLE Name of theHBase table to use for Unique IDs (default: tsdb-uid).
–worker-threads=NUM Number for async io workers(default: cpu * 2).
–zkbasedir=PATH Path underwhich is the znode for the -ROOT- region (default: /hbase).
–zkquorum=SPEC Specificationof the ZooKeeper quorum to use (default: localhost).
## /home/opentsdb/build 下的 tsdb 运维脚本
# 添加指标
./tsdb mkmetric sms.user.submit
# 删除指标
./tsdb uid delete metrics sms.user.submit
# 查看指标
./tsdb uid grep sms.user.submit
9.grafana 安装
1.sudo yum install initscripts fontconfig
2.sudo rpm -Uvh grafana-4.0.0-1478693311beta1.x86_64.rpm
配置文件 /etc/grafana/grafana.ini
启动 service grafana-server start
关闭 service grafana-server stop
附录:
1. 磁盘挂载
fdisk -l // 先查询未挂载的硬盘名如:sdb1 等
mkfs.ext4 /dev/xvdb 开始格式化
df -h
mount /dev/xvdb /home/hdfs_data 开始挂载
vi /etc/fstab 设置自动开启启动
按格式添加
/dev/xvdb /home/hdfs_data ext4 defaults 0 0
硬盘名 需要挂载的位置 格式
卸载挂载点:
umount /home/hdfs_data
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137237.htm