HBase搭建(ubuntu版本)
安装包
https://pan.baidu.com/s/1wORXDbIgYV_yNrD71HotPg 提取码:qrww
安装过程
建议浏览一遍注意事项,帮助遇到和我一样的相关问题可以节省时间,而不是直接重装系统。
虚拟机搭建
1、 选择创建虚拟机。(Ubuntu或centOs自行选择,在配置时有细微差异)

2、 选择镜像创建虚拟机。 
3、 使用默认配置进行设置。
用户名可以更改,在后面的设置过程中注意文件路径的更改。



4、 部分PC可能会出现没有权限的问题。 
解决方案:重启电脑进入BIOS页面,将Configuration中的Intel Virtual Technology更改为Enabled状态。

5、 开启虚拟机,按照默认配置进行设置,建议使用英文系统。
6、 按照以上步骤再配置两台虚拟机,分别命名为slave1和slave2。
静态ip配置
其实一般虚拟机在打开过程不会产生ip改变的情况,但保险起见还是配置静态ip。
(1) ip a #查看网卡名称,不同版本的虚拟机的网卡名称可能不同,如果你是用我的安装包版本,应该是ens33
(2) 网络配置文件存放在/etc/netplan 目录下,cd ~/etc/netplan打开文件夹,用ls 命令查看配置文件。
sudo gedit /etc/netplan/01-network-manager-all.yaml #打开类似的网络配置文件
network:
version: 2
renderer: NetworkManager
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses:
- 192.168.60.101/24
gateway4: 192.168.60.2
nameservers:
addresses: [114.114.114.114, 8.8.8.8, 1.1.1.1]
(3)sudo netplan apply #编译网络配置
(4)可以使用ifconfig来观察自己的ip地址,如果提示无此命令,可以输入sudo apt install net-tools 下载安装
主机配置
修改主机名(所有节点)
vi /etc/hostname
设置主机名,例如master、node1、node2
配置hosts文件(所有节点)
根据你设置的静态ip来输入相应的地址,三个虚拟机都要设置
vi /etc/hosts
192.168.60.101 master
192.168.60.102 node1
192.168.60.103 node2
免密钥登录(所有节点)
cd #(此步骤若出错请上网查询ssh免密登录—openssh)
mkdir .ssh
cd .ssh
ssh-keygen -t rsa#生成密钥,连续三个回车
ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub node1#将密钥发送给node1节点,第一次要输入密码,保存主机信息
ssh node1#验证是否能免密登录,一般第二次应该就不用输入密码
如果提示ssh服务未开通,记得下载相关资源
sudo apt install openssh-server
service sshd start //启动服务
两两节点直接都要实现相互免密登录。注意,因为设置的是用户密钥,所以在root权限时可能还是需要你输入密码,可以
(1)su hadoop的方式转换到用户hadoop权限,再尝试ssh node1。
(2)或者输入ssh hadoop@node1的方式
上述是设置A机免密码登录B机,如果需要进一步配置B机免密码登录A机,则在B机~/.ssh目录下ssh-keygen -t rsa生成自己的公私钥对之后(因为之前已经将A机的公钥文件rsa_id.pub发送到了B机的~/.ssh目录下,此时会提示覆盖该文件,这个可以直接覆盖,因为A机公钥已存在于authorized_keys文件中),在发送给A机之前,最好生成一份B机公钥副本(cp rsa_id.pub rsa_id.pub.B),以免覆盖了A机下面已经存在的A机自己的公钥。A机在得到B机的公钥后,将B机公钥追加到authorized_keys文件中,B机即可免密码登录A机(第一次登录也是需要密码)。最后清理A机下B机的公钥文件,并清理B机上B机自己的公钥副本,不然会影响登录,时间一长也容易搞混。
JDK安装(master节点操作)
新建一个文件夹 /install,可以通过点击home的方式,右键新建,也可命令行输入,新建文件夹位于/home/hadoop

将jdk解压,里面的jdk1.8.0_201的文件复制到新建的install的文件夹中
在root权限下配置环境变量
vi /etc/profile
添加以下内容
export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
使环境配置生效:
source /etc/profile
查看是否配置成功:
java -version
将文件夹scp到到其它节点服务器上:
scp -r ~/install/jdk1.8.0_201 hadoop@node1:~/install/jdk1.8.0_201
将环境变量scp到到其它节点服务器上:
sudo scp /etc/profile hadoop@node1:/etc
Hadoop安装
也是和jdk一样解压hadoop安装包到新建的package的文件夹中
修改配置文件
位置在hadoop安装目录的/etc/hadoop目录下,先进入目录
cd ~/install/hadoop-2.6.1/etc/hadoop
(1)修改core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/hadoop/tmp</value>
</property>
</configuration>
(2)修改hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/install/hadoop-2.6.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/install/hadoop-2.6.1/tmp/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
(3)修改mapred-site.xml
该文件不存在,需要复制才可修改
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
(4)修改yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
(5)修改hadoop-env.sh
export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201
(6)修改slaves
node1
node2
(7)修改masters(没有的文件要自己创建,vi masters 会自己创建文件)
master
配置环境变量
export HADOOP_HOME=/home/hadoop/install/hadoop-2.6.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
配置其他节点
将文件夹scp到到其它节点服务器上
scp -r ~/install/hadoop-2.6.1 hadoop@node1:~/install/hadoop-2.6.1
将环境变量scp到到其它节点服务器上
sudo scp /etc/profile hadoop@node1:/etc
启动hadoop
格式化namenode
hadoop namenode -format
启动hadoop
start-all.sh
查看进程启动情况
jps
可看到master节点:NameNode、SecondNameNode、ResourceManager
node1、2节点:DataNode、NodeManager
ZooKeeper安装
也是和jdk一样解压hadoop安装包到新建的package的文件夹中
创建用于存储数据和日志的文件夹
cd /home/hadoop/install/zookeeper-3.6.3
mkdir data
mkdir logs
修改配置文件
创建配置文件
cd /home/hadoop/install/zookeeper-3.6.3/conf
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改配置文件
有些已经存在的参数更改,不存在的增加
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/install/zookeeper-3.6.3/data dataLogDir=/home/hadoop/install/zookeeper-3.6.3/logs
clientPort=2181
server.1=master:2888:3888
server.2=node1:2888:3888
server.3=node2:2888:3888
修改myid文件(id和host与zoo.cfg中配置的相匹配)
cd /home/hadoop/install/zookeeper-3.6.3/data
echo ‘1’ > myid
配置其他节点
将文件夹scp到到其它节点服务器上
scp -r ~/install/zookeeper-3.6.3 hadoop@node1:~/install/zookeeper-3.6.3
其他节点修改myid文件
cd /home/hadoop/install/zookeeper-3.6.3/data
vi myid
slave1修改为2(id和host与zoo.cfg中配置的相匹配)
启动zookeeper
启动zookeeper(所有节点都需要启动)
cd /home/hadoop/install/zookeeper-3.6.3/bin
./zkServer.sh start
查看进程
jps
可看到所有节点都有QuorumPeerMain进程
Hbase安装
也是和jdk一样解压hadoop安装包到新建的package的文件夹中
更改配置文件
进入hbase的配置目录
cd /home/hadoop/install/hbase-1.4.11/conf
(1)更改hbase-env.sh文件
添加以下内容:
export JAVA_HOME=/home/hadoop/install/jdk1.8.0_201
export HBASE_MANAGES_ZK=false
export HBASE_CLASSPATH=/home/hadoop/install/hbase-1.4.11/conf
注释掉以下行:
(2)更改 hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>master:6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/install/zookeeper-3.6.3/data</value>
</property>
</configuration>
(3)修改 regionservers文件
node1
node2
在 hadoop 分布式文件系统上创建 hbase 目录
hadoop fs -mkdir /hbase
配置环境变量
vi /etc/profile
添加以下内容并保存:
export HBASE_HOME=/home/hadoop/install/hbase-1.4.11
export PATH=
P
A
T
H
:
PATH:
PATH:HBASE_HOME/bin
使环境配置生效
source /etc/profile
配置其他节点
复制到其他节点
scp -r ~/install/hbase-1.4.11 hadoop@node1:~/install/hbase-1.4.11
启动hbase
启动进程
start-hbase.sh
查看进程
jps
可看到master节点有HMaster进程,node1、2有HRegionServer进程
常见问题
软件安装的过程总结
解压安装包到相应目录
更改环境变量(找不到命令,执行source /etc/profile文件应用环境变量)
更改配置文件
复制到其他节点,启动相应进程(注意其他节点的环境变量文件复制过去后要应用,可能有些重复过程缺失)
快捷键
终端打开快捷键 Ctrl+Alt+T
返回上一级目录 cd …
删除文件夹及其文件 rm -rf 删除路径
系统配置文件更改权限
没有设置root的先增加root
sudo passwd root 如果没有先添加管理员密码,如有可做于更改密码
su root //获取管理员权限
windows与ubuntu之间无法复制粘贴
- sudo apt-get autoremove open-vm-tools
- sudo apt-get install open-vm-tools-desktop
vim文本编辑器问题
初次安装unbuntu,vim文本编辑器出错,包括方向键abcd
卸载vim-tiny: $ sudo apt-get remove vim-common
直接安装可能出错,apt-get update或sudo apt upgrade 更新,
安装vim full: $ sudo apt-get install vim-nox
apt进程被占用
端口占用错误
sudo netstat -nltp | grep 2181 查看相应的端口
ps -aux 查看进程
sudo kill -9 2181 杀死进程
启动文件无法执行
权限不够  对文件夹赋权777(最高权限)
chmod 777 文件
重启hadoop错误,重复格式化
hadoop namenode -format
要是多次格式化,必须先把所有格式化生成的文件给删除,然后再格式化
在core-site.xml 和 hdfs-site.xml 文件中配置的文件夹,即tmp文件夹 ~/install/hadoop-2.6.1/tmp ,vim文本编辑器出错,包括方向键abcd
卸载vim-tiny: $ sudo apt-get remove vim-common
直接安装可能出错,apt-get update或sudo apt upgrade 更新,
安装vim full: $ sudo apt-get install vim-nox
apt进程被占用
端口占用错误
sudo netstat -nltp | grep 2181 查看相应的端口
ps -aux 查看进程
sudo kill -9 2181 杀死进程
启动文件无法执行
权限不够
[外链图片转存中…(img-5bd82QZB-1627364941181)]
对文件夹赋权777(最高权限)
chmod 777 文件
重启hadoop错误,重复格式化
hadoop namenode -format
要是多次格式化,必须先把所有格式化生成的文件给删除,然后再格式化
在core-site.xml 和 hdfs-site.xml 文件中配置的文件夹,即tmp文件夹 ~/install/hadoop-2.6.1/tmp
|