ITPub博客

首页 > 大数据 > > hadoop hbase 伪分布式安装

hadoop hbase 伪分布式安装

作者:浪花小雨滴 时间:2020-05-12 15:31:32 0 删除 编辑

官方文档:hbase.apache.org/book.h

官方文档中有介绍hadoop和hbase的版本匹配

首先从Apache Hadoop下载hadoop 的二进制包

hbase: Apache HBase - Apache HBase Downloads下载hbase

百度云链接pan.baidu.com/s/1xkpBna 密码:gb7l

1、首先要安装好java环境,并配置好JAVA_HOME

vim /etc/profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_191

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

2、需要安装的前提条件

查看一下电脑ip地址

ifconfig

vim /etc/hosts bogon代表自己服务器的主机名,下面的bogon对应电脑的IP,可以自己定义,需要注意的是 如果设置的是localhost,java api在远程连接Hbase的时候是访问不到的,所以我配置了IP地址

配置ssh bogon 访问本机

ssh-keygen -t rsa -C "youremail@xx.com"

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

注意:authorized_keys的权限必须要是600!!!

3、解压缩文件,配置hadoop和hbase

将两个压缩文件放到 /usr/local 目录下

解压缩 tar -zxvf hadoop-3.1.2.tar.gz

(1)hadoop配置

进入hadoop-3.1.2目录中的etc下的hadoop目录下

修改配置文件hadoop-env.sh,设置你配置的JAVA_HOME环境变量,添加

export JAVA_HOME=/usr/local/java/jdk1.8.0_191

修改core-site.xml,添加(fs.defaultFS需要配置你设置的域名)

<configuration>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/local/hadoop/tmp</value>
   </property>
   <property>
    <name>fs.defaultFS</name>
    <value>hdfs://bogon:8020</value>
   </property> 
</configuration>

修改hdfs-site.xml,添加

<configuration>
    <property>
    <name>dfs.replication</name>
    <value>1</value>
   </property>
   <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///usr/local/hadoop/dfs/name</value>
   </property>
   <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:///usr/local/hadoop/dfs/data</value>
   </property>
   <property>
    <name>dfs.permissions</name>
    <value>false</value>
   </property>
</configuration>

修改workers,添加(设置你添加的域名)

bogon

之后进入到/usr/local/hadoop-3.1.2/sbin 下

修改start-dfs.sh,在开头部分添加

DOOP_SECURE_DN_USER=hdfs
HDFS_DATANODE_USER=root
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

第一次运行hadoop需要格式化。执行:./bin/hdfs namenode -format

执行 ./start-dfs.sh

通过jps查看进程,如果存在DataNode,NameNode,SecondaryNameNode证明 hadoop安装成功

安装完之后,设置一下环境变量

export HADOOP_HOME=/usr/local/hadoop-3.1.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native 
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

如果遇到问题

Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

解决方式是在文件hadoop-env.sh中增加:

export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"

(2)hbase配置

解压缩 tar -zxvf hbase-2.1.2-bin.tar.gz。进入hbase-2.1.2目录中的conf目录下

修改 hbase-env.sh,设置JAVA_HOME环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_191

修改hbase-site.xml

<configuration>
<property>
    <name>hbase.rootdir</name>
    <!-- <value>file:///home/hbase/hbase</value> -->
    <value>hdfs://bogon:8020/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/hadoop/zookeeper</value>
  </property>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
   <property>
     <name>hbase.wal.provider</name>
   <value>filesystem</value>
 </property>
</configuration>

修改regionservers

bogon


之后进入/usr/local/hbase-2.1.2/bin 目录下,但是要确认hadoop的hdfs已经开启

执行./start-hbase.sh

如果有报错 :

ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting

Caused by: java.lang.NoClassDefFoundError: org/apache/htrace/SamplerBuilder

先进入到安装的hbase目录下,然后输入以下命令

cp ./lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar ./lib/

如果有报错 :

Caused by: java.lang.NoClassDefFoundError: Could not initialize class

vi conf/hbase-site.xml

加入:

<configuration>
    <property>            
         <name>hbase.wal.provider</name>          
         <value>filesystem</value>
    </property>
</configuration>

使用jps查看一下java虚拟机进程

如果增加了 HquorumPeer Hmaster HRegionServer说明成功

使用netstat -antp | grep 16000 查看一下

如果显示的是 127.0.0.1:16000 说明hbase绑定的是本地,不能使用java api进行远程访问,此时需要修改hosts文件下的东西,并重新进行配置

然后配置一下hbase的环境变量

export PATH=$PATH:/usr/local/hbase-2.1.2/bin

使用hbsae shell 命令测试hbase数据库

4、配置yarn,首先关闭hbase和hdfs

执行hadoop classpath,显示如下

修改yarn-site.xml

yarn.application.classpath 的值需要设置的是 hadoop classpath的值,即上图中的值

<configuration> 

 <!-- 配置RM(ResourceManager)的hostname -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
     <value>bogon</value>
  </property>

 <!-- 配置RM(ResourceManager)对客户端暴露的地址,客户端通过该地址向RM提交应用程序等 -->
  <property>
      <name>yarn.resourcemanager.address</name>
      <value>bogon:8032</value>
   </property>

 <!-- 是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。 -->
   <property>
      <name>yarn.nodemanager.vmem-check-enabled</name>
      <value>false</value>
   </property>

 <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

<!-- 以下数据用来配置mapreduce的内存等,可能会导致mapreduce任务内存过大直接被停掉,属于调优参数 -->
<property>
       <name>yarn.application.classpath</name>
       <value>usr/local/hadoop-3.1.2/etc/hadoop:/usr/local/hadoop-3.1.2/share/hadoop/common/lib/*:/usr/local/hadoop-3.1.2/share/hadoop/common/*:/usr/local/hadoop-3.1.2/share/hadoop/hdfs:/usr/local/hadoop-3.1.2/share/hadoop/hdfs/lib/*:/usr/local/hadoop-3.1.2/share/hadoop/hdfs/*:/usr/local/hadoop-3.1.2/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-3.1.2/share/hadoop/mapreduce/*:/usr/local/hadoop-3.1.2/share/hadoop/yarn:/usr/local/hadoop-3.1.2/share/hadoop/yarn/lib/*:/usr/local/hadoop-3.1.2/share/hadoop/yarn/*</value>
    </property>
    <property>
  <name>mapreduce.map.memory.mb</name>
  <value>768</value>
</property>
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx512M</value>
</property>
<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>1036</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx1280M</value>
</property>
</configuration>

vim mapred-site.xml 如果没有,从配置文件的mapred-site.xml.template复制一份并改名

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

    <!-- 设置jobhistoryserver 没有配置的话 history入口不可用 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>bogon:10020</value>
    </property>

    <!-- 配置web端口,用来查看执行的mapreduce程序的日志 -->
   <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>bogon:19888</value>
    </property>

    <!-- 配置正在运行中的日志在hdfs上的存放路径 -->
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/history/done_intermediate</value>
    </property>

    <!-- 配置运行过的日志存放在hdfs上的存放路径 -->
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/history/done</value>
    </property>
</configuration>

之后进入到/usr/local/hadoop-3.1.2/sbin 下

修改start-yarn.sh,在开头增加

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

执行 ./start-yarn.sh

使用jps查看进程

如果增加了 NodeManager ResourceManager 说明配置成功

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537575/viewspace-3147797/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: PostgreSQL SQL调优
请登录后发表评论 登录
全部评论

注册时间:2018-05-16

  • 博文量
    4259
  • 访问量
    40140