首页 > 大数据 > > hadoop hbase 伪分布式安装
官方文档:http://hbase.apache.org/book.html
官方文档中有介绍hadoop和hbase的版本匹配
首先从Apache Hadoop下载hadoop 的二进制包
hbase: Apache HBase - Apache HBase Downloads下载hbase
百度云链接https://pan.baidu.com/s/1xkpBnaKTa0_keAt94k5iRw 密码: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/ ,如需转载,请注明出处,否则将追究法律责任。