hadoop集群部署
1. 准备三台机器,如`10.8.177.23`,`10.8.177.24`,`10.8.177.25`
2. 修改主机名称,配置`hosts`文件(root用户下操作):
# 每台机器执行,我这里hd开头,后边的数字与机器ip的最后一个组一致 hostnamectl set-hostname hd-23 hostnamectl set-hostname hd-23 --static # 修改hosts文件, vi /etc/hosts #加入路由配置 10.8.177.23 hd-23 10.8.177.24 hd-24 10.8.177.25 hd-25
3. 每台机器上创建一个用户,如hadoop:
useradd -d /home/hadoop -m hadoop # 最好创建一个用户,不要直接使用root进行操作
4. 设置免密登录(==hadoop用户,下同==)
> 只需要设置master对于其他两台机器进行免密登录即可
# 1、 在Master机器上的主目录中生成ssh公钥 ssh-keygen -t rsa # 2、 在其余机器上主目录中创建.ssh目录(执行上边的命令也可以) # 3、 将Master的公钥发送给其余两台服务器(需要输入免密) scp id_rsa.pub hadoop@hd-24:/home/hadoop/.ssh/id_rsa.pub.23 scp id_rsa.pub hadoop@hd-25:/home/hadoop/.ssh/id_rsa.pub.23 # 4、 在.shh中创建authorized_keys文件,并授权 touch authorized_keys chmod 644 authorized_keys # 5、 将Master的公钥加入到授权文件中 echo id_rsa.pub.23 >> authorized_keys # 以上,即可从23无密访问24,25,可以使用以下命令测试: ssh hd-24
5. 下载jdk、hadoop、hbase、zookeeper
> - jdk(也可以自行下载):`wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz` > - zookeeper-3.4.8.tar.gz: `wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz` > - hbase-1.2.2-bin.tar.gz:`wget http://mirrors.hust.edu.cn/apache/hbase/1.2.2/hbase-1.2.2-bin.tar.gz` > - hadoop-2.7.2.tar.gz:`wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz`
6. 解压以上文件
7. 配置环境变量
vi ~/.bashrc JAVA_HOME=/home/hadoop/jdk1.8.0_77 JRE_HOME=$JAVA_HOME/jre CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar HADOOP_HOME=/home/hadoop/hadoop-2.7.2 HBASE_HOME=/home/hadoop/hbase-1.2.2 PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HBASE_HOME/sbin expor JAVA_HOME JRE_HOME CLASSPATH HADOOP_HOME HBASE_HOME # 配置完成以后进行编译生效 source .bashrc #发送给其余机器 scp .bashrc hadoop@hd-24:/home/hadoop/
8. 配置hadoop
hadoop的配置文件位于`hadoop-2.7.2/etc/hadoop`下,需要配置`core-site.xml`,`hdfs-site.xml`,`yran-site.xml`,`mapred-site.xml`,`hadoop-env.sh`,`slaves`
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hd-23:6000</value> <final>true</final> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/configsets/hadoop_tmp</value> </property> <property> <name>fs.checkpoint.period</name> <value>3600</value> </property> <property> <name>fs.checkpoint.size</name> <value>67108864</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/configsets/metadata</value> </property> <property> <name>dfs.http.address</name> <value>hd-23:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hd-23:50090</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/configsets/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hd-23</value> </property> <property> <name>yarn.resourcemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log.dir</name> <value>/home/hadoop/configsets/yarn_log</value> </property> </configuration>
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.cluster.temp.dir</name> <value>/home/hadoop/configsets/mr_tmp</value> <final>true</final> </property> <property> <name>mapreduce.jobhistory.address</name> <value>hd-23:6002</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hd-23:6003</value> </property> </configuration>
hadoop-env.sh 将JAVA_HOME配置进去
#将下边这句话注释了,不好用,但按理说应该能用,结果就是不好用 #export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/home/hadoop/jdk1.8.0_77 ```
slaves 文件中加入25,24
hd-24 hd-25
9. 打包发送至其他机器
jdk、hadoop、hbase、zookeeper都可以采用这种方式配置后,进行发送,zookeeper稍有不同(详见后文)
tar cf hadoop-2.7.2.tar hadoop-2.7.2 scp hadoop-2.7.2.tar hadoop@hd-24:/home/hadoop scp hadoop-2.7.2.tar hadoop@hd-25:/home/hadoop ssh hd-24 tar xf hadoop-2.7.2.tar exit ssh hd-25 tar xf hadoop-2.7.2.tar exit
10. 格式化名称节点
hadoop namenode -farmat
11. 启停hadoop集群
# 启动 start-all.sh #停止 stop-all.sh
12. jsp查看
[hadoop@hd-23 ~]$ jps 12304 QuorumPeerMain 16208 ResourceManager 24322 Jps 15843 NameNode 16042 SecondaryNameNode [root@hd-24 home]# jps 12082 QuorumPeerMain 15116 Jps 12924 DataNode 13036 NodeManager [hadoop@hd-25 ~]$ jps 20130 DataNode 20242 NodeManager 19317 QuorumPeerMain 21755 Jps
13. 浏览器查看
http://hd-23:50070/ http://hd-23:8088/
zookeeper集群部署
1. 配置,配置文件位于`/home/hadoop/zookeeper-3.4.8/conf`
cp zoo_sample.cfg zoo.cfg vi zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/hadoop/zookeeper-3.4.8/data clientPort=2181 # 这里需要注意下server.{id} server.23=10.8.177.23:2181:3887 server.24=10.8.177.24:2182:3888 server.25=10.8.177.25:2183:38892. 数据目录
> zoo.cfg定义了dataDir,需要在每个服务器的创建此目录,并建立myid文件,内部存储zoo.cfg中server.{id}的id数值
mkdir /home/hadoop/zookeeper-3.4.8/data cd /home/hadoop/zookeeper-3.4.8/data vi myid 23 ssh hd-24 mkdir /home/hadoop/zookeeper-3.4.8/data cd /home/hadoop/zookeeper-3.4.8/data vi myid 24 exit ssh hd-25 mkdir /home/hadoop/zookeeper-3.4.8/data cd /home/hadoop/zookeeper-3.4.8/data vi myid 25 exit3. 启停
cd /home/hadoop/zookeeper-3.4.8/bin ./zkServer.sh start
HBase部署
1、 配置hbase-site.xml
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://hd-23:6000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hd-23,hd-24,hd-25</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/hadoop/zookeeper-3.4.8/data</value> </property> </configuration>2、配置regionservers
vi regionservers hd-23 hd-243、 scp发送至其他机器
> 具体方式参见第一章第9节
4、 启停hbase
==启动hbase之前须先启动hdfs==
start-hbase.sh stop-hbase.sh
5、 jps查看
[hadoop@hd-23 bin]$ jps 12304 QuorumPeerMain 16208 ResourceManager 24592 Jps 22898 HMaster 15843 NameNode 23139 HRegionServer 16042 SecondaryNameNode [root@hd-24 home]# jps 14512 HRegionServer 12082 QuorumPeerMain 15276 Jps 12924 DataNode 13036 NodeManager
6、 浏览器查看
http://hd-23:16030/
结语
总结
通过以上步骤快速搭建了hadoop环境,在此期间,只有进行SSH免密登录时需要登录其他两台机器进行添加公钥文件,其余均通过一个SSH客户端窗口搞定(其实免密登录也可以)。linux发行版本为centos7,如果使用centos 6.x的版本,修改主机名称略有不同(`etc/sysconfig/network`,`hosts`,`reboot`)。
> - 猜想
> 搭建此环境的目的有两点:
> 1、 提供一个hadoop测试环境。
> 2、 为后续采用docker进行快速部署做预研。通过以上搭建过程可知,除了zookeeper的dataDir目录中myid文件内容不同之外,其余的内容均相同,而myid的内容可以通过读取zoo.cfg文件获取,故如果此时要做多机docker集群的话,只要解决了多机docker容器能互相访问(同个局域网),就可以采用同一个镜像进行快速部署。而使多机docker的容器能够访问,可以采用open vSwitch搭建一个局域网,这个也是下个实验的目标。
相关推荐
jdk1.8.0_131、apache-zookeeper-3.8.0、hadoop-3.3.2、hbase-2.4.12 mysql5.7.38、mysql jdbc驱动mysql-connector-java-8.0.8-dmr-bin.jar、 apache-hive-3.1.3 2.本文软件均安装在自建的目录/export/server/下 ...
hadoop+hbase分布式集群安装方法。
Hadoop2.2+Zookeeper3.4.5+HBase0.96集群环境搭建
hadoop3.x分布式平台搭建、HBase分布式集群安装与配置
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6 搭建分布式集群环境详解。 详细介绍了如何搭建分布式集群环境。
本文档详细介绍了如何用ZooKeeper和Hadoop、HBase搭建分布式大数据分析平台。
Hadoop 2.6.0+Hbase1.12+mahout0.9 集群搭建,自己写的,可以根据实际情况搭建伪分布式或者完全分布式。
hadoop2.7.2 +hbase1.2.0 集群环境搭建软件资源
Spark分布式集群搭建
人工智能-Hadoop
hadoop2.2集群搭建遇到的各种问题。
#资源达人分享计划#
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...
采用Docker Swarm集群方式, 部署Hadoop3.x + HBase2.x的真正分布式集群环境,趟坑无数, 配置文件已整理好,内置Dockerfile构建文件、docker-compose脚本文件、hbase安装包、hadoop配置文件等。可以根据生产环境, ...
VMware10+CentOS6.5+Hadoop2.2+Zookeeper3.4.6+HBase0.96安装过程详解 用于解决分布式集群服务器
主要介绍了详解VMware12使用三台虚拟机Ubuntu16.04系统搭建hadoop-2.7.1+hbase-1.2.4(完全分布式),具有一定的参考价值,有兴趣的可以了解一下。
Hadoop 分布式集群搭建 Hadoop由Apache基金会开发的分布式系统基础架构,是利用集群对大量数据进行分布式处理和存储的软件框架。用户可以轻松地在Hadoop集群上开发和运行处理海量数据的应用程序。Hadoop有高可靠,...
自己整理的Hadoop环境的一些安装,和一些简单的使用,其中包括Hadoop、hbase、hive、mysql、zookeeper、Kafka、flume。都是一些简单的安装步骤和使用,只在自己的虚拟机(Linux centOS7)上使用测试过。按照步骤一步...
集群搭建:里面包括hadoop hive hbase spark mongo 等组建
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...