最近工作涉及到Hbase的使用,搭建环境是第一步,折腾了2天,终于搞定了,特意记录下来。
1. 主机
搭建分布式环境,准备3台主机
主机名 | IP |
node1 | 1.1.12.23 |
node2 | 1.1.12.45 |
node3 | 1.1.12.48 |
2. 软件准备
- jdk-8u161-linux-x64.tar.gz
- hadoop-2.7.1.tar.gz
- zookeeper-3.3.6.tar.gz
- hbase-1.2.6-bin.tar.gz
3. 安装JDK
将jdk解压到目录/usr/java/并设置java环境变量
root@node1:/usr/java# tar -zxvf jdk-8u161-linux-x64.tar.gz
root@node1:/usr/java# ls
jdk1.8.0_161
root@node1:/usr/java# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_161/
export JRE_HOME=JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
root@node1:/usr/java# source /etc/profile
root@node1:/usr/java# java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
4. 安装Hadoop
Hbase在分布式环境下依赖于HDFS,需要先安装Hadoop。
1. 创建用户和组(每台主机)
添加hadoop用户和组,主要原因是为了控制安全权限。
root@node1:~# groupadd hadoop
root@node1:~# useradd -m -g hadoop hadoop
root@node1:~# passwd hadoop
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@node1:~# su - hadoop
hadoop@node1:~$
2. 准备目录并设置权限(每台主机)
hadoop@node1:~$ mkdir app #hadoop,hbase,zookeeper的安装目录
hadoop@node1:~$ mkdir data #hadoop,hbase,zookeeper的数据目录
hadoop@node1:~$ ls -l
total 20
drwxr-xr-x 5 hadoop hadoop 4096 4月 11 16:19 app
drwxrwxr-x 5 hadoop hadoop 4096 4月 11 16:09 data
-rw-r--r-- 1 hadoop hadoop 8980 4月 20 2016 examples.desktop
若app与data目录的权限不是hadoop,则应设置权限:
root@node1:~# chown -R hadoop:hadoop /home/hadoop/app/ #data目录类似
3. 配置hosts(每台主机)
root@node1:~# vim /etc/hosts
127.0.0.1 localhost
1.1.12.23 node1
1.1.12.45 node2
1.1.12.48 node3
4. SSH 免密登录 (每台主机)
hadoop@node1:~$ ssh-keygen -t rsa
一路回车,然后在当前用户目录下的.ssh目录中会成成公钥文件(id_rsa.pub)和私钥文件(id_rsa).
分发公钥
hadoop@node1:~$ ssh-copy-id -i .ssh/id_rsa.pub hadoop@node1
5. 服务器功能规划
node1 | node2 | node3 | |
NameNode | yes | ||
DataNode | yes |