如何在 Ubuntu (HBase 安装)
Apache HBase 安装模式
Apache HBase 有三种安装模式。下面提到了这些模式的特点。
1)独立模式安装(不依赖Hadoop系统)
- 这是HBase的默认模式
- 它针对本地文件系统运行
- 它不使用 Hadoop的 高密度文件系统
- 仅 HMaster 守护进程可以运行
- 不推荐用于生产环境
- 在单个 JVM 中运行
2)伪分布式模式安装(单节点Hadoop系统+HBase安装)
- 它继续运行 Hadoop HDFS
- 所有守护进程都在单节点运行
- 推荐用于生产环境
3)完全分布式模式安装(MultinodeHadoop环境+HBase安装)
- 它继续运行 Hadoop HDFS
- 所有守护进程将在集群中的所有节点上运行
- 强烈推荐用于生产环境
对于 Hadoop 的安装,请参考此 URL 服务
如何下载 HBase tar 文件稳定版本
步骤1) 转到链接 点击这里 下载HBase。它将打开如下所示的网页。
步骤2) 选择稳定版本如下图1.1.2版本
步骤3) 单击 hbase-1.1.2-bin.tar.gz。它将下载 tar 文件。将 tar 文件复制到安装位置。
如何在 Ubuntu 独立模式
以下是 HBase 独立模式安装的分步过程 Ubuntu:
步骤 1)输入以下命令
将 hbase-1.1.2-bin.tar.gz 放在 /home/hduser 中
步骤2)执行命令$tar -xvf hbase-1.1.2-bin.tar.gz解压。
它将解压缩内容,并在 /home/hduser 位置创建 hbase-1.1.2
步骤3)打开hbase-env.sh
如下所示打开 hbase-env.sh 并在位置中提及 JAVA_HOME 路径。
步骤 4)打开文件并输入路径
打开 ~/.bashrc 文件并输入 HBASE_HOME 路径,如下所示
导出 HBASE_HOME=/home/hduser/hbase-1.1.1 导出 PATH=$PATH:$HBASE_HOME/bin |
步骤 5)在文件中添加属性
打开 hbase-site.xml 并将以下属性放入文件中
hduser@ubuntu$ gedit hbase-site.xml(代码如下)
<property> <name>hbase.rootdir</name> <value>file:///home/hduser/HBASE/hbase</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/HBASE/zookeeper</value> </property>
这里我们放置两个属性
- 一个用于 HBase 根目录,
- 第二个数据目录对应于ZooKeeper。
所有 HMaster 和 ZooKeeper 活动都指向这个 hbase-site.xml。
步骤 6)提及 IP
打开 /etc. 中的 hosts 文件。位置并输入如下所示的 IP。
步骤7)现在在 hbase-1.1.1/bin 位置运行 Start-hbase.sh,如下所示。
我们可以通过jps命令检查HMaster是否正在运行。
步骤8)启动HBase Shell
HBase shell 可以通过使用“hbase 外壳” 它将进入交互式 shell 模式,如下面的屏幕截图所示。一旦进入 shell 模式,我们就可以执行所有类型的命令。
独立模式不需要启动Hadoop守护进程,HBase可以独立运行。
HBase伪分布式安装模式
这是 Apache HBase 安装的另一种方法,称为伪分布式安装模式。
以下是通过伪分布式模式安装HBase的步骤:
步骤1) 将 hbase-1.1.2-bin.tar.gz 放在 /home/hduser 中
步骤2) 通过执行命令$tar -xvf hbase-1.1.2-bin.tar.gz 进行解压。它将解压内容,并在 /home/hduser 位置创建 hbase-1.1.2
步骤3) 如下所示打开 hbase-env.sh,并在位置中提及 JAVA_HOME 路径和 Region 服务器的路径,然后导出命令,如下所示
步骤4) 在此步骤中,我们将打开 ~/.bashrc 文件并输入 HBASE_HOME 路径,如屏幕截图所示。
步骤5) 打开 HBase-site.xml 并在文件中提及以下属性。(代码如下)
<property> <name>hbase.rootdir</name> <value>hdfs://localhost:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hduser/hbase/zookeeper</value> </property>
- 在此属性中设置 Hbase 根目录
- 对于分布式设置,我们必须设置此属性
- 应在此处设置 ZooKeeper quorum 属性
- 在此属性中完成复制设置。默认情况下,我们将复制设置为 1。在完全分布式模式下,存在多个数据节点,因此我们可以通过在 dfs.replication 属性中放置多个值来增加复制
- 此属性中应提及客户端端口
- 此属性中可以提及 ZooKeeper 数据目录
步骤6) 首先启动 Hadoop 守护程序,然后启动 HBase 守护程序,如下所示
首先,你必须使用以下命令启动 Hadoop 守护进程“./start-all.sh” 命令如下所示。
通过 hbase-start.sh 启动 Hbase 守护进程后
现在检查 jps
HBase 完全分布式模式安装
- 此设置将在 Hadoop 集群模式下工作,其中多个节点在集群中生成并运行。
- 安装与伪分布式模式相同;唯一的区别是它将跨多个节点产生。
- HBase-site.xml 和 hbase-env.sh 中提到的配置文件与伪模式中提到的相同。
HBase 安装故障排除
1)问题陈述: 主服务器已初始化,但区域服务器未初始化
主服务器和区域服务器通过其 IP 地址进行通信。例如,主服务器将监听区域服务器是否正在运行或是否具有 IP 地址 127.0.0.1。IP 地址 127.0.0.1 是本地主机,可解析为主服务器自己的本地主机。
原因:
在Region Server和Master的双重通信中,Region Server不断告知Master Server自己的IP地址是127.0.0.1。
解决方案:
- 必须从 hosts 文件中存在的本地主机中删除主服务器名称节点
- 主机文件位置 /etc/hosts
改变什么:
打开 /etc./hosts 并转到此位置
127.0.0.1 fully.qualified.regionservernameregionservername localhost.localdomain localhost : : 1 localhost3.localdomain3 localdomain3
修改上述配置如下(删除上面突出显示的区域服务器名称)
127.0.0.1 localhost.localdomainlocalhost : : 1 localhost3.localdomain3 localdomain3
2)问题陈述: 在 Zookeeper 仲裁服务器列表中找不到我的地址:XYZ
原因:
- ZooKeeper 服务器无法启动,并且会抛出类似服务器名称中的 .xyz 的错误。
- HBase 尝试在某台机器上启动 ZooKeeper 服务器,但同时机器无法找到自己的仲裁配置,即 HBase.zookeeper.quorum 配置文件。
解决方案:-
- 必须将主机名替换为错误消息中显示的主机名
- 假设我们有 DNS 服务器,那么我们可以在 HBase-site.xml 中设置以下配置。
- HBase.zookeeper.dns.接口
- HBase.zookeeper.dns.名称服务器
3)问题陈述: 通过 Hadoop DFS 为 HBase 创建根目录
- 大师说你需要运行 HBase 迁移脚本。
- 运行该程序后,HBase 迁移脚本响应像根目录中没有文件.
原因:
- 使用以下方法为 HBase 创建新目录 Hadoop的 分布式文件系统
- 这里 HBase 期望两种可能性
1)根目录不存在
2)HBase 上一个运行实例初始化之前
解决方案:
- 确保 HBase 根目录当前不存在或者已被 HBase 实例上次运行时初始化。
- 作为解决方案的一部分,我们必须遵循以下步骤
步骤1) 使用Hadoop dfs删除HBase根目录
步骤2) HBase自行创建并初始化目录
4)问题陈述: Zookeeper 会话过期事件
原因:
- HMaster 或 HRegion 服务器抛出异常关闭
- 如果我们观察日志,我们可以找出实际抛出的异常
以下显示了由于 Zookeeper 过期事件而引发的异常。突出显示的事件是日志文件中发生的一些异常
日志文件代码如下:
WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000f to sun.nio.ch.SelectionKeyImpl@355811ec java.io.IOException: TIMED OUT at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:906) WARN org.apache.hadoop.hbase.util.Sleeper: We slept 79410ms, ten times longer than scheduled: 5000 INFO org.apache.zookeeper.ClientCnxn: Attempting connection to server hostname/IP:PORT INFO org.apache.zookeeper.ClientCnxn: Priming connection to java.nio.channels.SocketChannel[connected local=/IP:PORT remote=hostname/IP:PORT] INFO org.apache.zookeeper.ClientCnxn: Server connection successful WARN org.apache.zookeeper.ClientCnxn: Exception closing session 0x278bd16a96000d to sun.nio.ch.SelectionKeyImpl@3544d65e java.io.IOException: Session Expired at org.apache.zookeeper.ClientCnxn$SendThread.readConnectResult(ClientCnxn.java:589) at org.apache.zookeeper.ClientCnxn$SendThread.doIO(ClientCnxn.java:709) at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:945) ERROR org.apache.hadoop.hbase.regionserver.HRegionServer: ZooKeeper session expired
解决方案:
- 默认 RAM 大小为 1 GB。为了进行长时间运行的导入,我们将 RAM 容量保持在 1 GB 以上。
- 必须增加会话超时时间 动物园管理员.
- 为了增加 Zookeeper 的会话时间,我们必须修改 hbase /conf 文件夹路径中“hbase-site.xml”中的以下属性。
- 默认会话超时为 60 秒。我们可以将其更改为 120 秒,如下所示
<property> <name> zookeeper.session.timeout </name> <value>1200000</value> </property> <property> <name> hbase.zookeeper.property.tickTime </name> <value>6000</value> </property>