https://blog.csdn.net/weixin_44878850/article/details/89111148
1. 虚拟机安装、克隆
2. 网络配置
# 修改 hostname
hostname hadoop1
hostnamectl set-hostname hadoop1
# 最靠谱方式
Vim /etc/sysconfig/network
打开网卡:
centos
安装后默认是关闭网卡的,要进 /etc/sysconfig/network-scripts/
下修改 ifcfg-ens33
,将ONBOOT
的值改成 yes
。ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能连接网络,进行网络通信
修改完毕后,service network restart
重启网络,检查 ping baidu.com
是否能够通
克隆虚拟机修改 onboot 后重启网络失败
-
错误类型:
Bringing up interface eth0:Device eth0 does not seem to be present,delaying
-
解决方法:删除
/etc/udev/rules.d/70-persistent-net.rules
,然后将网卡配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
的uuid
和hwaddr
这两行删除,重启系统即可! -
参考:https://jingyan.baidu.com/article/e75aca85006645142edac6df.html
注意:有些没有
ifcfg-ens33
,只有ifcfg-eth0
,修改ifcfg-eth0
即可!
2.1 设置静态 IP、主机映射
设置静态 IP
以下操作每台服务器 hadoop1/2/3
都需要设置:
1、Vim /etc/sysconfig/network-scripts/ifcfg-ens33
,有些可能会是 ifcfg-eth0
:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 设置为 静态
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=1c71c1dc-e4f8-4594-b77e-5e04f6906a31
DEVICE=ens33
ONBOOT=yes # 必须为 yes
IPADDR=192.168.131.137 # 静态 IP
GATEWAY=192.168.2.2 # 网关
NETMAK=255.255.255.0 # 子网掩码
DNS1=8.8.8.8
DNS2=114.114.114.114
2、每一台虚拟机配置 ip
和域名映射:
# vim /etc/hosts
192.168.131.137 hadoop1
192.168.131.138 hadoop2
192.168.131.139 hadoop3
3、关闭防火墙:
# 关闭防火墙
Service iptables stop
# 禁止防火墙开机自启
Chkconfig iptables off
# 关闭selinux,设置 SELINUX 参数为 disabled
Vim /etc/selinux/config
4、重启网络、检查:
# 重启网络
service network restart
# hadoop1/2/3 三台服务器之间相互 ping 看是否能够通
ping hadoop1
# 重启
reboot
2.2 添加hadoop账户并分配sudo权限
useradd -m hadoop
passwd hadoop
# 分配 sudo 权限,在该行root ALL=(ALL) ALL下添加hadoop ALL=(ALL) ALL保存后退出,并切换回hadoop用户
visudo
# 如下配置
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
# 切换用户
su hadoop
三台服务器IP、用户名、密码对应
# 分别有两个用户:root(110139)、hadoop(hadoop)
192.168.131.137 hadoop1
192.168.131.138 hadoop2
192.168.131.139 hadoop3
2.3 实现三台服务器之间免密登录
1、安装 ssh
服务:
yum install -y openssl openssh-server
yum -y install openssh-clients # 一定要安装客户端,不然使用不了 ssh
# 用vim打开配置文件/etc/ssh/sshd_config
# 将 PermitRootLogin,RSAAuthentication,PubkeyAuthentication 的注释设置打开
# 常用命令
service sshd restart # 重启SSH服务
service sshd start # 启动服务
service sshd stop # 停止服务
netstat -antp | grep sshd # 查看是否启动22端口
chkconfig sshd on # 设置开机启动
chkconfig sshd off # 设置禁止开机启动
yum install
时出现:
[root@hadoop3 .ssh]# yum install -y openssl openssh-server
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
解决方法:
sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
yum clean all
yum makecache
yum repolist # 查看当前源
参考:YumRepo Error: All mirror URLs are not using ftp, http[s] or file.centos6 yum失败!
2、生成公钥私钥(一定要在 hadoop 用户下执行!!!,否则后续 start-dfs.sh 没有权限)
# 一路回车即可 路径:/home/hadoop/.ssh/id_rsa、id_rsa.pub
ssh-keygen -t rsa
# 在 hadoop1 服务器
cd /home/hadoop/.ssh/
cat id_rsa.pub > authorized_keys
# 再将 Hadoop2、Hadoop3 的 id_rsa.pub 的内容拷贝到 Hadoop1 的 authorized_keys,最后将 authorized_keys 分别传到 Hadoop2、Hadoop3 的 /home/hadoop/.ssh/
scp authorized_keys root@hadoop2:/home/hadoop/.ssh/
scp authorized_keys root@hadoop3:/home/hadoop/.ssh/
# 分别给三个节点 修改authorized_keys权限
chmod 600 authorized_keys
chmod 700 .ssh
# 测试,ssh + 主机名
ssh hadoop2
# hbase 集群
https://www.cnblogs.com/qingyunzong/p/8668880.html
# hadoop 集群
https://www.cnblogs.com/qingyunzong/p/8496127.html
3. jdk 安装
1、如果你使用root用户进行安装。 vi /etc/profile
即可 系统变量
2、如果你使用普通用户进行安装。 vi ~/.bashrc
用户变量
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_261
export PATH=$JAVA_HOME/bin:$PATH
检查:
[hadoop@hadoop3 apps]$ source ~/.bashrc
[hadoop@hadoop3 apps]$ echo $JAVA_HOME
/home/hadoop/apps/jdk1.8.0_261
[hadoop@hadoop3 apps]$ java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
4. hadoop 安装
集群规划:
服务/主机名 | IP | 用户 | HDFS | YARN |
---|---|---|---|---|
hadoop1 | 192.168.131.137 | hadoop | NameNode,DataNode | NodeManager,ResourceManager |
hadoop2 | 192.168.131.138 | hadoop | DataNode | NodeManager |
hadoop3 | 192.168.131.139 | hadoop | DataNode | NodeManager |
服务 | 主节点 | 从节点 |
---|---|---|
HDFS | NameNode | DataNode |
YARN | ResourceManager | NodeManager |
注意:hadoop 用户最好给 apps、data、hadoop-2.7.5/ 等都添加权限 sudo chown hadoop:hadoop apps/
1、解压:
[hadoop@hadoop1 apps]$ tar -zxvf hadoop-2.7.5.tar.gz
2、hadoop-env.sh
:
配置文件目录:/home/hadoop/apps/hadoop-2.7.5/etc/hadoop
cd /home/hadoop/apps/hadoop-2.7.5/etc/hadoop
vim hadoop-env.sh
# 只需修改 jdk 路径
export JAVA_HOME=/usr/local/jdk1.8.0_73
3、core-site.xml
:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data/hadoopdata</value>
</property>
</configuration>
4、hdfs-site.xml
:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/hadoopdata/name</value>
<description>为了保证元数据的安全一般配置多个不同目录</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/hadoopdata/data</value>
<description>datanode 的数据存储目录</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>HDFS 的数据块的副本存储个数, 默认是3</description>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop3:50090</value>
<description>secondarynamenode 运行节点的信息,和 namenode 不同节点</description>
</property>
</configuration>
5、mapred-site.xml
:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
6、yarn-site.xml
:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value> // 这个必须与 resourcemanager 服务器一致,我这里是 hadoop1
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
</property>
</configuration>
7、slaves
:
vim slaves
hadoop1
hadoop2
hadoop3
8、将 hadoop-2.7.5/
分发到其他集群:
scp -r hadoop-2.7.5/ hadoop2:/home/hadoop/apps
scp -r hadoop-2.7.5/ hadoop3:/home/hadoop/apps
9、添加环境变量(每台服务器都需要添加):
[hadoop@hadoop1 apps]$ vim ~/.bashrc
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
[hadoop@hadoop1 apps]$ source ~/.bashrc
[hadoop@hadoop1 apps]$ hadoop version
Hadoop 2.7.5
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r 18065c2b6806ed4aa6a3187d77cbe21bb3dba075
Compiled by kshvachk on 2017-12-16T01:06Z
Compiled with protoc 2.5.0
From source with checksum 9f118f95f47043332d51891e37f736e9
This command was run using /home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/hadoop-common-2.7.5.jar
10、格式化:
[hadoop@hadoop1 bin]$ hadoop namenode -format
21/06/13 14:34:26 INFO util.GSet: Computing capacity for map NameNodeRetryCache
21/06/13 14:34:26 INFO util.GSet: VM type = 64-bit
21/06/13 14:34:26 INFO util.GSet: 0.029999999329447746% max memory 966.7 MB = 297.0 KB
21/06/13 14:34:26 INFO util.GSet: capacity = 2^15 = 32768 entries
21/06/13 14:34:27 INFO namenode.FSImage: Allocated new BlockPoolId: BP-57205935-192.168.131.137-1623566067094
21/06/13 14:34:27 INFO common.Storage: Storage directory /home/hadoop/data/hadoopdata/name has been successfully formatted.
21/06/13 14:34:27 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/data/hadoopdata/name/current/fsimage.ckpt_0000000000000000000 using no compression
21/06/13 14:34:27 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/data/hadoopdata/name/current/fsimage.ckpt_0000000000000000000 of size 322 bytes saved in 0 seconds.
21/06/13 14:34:28 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
21/06/13 14:34:28 INFO util.ExitUtil: Exiting with status 0
21/06/13 14:34:28 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hadoop1/192.168.131.137
************************************************************/
格式化 Namenode 时不能创建目录
java.io.IOException: Cannot create directory /home/hadoop/data/hadoopdata/na
# 解决方法
https://blog.csdn.net/qq_40414738/article/details/99544777
start-dfs.sh 时没有权限
[hadoop@hadoop1 sbin]$ sudo start-dfs.sh
[sudo] password for hadoop:
sudo: start-dfs.sh: command not found
[hadoop@hadoop1 sbin]$ start-dfs.sh
Starting namenodes on [hadoop1]
hadoop@hadoop1's password:
hadoop1: namenode running as process 4090. Stop it first.
hadoop@hadoop2's password: hadoop@hadoop1's password: hadoop@hadoop3's password:
hadoop2: mkdir: cannot create directory `/home/hadoop/apps/hadoop-2.7.5/logs': Permission denied
hadoop2: chown: cannot access `/home/hadoop/apps/hadoop-2.7.5/logs': No such file or directory
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out
hadoop2: /home/hadoop/apps/hadoop-2.7.5/sbin/hadoop-daemon.sh: line 159: /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out: No such file or directory
hadoop2: head: cannot open `/home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out' for reading: No such file or directory
hadoop2: /home/hadoop/apps/hadoop-2.7.5/sbin/hadoop-daemon.sh: line 177: /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out: No such file or directory
hadoop2: /home/hadoop/apps/hadoop-2.7.5/sbin/hadoop-daemon.sh: line 178: /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out: No such file or directory
解决办法:https://www.cnblogs.com/zknublx/p/8066693.html
开启 hdfs
[hadoop@hadoop1 sbin]$ start-dfs.sh
Starting namenodes on [hadoop1]
hadoop1: starting namenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-namenode-hadoop1.out
hadoop3: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop3.out
hadoop2: starting datanode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-datanode-hadoop2.out
hadoop1: datanode running as process 4822. Stop it first.
Starting secondary namenodes [hadoop3]
hadoop3: starting secondarynamenode, logging to /home/hadoop/apps/hadoop-2.7.5/logs/hadoop-hadoop-secondarynamenode-hadoop3.out
[hadoop@hadoop1 sbin]$ jps
4822 DataNode
5465 NameNode
5724 Jps
开启 yarn
[hadoop@hadoop1 sbin]$ start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-resourcemanager-hadoop1.out
hadoop3: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop3.out
hadoop2: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop2.out
hadoop1: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.5/logs/yarn-hadoop-nodemanager-hadoop1.out
查看集群 jps 进程
[hadoop@hadoop1 sbin]$ jps
5891 Jps
4822 DataNode
5465 NameNode
5770 ResourceManager
5870 NodeManager
[hadoop@hadoop2 ~]$ jps
2643 NodeManager
2532 DataNode
2717 Jps
[hadoop@hadoop3 ~]$ jps
2816 DataNode
2994 NodeManager
3091 Jps
web 管理界面
https://www.cnblogs.com/qingyunzong/p/8496127.html
https://www.cnblogs.com/qingyunzong/p/8668880.html
https://blog.csdn.net/Beans___Lee/article/details/105265244
https://blog.csdn.net/qq_43106863/article/details/101530233
https://blog.csdn.net/ASN_forever/article/details/80701003
https://blog.csdn.net/weixin_41552767/article/details/107221454
https://segmentfault.com/a/1190000038229319
VMware 搭建 hadoop 完全分布式集群
5. zookeeper 集群安装
这里规划三台服务器:hadoop1,hadoop2,hadoop3
下载地址:http://mirrors.hust.edu.cn/apache/ZooKeeper/
此处使用的是3.4.10版本
1、解压:
[hadoop@hadoop1 ~]$ cd /home/hadoop/apps
[hadoop@hadoop1 ~]$ tar -zxvf zookeeper-3.4.10.tar.gz -C apps/
2、修改配置文件:
[hadoop@hadoop1 zookeeper-3.4.10]$ cd conf/
[hadoop@hadoop1 conf]$ mv zoo_sample.cfg zoo.cfg
[hadoop@hadoop1 conf]$ vim zoo.cfg
# dataDir 内存数据库快照存放地址
dataDir=/home/hadoop/data/zkdata/
# 末尾添加,配置ZK监听客户端连接的端口
dataLogDir=/home/hadoop/log/zklog # 事务日志
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
# server.serverid=host:tickpot:electionport
# server:固定写法
# serverid:每个服务器的指定ID(必须处于1-255之间,必须每一台机器不能重复)
# host:主机名
# tickpot:心跳通信端口
# electionport:选举端口
3、将配置文件分发到集群其他机器中:
[hadoop@hadoop1 bin]$ scp -r zookeeper-3.4.10/ hadoop2:/home/hadoop/apps
[hadoop@hadoop1 bin]$ scp -r zookeeper-3.4.10/ hadoop3:/home/hadoop/apps
注意:以下操作 4、5、6 每台服务器都需要这样操作!
4、创建日志目录、配置服务器 ID:
[hadoop@hadoop1 bin]$ mkdir -p /home/hadoop/log
[hadoop@hadoop1 bin]$ sudo chown hadoop:hadoop log/ # 给 hadoop 用户添加权限
[hadoop@hadoop1 bin]$ mkdir -p /home/hadoop/data/zkdata
[hadoop@hadoop1 ~]$ cd /home/hadoop/data/zkdata
[hadoop@hadoop1 ~]$ echo 1 > myid # myid,里面存放的内容就是服务器的 id,就是 server.1=hadoop01:2888:3888 当中的 id, 就是 1
5、配置环境变量:
vim ~/.bashrc
export ZOOKEEPER_HOME=/home/hadoop/apps/zookeeper-3.4.10
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source ~/.bashrc
6、启动 zkserver
服务,检查:
启动:zkServer.sh start
停止:zkServer.sh stop
查看状态:zkServer.sh status
ps -aux | grep 'zookeeper'
[hadoop@hadoop1 bin]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[hadoop@hadoop1 bin]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
[hadoop@hadoop1 bin]$ jps
2769 Jps
2723 QuorumPeerMain
[hadoop@hadoop2 bin]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[hadoop@hadoop2 bin]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
[hadoop@hadoop2 bin]$ jps
[hadoop@hadoop3 bin]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
[hadoop@hadoop3 bin]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[hadoop@hadoop3 bin]$ jps
1898 QuorumPeerMain
1951 Jps
6. HBase 集群搭建
[hadoop@hadoop1 apps]$ tar -zxvf hbase-1.2.6-bin.tar.gz
[hadoop@hadoop1 apps]$ cd hbase-1.2.6/conf/ # 配置文件目录
[hadoop@hadoop1 conf]$ vim hbase-env.sh
# 修改 jdk 路径 和 zookeeper
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_261
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
1、修改 hbase-site.xml
:
<configuration>
<property>
<!-- 指定 hbase 在 HDFS 上存储的路径 -->
<name>hbase.rootdir</name>
<value>hdfs://hadoop1:9000/hbase</value>
</property>
<property>
<!-- 指定 hbase 是分布式的 -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<!-- 指定 zk 的地址,多个用“,”分割 -->
<name>hbase.zookeeper.quorum</name>
<value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
</configuration>
2、修改 regionservers
:
vim regionservers
hadoop1
hadoop2
hadoop3
3、修改 backup-masters
(该文件是不存在的,先自行创建):
# 备用 master
vim backup-masters
hadoop3
4、要把 hadoop 的 hdfs-site.xml 和 core-site.xml 放到 hbase-1.2.6/conf 下
5、删除 docs
(删除 HBase
目录下的 docs
文件夹):
rm -rf docs
# 分发
scp -r hbase-1.2.6/ hadoop2:/home/hadoop/apps/
scp -r hbase-1.2.6/ hadoop3:/home/hadoop/apps/
6、时间同步:
HBase
集群对于时间的同步要求的比 HDFS
严格,所以,集群启动之前千万记住要进行 时间同步,要求相差不要超过 30s:
方法一:
# 配置 hbase-site.xml,三个服务器之间时间差不超过 30s
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>
方法二:
- 从节点服务器与主节点服务器时间同步
- 所有节点与网络服务器时间同步
[hadoop@hadoop2 hbase-1.2.6]$ sudo yum install -y ntp
# 与 time.nist.gov 网络服务器同步
[hadoop@hadoop2 hbase-1.2.6]$ sudo /usr/sbin/ntpdate time.nist.gov
15 Jun 20:54:27 ntpdate[1780]: step time server 132.163.97.3 offset -28785.531070 sec
# 设置定时任务
[hadoop@hadoop2 hbase-1.2.6]$ crontab -l
# 服务器时间同步
0 */1 * * * /usr/sbin/ntpdate time.nist.gov
参考:http://www.hnbian.cn/posts/f2bc4737.html
7、系统环境变量:
# 所有节点都需要修改
[hadoop@hadoop1 bin]$ vim ~/.bashrc
export HBASE_HOME=/home/hadoop/apps/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin
source ~/.bashrc
8、启动 hbase
集群:
[hadoop@hadoop1 bin]$ pwd
/home/hadoop/apps/hbase-1.2.6/bin
[hadoop@hadoop1 bin]$ start-hbase.sh
starting master, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-master-hadoop1.out
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
hadoop3: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop3.out
hadoop2: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop2.out
hadoop1: starting regionserver, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-regionserver-hadoop1.out
hadoop3: starting master, logging to /home/hadoop/apps/hbase-1.2.6/logs/hbase-hadoop-master-hadoop3.out
注意:在哪个集群启动,哪个就是主节点
Master
,启动hbase
之前一定先启动zookeeper、hadoop
!!!
9、检查:
[hadoop@hadoop1 bin]$ jps
1668 NameNode
2164 NodeManager
4054 Jps
3590 HMaster
1495 QuorumPeerMain
3719 HRegionServer
1768 DataNode
2061 ResourceManager
[hadoop@hadoop2 hbase-1.2.6]$ jps
1440 QuorumPeerMain
2305 Jps
2149 HRegionServer
1622 NodeManager
1511 DataNode
[hadoop@hadoop3 bin]$ jps
2722 Jps
1682 NodeManager
1436 QuorumPeerMain
1501 DataNode
2654 HRegionServer
若有节点 HRegionServer 进程没起来就手动启动
# 启动 master 进程
hbase-daemon.sh start master
# 启动HRegionServer进程
hbase-daemon.sh start regionserver
10、web-ui
:
11、测试:
[hadoop@hadoop1 bin]$ hbase shell
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hbase-1.2.6/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.2.6, rUnknown, Mon May 29 02:25:32 CDT 2017
hbase(main):001:0> list
TABLE
0 row(s) in 0.6420 seconds
=> []
hbase(main):002:0> helo 'list'
NoMethodError: undefined method `helo' for #<Object:0x3ab35b9c>
hbase(main):004:0> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
0 row(s) in 1.6840 seconds
=> Hbase::Table - t1
hbase(main):005:0> list
TABLE
t1
1 row(s) in 0.0290 seconds
=> ["t1"]
hbase(main):006:0> desc 't1'
Table t1 is ENABLED
t1
COLUMN FAMILIES DESCRIPTION
{NAME => 'f1', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOC
K_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
{NAME => 'f2', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOC
K_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
{NAME => 'f3', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOC
K_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE
=> '65536', REPLICATION_SCOPE => '0'}
3 row(s) in 0.3510 seconds
参考文章: