前言:
安装Hbase需里了解Hbase、hadoop、zookeeper之间的版本适配情况。
- Hbase 与 hadoop
- Hbase 与 zookeeper
新版本越好,从HBase 1.0.0开始,必须ZooKeeper 3.4.x以上的版本。
一、安装hadoop
1、安装jdk
hadoop需要java环境,安装过程网上有很多,这里就不赘述了。
2、下载hadoop
官网:http://hadoop.apache.org/
这里我们下载3.1.3版的(对应也是最新版的Hbase)
wget http://mirror-hk.koddos.net/apache/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz
2、解压、配置
- 解压
sudo tar -vxzf hadoop-3.1.3.tar.gz
- 将解压后文件移动到/usr/local/目录下
sudo mv -f hadoop-3.1.3 /usr/local/hadoop
- 配置文件
刚开始hadoop配置文件相对较少,不过后面会随着项目的增大,配置文件也会越来越多。目前hadoop的代码大致可分为:core、hdfs、和map/reduce 三部分,配置文件也被分为三个。
- core- site.xml
- hdfs-site.xml
- mapred-site.xml
(1)配置hadoop-env.sh
主要配置的是JAVA_HOME这个参数
// 进入hadoop安装目录
sudo vim /etc/hadoop/hadoop-env.sh
// 设置JAVA_HOME 参数
export JAVA_HOME=/usr/lib/jvm/java
//保存退出
(2)配置 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<description> 指定ResourceManager备</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp/</value>
<description>hadoop临时文件存放地址</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://Master.hadoop:9000</value>
</property>
</configuration>
- 注:上面的 hadoop.tmp.dir 如果不配置的话默认就会用临时目录 /tmp/hadoo-hadoop 。这个目录每次重启后都会被删掉,必须重新执行format才行,否则会出错。
(2)配置 core-site.xml
- 新建文件夹data,然后再在data文件夹中新建namenode、和datanode文件夹。
<configuration>
<!-- 这个参数设置为1,因为是单机版hadoop -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
dfs.replication
参数用来指定每个文件保存多少份,单机版就设置为1就行
(3)配置marpred-side.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
3、启动测试
- 进入hadoop安装目录,将hadoop目录下所有的.sh文件赋权限
sudo chmod -R 777 *.sh (进入到相应的目录下)
- 格式化namenode
sudo ./bin/hdfs namenode –format
- 启动NameNode 和 DataNode 守护进程
sudo ./sbin/sbin/start-dfs.sh
- 验证是否启动成功
sudo jps
出现下面结果表示安装成功
8147 Jps
7701 QuorumPeerMain
7274 NameNode
7551 SecondaryNameNode
二、安装zookeeper
1、下载安装
sudo wget http://mirror-hk.koddos.net/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5.tar.gz
- 解压
sduo tar -vxzf zookeeper-3.5.5.tar.gz
- 将解压后的目录移动到/usr/local目录下
sudo mv -f zookeeper-3.5.5 /usr/local/zookeeper
- 配置zookeeper
进入安装目录,
(1)创建文件夹用来存放zookeeper数据和日志
mkdir data
mkdir log
(2)编辑配置文件
sudo mv conf/zoo_sample.cfg zoo.cfg
sudo vim conf/zoo.cfg
参考配置:
tickTime=2000 #zookeeper 服务器心跳时间,单位为ms
initLimit=10 #投票选举新 leader 的初始化时间
syncLimit=5 #leader 与 follower 心跳检测最大容忍时间,响应超过 tickTime * syncLimit,认为 leader 丢失该 follower
clientPort=2181 #端口
dataDir=/data #数据目录
dataLogDir=/log #日志目录
(3)启动zookeeper
sudo ./bin/zkServer.sh start
出现稀下图所示,则那表示安装成功
三、安装Hbase
1、下载安装
sudo wget https://www.apache.org/dyn/closer.lua/hbase/2.1.8/hbase-2.1.8-bin.tar.gz
- 解压
sudo tar -vxzf hbase-2.1.8-bin.tar.gz
sudo mv -f hbase-2.1.8-bin hbase
- 配置hbase-env.sh
sudo vim conf/hbase-env.sh
//设置如下参数
export JAVA_HOME=/usr/lib/jvm/java
export HBASE_MANAGES_ZK=flase #不用Hbase内部zookeeper
说明:
- Hbase依赖于zookeeper,所有的节点和客户端都必须能够访问- zookeeper。
- HBase的安装包里面有自带的ZooKeeper,BASE_MANAGES_ZK环境变量用来设置是使用HBase默认自带的 Zookeeper还是使用独立的ZooKeeper。
- HBASE_MANAGES_ZK为 false 时使用独立的.
- HBASE_MANAGES_ZK为 true 时表示使用默认自带的,让Hbase启动的时候同时也启动自带的ZooKeeper。
- 配置habse-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>file:///home/yanrong/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>file:///home/yanrong/hbase/zoo</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
</configuration>
5.启动hbase
进入安装目录
sudo ./bin/start-hbase.sh
查看是否启动成功
sudo jps
出现下图表示启动成功
四、Hbase远程连接:
1、配置linux的hostname
sudo vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
设置完需要重启,如果不方便重启的话,可执行hostname master
命令暂时设置一个hostname
2、配置linux的host
将ip地址和hostname进行映射
sudo vim /ect/hosts
2、配置windows的hosts文件
host路径:C:\Windows\System32\drivers\etc\hosts
经过以上配置后就可以实现java API远程访问Hbase了