1.根据官方文档,安装hbase依赖项的版本可以选择JDK1.8, zookeeper 3.4. x, hadoop 2.7.7, Hbase hbase-2.0.2-bin.tar.gz
2. 安装zookeeper(standalone模式)
从https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 下载 zookeeper 3.4.x
将下载的zookeeper-3.4.10.tar.gz解压缩,复制一份/conf/zoosample.cfg 重命名为zoo.cfg
3.修改zoo.cfg 文件的datadir
4.启动zookeeper zkServer.sh start
5 检查zookeeper的状态 zkServer.sh status
此时出现了一个错误
原来是log的目录设置问题
更新log目录设置后重启服务,发现还是不行,不过幸好log文件生成了 原来是JAVA_HOME的问题
更新JAVA_HOME后服务恢复正常
5 安装Hadoop
从https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/ 下载 hadoop-2.7.7.tar.gz
6 拷贝tar文件到 /usr/local/bin 并解压缩 tar -xzvf hadoop-2.7.7.tar.gz
7 创建一个新账户 useradd hadoop
8 切换到hadoop账户生成sshkey
ssh-keygen -t rsa
9 使用此密钥启用SSH访问本地计算机
cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys
10 测试ssh
ssh localhost
11 更新环境变量
vim /etc/profile
添加
export HADOOP_HOME=/usr/local/bin/hadoop-2.7.7
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
12 更新core-site.xml
<property>
13 复制一份 mapred-site.xml.template文件
并更新配置
<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>
14 更新 hdfs-site.xml
<property>
出现错误JAVA_HOME not set
纳尼?不是在/etc/profile里设置过了么?
继续设置/etc/bashrc
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/jre
重新启动
成功
<property>
<name>hbase.rootdir</name>
<value>hdfs://namenode.example.org:8020/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2182</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
<description>Comma separated list of servers in the ZooKeeper Quorum.
For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com".
By default this is set to localhost for local and pseudo-distributed modes
of operation. For a fully-distributed setup, this should be set to a full
list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh
this is the list of servers which we will start/stop ZooKeeper on.
</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/mnt/zkdata</value>
<description>Property from ZooKeeper's config zoo.cfg.
The directory where the snapshot is stored.
</description>
</property>
20 编辑profile /etc/profile 添加HBASE_HOME环境变量
export HBASE_HOME=/usr/local/bin/hbase-2.0.2/
export PATH=${HBASE_HOME}/bin:${HBASE_HOME}/sin:$PATH
21 启用环境变量
source /etc/profile
22 启动Hbase
start-hbase.sh
似乎没启动成功
查看hbase目录下的 log
原来是host设置问题
更改host设置 vim /conf/hbase-site.xml
结果还是报错
Could not start ZK at requested port of 2181. ZK was started at port: 2182.
查看端口2181占用情况 netstat -nap | grep 2181 发现是Java进程,看不出来具体是什么
因此怀疑是Hbase启用了自带的zookeeper 导致默认端口占用冲突
23 修改 hbase-env.sh文件 禁用自带的zookeeper
export HBASE_MANAGES_ZK=false
修改hbase-site.xml
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
24 启动Hbase 和shell
start-hbase.sh
启动shell
hbase shell
启动成功