栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

单机版以及伪分布式版Hbase配置及常见问题解决办法

单机版以及伪分布式版Hbase配置及常见问题解决办法

单机版以及伪分布式版Hbase配置及常见问题解决办法 下载Hbase

笔者使用的Hbase版本是2.3.7,适用于hadoop-2.10.x以及hadoop-3.x版本。以下为镜像下载网址:

点击此处跳转到Hbase-2.3.7版本下载镜像网址

下载 -bin 的压缩包。

配置以及测试Hbase
  1. 首先,使用tar命令将Hbase解压到任意目录(推荐主目录下:容易查找),放在 /usr/local 目录下会产生权限问题,下文会对其进行阐述。如果解压到非当前目录的时候记得加一个参数 -C,例如:

    tar -zxf Hbase-2.3.7.tar.gz -C ~
    
  2. 解压完成后,配置环境变量。/etc/profile 或者 ~/.bashrc 任选其一。例如:

    # 在/etc/profile 或者 ~/.bashrc 中
    export Hbase_HOME=~/hbase-2.3.7
    export PATH=$PATH:${Hbase_HOME}/bin
    
  3. 使用source命令生效刚刚配置的配置文件。

    source /etc/profile
    source ~/.bashrc
    # 然后切换到 ~/hbase-2.3.7/conf目录下修改hbase-env.sh文件
    sudo vim hbase-env.sh
    # 在首部添加以下三行代码,JAVA_HOME 以及 Hadoop的路径根据自己的位置进行设置
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export Hbase_CLASSPATH=~/hadoop-2.10.1/etc/hadoop
    export Hbase_MANAGES_ZK=true
    
  4. 此时,如果想使用单机Hbase,配置就到此结束了。可以使用如下命令查看Hbase版本:

    cd ~/hbase-2.3.7
    ./bin/hbase version
    

    如果查看版本的过程中前两行有如下报错(或者称其为警告):

    /usr/local/hadoop/libexec/hadoop-functions.sh: 行 2366: HADOOP_ORG.APACHE.HADOOP.Hbase.UTIL.GETJAVAPROPERTY_USER:无效的变量名
    /usr/local/hadoop/libexec/hadoop-functions.sh: 行 2461: HADOOP_ORG.APACHE.HADOOP.Hbase.UTIL.GETJAVAPROPERTY_OPTS:无效的变量名

    !!!!不要慌!!!!

    解决方法:

    ​ 打开 ~/hbase-2.3.7/conf (目录根据自己的目录进行修改)目录下的hbase-env.sh文件中进行编辑:

    ​ 找到最后几行的如下代码:

    ​ export Hbase_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

    ​ 解除他的注释状态。

  5. 此时就可以执行如下代码启动HMaster了:

    cd ~/hbase-2.3.7
    ./bin/start-hbase.sh
    # 然后使用jps命令看看是否成功启动HMaster
    jps
    # 如果HMaster正常启动的话,单机Hbase就可以进入到shell中进行操作了
    ./bin/hbase shell
    # 进入到hbase shell中可以使用以下语句查看是否可以正常进行操作
    >create 'tablename','info'
    >list
    

  6. 以下是伪分布式的Hbase的配置:

    # 打开 对应 hbase目录下的conf文件夹
    cd ~/hbase-2.3.7/conf
    # 对hbase-env.sh 文件进行编辑
    sudo vim hbase-env.sh
    # 在首部添加以下三行代码,JAVA_HOME 以及 Hadoop的路径根据自己的位置进行设置
    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export Hbase_CLASSPATH=~/hadoop-2.10.1/etc/hadoop
    export Hbase_MANAGES_ZK=true
    # 同样建议将文件末尾的以下代码取消他的注释状态,以免报无效变量名的错误
    export Hbase_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
    
  7. 按 esc 之后输入 :wq 退出并保存编辑。

  8. 之后打开hbase-site.xml文件进行编辑:

    # 在configuration参数中添加如下代码
    
    	hbase.rootdir
    	# 因为是伪分布式的hbase,所以需要放置到对应的hdfs伪分布集群中
    	# 需要hdfs的端口号设置为为9000
    	hdfs://localhost:9000/hbase
    
    
    	hbase.cluster.distributed
    	true
    
    
  9. 设置完成之后,保存并退出编辑。

  10. 之后切换到对应的hadoop文件夹下启动hdfs集群:

    cd ~/hadoop-2.10.1
    ./sbin/start-dfs.sh
    # 使用jps查看对应的namenode以及datanode是否启动成功
    jps
    
  11. hdfs伪分布式集群启动成功之后,切换到对应的Hbase文件夹下:

    cd ~/hbase-2.3.7
    ./bin/start-hbase.sh
    ./bin/hbase shell
    # 进入到hbase shell界面之后还是进行测试是否可以正常进行操作
    >create 'tablename','info'
    >list
    
报错总结
  1. 变量名报错:HADOOP_ORG.APACHE.HADOOP.Hbase.UTIL.GETJAVAPROPERTY_USER:无效的变量名

    解决方法:

    ​ 打开 ~/hbase-2.3.7/conf (目录根据自己的目录进行修改)目录下的hbase-env.sh文件中进行编辑:

    ​ 找到最后几行的如下代码:

    ​ export Hbase_DISABLE_HADOOP_CLASSPATH_LOOKUP=“true”

    ​ 解除他的注释状态。

  2. port 22:connection refused 报错:

    解决方法:安装设置ssh免密登录

    sudo apt-get install openssh-server
    # 输入以下命令,然后输入yes,再输入密码进行登录
    ssh localhost
    # 生成公钥私钥(一直默认回车就可以),将在~/.ssh文件夹下生成文件id_rsa:私钥,id_rsa.pub:公钥
    ssh-keygen -t rsa
    # 导入公钥到认证文件,导入本机
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
    
  3. Nonode /hbase/master 报错:

    解决方法:

    # 输入jps检查是否启动了HMaster节点,伪分布式是否启动了hdfs伪分布式集群
    jps
    # 启动HMaster
    cd ~/hbase-2.3.7
    ./bin/start-hbase.sh
    jps # 查看是否成功启动HMaster
    # 启动hdfs伪分布式集群
    cd ~/hadoop-2.10.1
    ./sbin/start-dfs.sh
    jps # 查看是否成功启动hdfs伪分布式集群
    # 最后进入hbase shell中进行测试,就可以正常操作了
    cd ~/hbase-2.3.7
    ./bin/hbase shell
    >create 'tablename','info'
    >list
    
  4. 在执行 ./bin/start-hbase.sh 的时候遇到权限不够的问题:

    # 原因就是把hbase解压在/usr/local文件夹下,而且该文件夹的拥有者是root
    # 可以使用以下命令解决
    cd /usr/local
    # 这里的yourname是当前用户名
    sudo chown -R yourname hbase-2.3.7/
    

    然后去hbase文件夹下执行./bin/start-hbase.sh就不会有权限问题了。这个方法比较简单且有效,切换为root用户执行start-hbase.sh文件有时候也会出现权限问题。所以建议解压到主目录或者改变解压后文件的拥有者为当前用户。

其他的问题欢迎提出,笔者努力解决

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/584623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号