文章目录

  • 前言
  • 环境
  • 修改host文件
  • 配置SSH
  • 配置Hadoop
    • 获取Hadoop
    • 修改配置文件
      • hadoop-env.sh
      • core-site.xml
      • mapred-site.xml
      • yarn-site.xml
      • hdfs-site.xml
      • workers
    • 部署Hadoop
    • 启动Hadoop
  • 配置Hbase
    • 获取Hbase
    • 配置环境变量
    • 修改配置文件(conf文件夹下)
      • hbase-env.sh
      • hbase-site.xml
      • regionservers
    • 部署Hbase
    • 启动Hbase

前言

适逢非关系数据库老师布置了课后作业,要我们搭建一个Hbase和MongoDB数据库,而我又得知Hbase可以通过集群搭建提高性能,所以我打算在自己的桌面环境下尝试一下,过程中遇到的一些问题,我会记录在这里。

环境

  • OS : Ubuntu 16.04

  • JDK : 1.8

  • Hadoop : 3.2.1

    服务器 IP地址
    hadoop-master 192.168.41.141
    hadoop-node01 192.168.41.142
    hadoop-node02 192.168.41.143

修改host文件

sudo vi /etc/hosts

加入如下几行:

192.168.41.141  hadoop-master
192.168.41.142  hadoop-node01
192.168.41.143  hadoop-node02

三台服务器的host文件都需要修改,修改之后运行命令source /etc/hosts使其生效。

配置SSH

首先需要通过创建SSH实现三台服务器之间的免密登陆。

ssh-keygen -t rsa

生成的公钥保存在~/.ssh下,此时需要把公钥放入authorized_keys,命令如下:

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

之后,我们应该在另外两台服务器上创建SSH,并且将自己服务器上的公钥放入Master服务器的authorized_keys里,实现三台服务器之间的免密登陆。

这里我为了方便,我直接将~/.ssh复制到了另外两台服务器的~/位置:

scp -r ~/.ssh root@hadoop-node01:~/.ssh
scp -r ~/.ssh root@hadoop-node02:~/.ssh

通过如下命令即可验证配置成功:

root@hadoop-master:/# ssh hadoop-node01
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)* Documentation:  https://help.ubuntu.com/234 packages can be updated.
149 updates are security updates.Last login: Mon Sep 30 11:09:53 2019 from ::1

配置Hadoop

获取Hadoop

运行命令

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/hadoop-3.2.1-src.tar.gz

解压

tar -zxvf hadoop-3.2.1-src.tar.gz

修改配置文件

hadoop-env.sh

vi hadoop-env.sh
//添加JDK安装路径
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_221/

core-site.xml

vi core-site.xml
//添加如下配置
<configuration>
//文件系统用HDFS
<property>
<name>fs.default.name</name>
//namenode的地址
<value>hdfs://hadoop-master:9000</value>
</property><property>
//临时文件的存放路径
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hdfs/tmp</value>
</property>
</configuration>

mapred-site.xml

vi mapred-site.xml//添加如下配置
<configuration>
//配置mapreduce运行的平台,默认为local本地平台模拟运行,而不是在集群上分布式运行,只是一个单机的程序,这里配置yarn平台运行,负责分配内存
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

yarn-site.xml

vi yarn-site.xml<configuration>
//指定yarn的resourcemanager地址
<property>
<name>yarn.resourcecemanager.hostname</name>
<value>hadoop-master</value>
</property>//reducer获取数据方式
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>//忽略虚拟内存的检查,如果是在实体机上,并且内存够多,可以去掉
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property></configuration>

hdfs-site.xml

//添加如下内容<configuration>
//hdfs的副本数量
<property>
<name>dfs.replication</name>
<value>2</value>
</property>//Hadoop NameNode运行端口,在通过192.168.41.141:50070访问
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop-master:50070</value>
</property>//存储上传数据的路径
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/hdfs/data</value>
</property>//存储namenode的路径
<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/hdfs/name</value>
</property>//设置为false可以不用检查路径
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

workers

在Hadoop:2.9.1版本中,该配置文件为slaves,但是在3.2版本中,文件更名为workers,在部署过程中,这里尤其要注意,我就是因为没有注意,在master上开启Hadoop后,Node节点上并没有相继运行datanodenodemanager

vi workers//添加如下内容
hadoop-node01
hadoop-node02

部署Hadoop

将修改后的Hadoop文件夹拷贝至Node01、Node02节点上:

scp -r /root/hadoop root@hadoop-node01:/root/
scp -r /root/hadoop root@hadoop-node02:/root/

并且修改环境变量,添加如下:

vi /etc/profile//添加如下
export HADOOP_HOME=~/hadoop/
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

启动Hadoop

执行start-all.sh启动Hadoop:

root@hadoop-master:~/hadoop/etc/hadoop# start-all.sh
Starting namenodes on [hadoop-master]
Starting datanodes
Starting secondary namenodes [hadoop-master]
2019-09-30 19:10:07,637 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
Starting nodemanagers

在Master节点上可以通过执行jps命令查看启动的进程:

root@hadoop-master:~/hadoop/etc/hadoop# jps
20241 Jps
19857 SecondaryNameNode
126115 NodeManager
125540 DataNode
20088 ResourceManager
19626 NameNode

Node节点上:

root@hadoop-node01:~/hadoop/etc/hadoop# jps
122113 NodeManager
121974 DataNode
122942 Jps

至此,Hadoop部署成功。

可以在通过访问192.168.41.141:50070访问web页面:

配置Hbase

获取Hbase

wget http://mirror.bit.edu.cn/apache/hbase/2.2.1/hbase-2.2.1-bin.tar.gz  

解压

tar -zxvf hbase-2.2.1-bin.tar.gz  

重命名

mv hbase-2.2.1 hbase 

配置环境变量

把Hbase的路径添加到环境变量中:

vi /etc/profile//添加如下
export HBASE_HOME=/home/wang/hbase
export PATH=$HBASE_HOME/bin:$PATH

运行source /etc/profile使之生效。

修改配置文件(conf文件夹下)

hbase-env.sh

修改如下:

# The java implementation to use.  Java 1.8+ required.
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_221# Extra Java CLASSPATH elements.  Optional.
export JAVA_CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# Where log files are stored.  $HBASE_HOME/logs by default.
export HBASE_LOG_DIR=/root/hbase/logs
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=tru

hbase-site.xml

修改如下:

<configuration>
<property>
<name>hbase.master</name>
<value>hadoop-master:6000</value>
</property><property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master:9000/hbase</value>
</property><property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property><property>
<name>hbase.tmp.dir</name>
<value>/root/hbase/tmp</value>
</property><property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/root/zookeeper</value>
</property><property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-master,hadoop-node01,hadoop-node02</value>
</property></configuration>

regionservers

修改如下:

hadoop-node01
hadoop-node02

部署Hbase

将修改后的Hbase文件夹拷贝至Node01、Node02节点上:

scp -r /root/hbase root@hadoop-node01:/root/
scp -r /root/hbase root@hadoop-node02:/root/

并且修改环境变量。

启动Hbase

执行start-hbse.sh启动Hbase:

root@hadoop-master:~/zookeeper# start-hbase.sh
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class
SLF4J: Found binding in [jar:file:/root/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/root/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class
SLF4J: Found binding in [jar:file:/root/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
hadoop-master: running zookeeper, logging to /root/hbase/logs/hbase-root-zookeeper-hadoop-master.out
hadoop-node02: running zookeeper, logging to /root/hbase/logs/hbase-root-zookeeper-hadoop-node02.out
hadoop-node01: running zookeeper, logging to /root/hbase/logs/hbase-root-zookeeper-hadoop-node01.out
running master, logging to /root/hbase/logs/hbase-root-master-hadoop-master.out
hadoop-node01: running regionserver, logging to /root/hbase/logs/hbase-root-regionserver-hadoop-node01.out
hadoop-node02: running regionserver, logging to /root/hbase/logs/hbase-root-regionserver-hadoop-node02.out

运行bash shell:


至此,集群下的Hbase搭建完成。

部署Hadoop集群相关推荐

  1. 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...

  2. 实战CentOS系统部署Hadoop集群服务

    导读 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高 ...

  3. python自动化部署hadoop集群_大数据集群的自动化运维实现思路

    原标题:大数据集群的自动化运维实现思路 | 作者简介 王晓伟 知数堂<大数据实战就业>课程讲师 六年大数据相关工作经验 清华大学软件工程硕士 曾就职于网易.搜狗等互联网企业 从事大数据及数 ...

  4. linux上部署hadoop集群 HA-QJM篇

    环境 基础篇需要4台机器(一台namenode,三台datanode); HA篇需要8台机器:两台namenode(一台作active nn,另一台作standby nn),三台datanode,三台 ...

  5. Ambari离线部署Hadoop集群踩到的坑

    1.远程拷贝HDP组件不全导致安装client时缺少rpm包,手动拷贝解决 2.安装HAWQ,启动时报错 passwordlell ssh hawq hosts ,hawq master 和其他主机机 ...

  6. hadoop集群_使用docker部署hadoop集群

    0. 写在前面 网上也已经有很多教程了,但是其中都有不少坑,在此记录一下自己安装的过程. 目标:使用docker搭建一个一主两从三台机器的hadoop2.7.7版本的集群 准备: 首先要有一台内存8G ...

  7. 离线部署 Cloudera Manager 5 和 CDH 5.12.1 及使用 CDH 部署 Hadoop 集群服务

    Cloudera Manager Cloudera Manager 分为两个部分:CDH和CM. CDH是Cloudera Distribution Hadoop的简称,顾名思义,就是cloudera ...

  8. Ambari自动部署Hadoop集群实战

    一.大数据简介 1.为什么使用大数据技术? 数据量越来越大 数据分析的实时性越来越强 数据结果的应用越来越广泛 结论: 我们需要使用大数据技术. 2.大数据的定义 大数据是收集.整理.处理大容量数据集 ...

  9. Hadoop系列一:Hadoop集群分布式部署

    1.环境准备 VirtualBox虚拟机上分布部署三套Ubuntu15.10操作系统(Linux 64位),命名为Ubuntu_Hadoop(用户名hp).Ubuntu_C(用户名c).Ubuntu_ ...

  10. 虚拟化Hadoop集群的部署和管理 - 基本操作

    在Big Data Extensions(BDE)上不仅可以在分钟级别非常快速地部署Hadoop集群,这点可以通过前文<大数据虚拟化零起点-6基础运维第五步-使用CLI创建Apache Hado ...

最新文章

  1. 正向最大匹配算法 python代码_中文分词算法之最大正向匹配算法(Python版)
  2. 浅析主键自增长的优缺点
  3. 空中网首创人周云帆任北京昌平区副区长
  4. CoreLocation+MapKit系统定位(含坐标以及详细地址)
  5. 美女,你这是把腰带当裙子了?
  6. 【转载】用备份进行Active Directory的灾难重建:Active Directory系列之三
  7. LA 6047Perfect Matching(回文串哈希)
  8. Android测试驱动开发实践2
  9. Mysql数据库死锁实战-Jmeter连接配置数据库[Mysql]
  10. POSTGRESQL 一个“大” SQL 的优化历险记
  11. 使用阿里云和gcr.azk8s.cn镜像安装Kubernetes (K8s)
  12. GA125整经机普罗菲斯触摸屏程序+西门子PLC S7-200程序
  13. biogeme-nest_logit-cnblog
  14. Weblogic补丁升级问题
  15. iOS - 技术储备列表
  16. 2021年安全员-B证考试题及安全员-B证报名考试
  17. /plus/list.php?tid= dedecms,织梦DedeCMS5.7全站实现伪静态的方法
  18. 汇编语言:从XX单元开始的连续30个单元中存放有30个无符号数,从中找出最大者送入yy单元中
  19. Java使用 poi,pageOffice两种工具进行 word文件合并
  20. WebClient-UploadXXX

热门文章

  1. 无法上网之NOD32
  2. 51cto案例精解第一章PPT
  3. hdu 4300 Clairewd’s message kmp匹配! 多校联合赛第一题
  4. 为 macOS Monterey 优化,有了快捷指令,这些软件效率倍增
  5. 苹果Mac测试及维护工具:​​​​​​​​Techtool Pro
  6. iOS开发之UITableViewController指定刷新cell 或section
  7. 在新款mac上找回经典的开机启动声,一条命令轻松搞定
  8. jenkins持续化集成中注意的3个小问题
  9. 希捷发布新NAS产品为小型企业提供存储便利性
  10. 动态规划------平均切分数组之和为两部分