一、环境准备
1、安装centos系统时为hadoop指定专用用户:hadoop
2、如果sudo命令有问题则可以先配置sudo,以便后续安装运维方便,如下步骤修改:
1)、切换到root权限:su root(如果已经是则不用切换)
2)、修改sudoers文件,添加hadoop用户的权限:vi /etc/sudoers,在“root ALL=(ALL) ALL”这一行后面添加一行:“hadoop ALL=(ALL) ALL”。
3、修改hosts:vi /etc/hosts,配置master和slave的ip与域名,例如:
192.168.22.129 master
192.168.22.130 slave1
192.168.22.131 slave2
4、修改系统的域名:vi /etc/sysconfig/network,把HOSTNAME修改为新的主机名称(主机为master,从机为slave(1..n)),修改完后重新启动服务器,启动后重新连接linux远程终端,重新进入则可在执行命令处看到变化:[root@localhost]# 变为:[root@master]#
二、安装jdk
1、下载jdk的rpm安装包,执行如下命令:
rpm –ivh jdk---.rpm
安装完成后,执行java –version,查看是否安装成功。
2、配置环境变量:vi /etc/profile,添加如下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_25
export PATH=$PATH:$JAVA_HOME/bin
添加完成后,执行source /etc/profile
注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
三、配置ssh
需配置ssh实现master、slave机之间的相互免密码登录。
1、 如果不是hadoop用户,需要切换到hadoop用户;
2、 如果centos没有安装ssh,则需先安装
3、 在所有的服务器执行如下命令,生成密钥对
ssh-keygen -q -t rsa -N ""
4、 复制所有的slave服务器的公钥到master的.ssh目录下
[hadoop@slave1 ~]$ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave1.pub
[hadoop@slave2 ~]$ scp ~/.ssh/id_rsa.pub hadoop@master:~/.ssh/slave2.pub
5、 在master服务器把所有服务器的公钥加入到用于认证的公钥文件:
[hadoop@master ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[hadoop@master ~]cat ~/.ssh/slave1.pub >> ~/.ssh/authorized_keys
[hadoop@master ~]cat ~/.ssh/slave2.pub >> ~/.ssh/authorized_keys
6、 对authorized_keys 进行授权:
[hadoop@master ~]chmod 600 ~/.ssh/authorized_keys
7、 复制master的authorized_keys到所有的slave服务器:
[hadoop@master ~]scp ~/.ssh/authorized_keys hadoop@slave1:~/.ssh/authorized_keys
[hadoop@master ~]scp ~/.ssh/authorized_keys hadoop@slave2:~/.ssh/authorized_keys
注:.ssh文件是隐藏文件,在~/下看不见,但是可以通过cd进入
至此免密码登录本机的配置已经配置好
8、 验证ssh是否安装成功:
在master、slave之间以及slave之间进行相互的ssh登录,如果不需要输入密码则成功:
例如:[hadoop@master ~]ssh slave1,执行后不需要密码及可以登录slave1
四、安装hadoop
解压hadoop压缩包:sudo tar xzf hadoop-x.y.z.tar.gz
更改用户和用户组:sudo chown -R hadoop:hadoop hadoop-x.y.z
配置hadoop:
1. 修改$HADOOP_HOME/conf/hadoop-evn.sh,取消JAVA_HOME的注释并配置正确的信息,如:
export JAVA_HOME=/usr/java/jdk1.7.0_25
2. 配置$HADOOP_HOME/conf/core-site.xml添加如下内容:
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/data</value>
</property>
3. 配置$HADOOP_HOME/conf/hdfs-site.xml添加如下内容:
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
4. 配置$HADOOP_HOME/conf/mapred-site.xml添加如下内容:
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
5. 配置$HADOOP_HOME/conf/masters添加如下内容:
master
6. 配置$HADOOP_HOME/conf/slaves添加如下内容:
slave1
slave2
7. 通过scp命令把在master服务器上配置好的hadoop目录copy到所有的slave服务器上,保持目录相同
如果slave的jdk安装目录有不同的,需要单独修改$HADOOP_HOME/conf/hadoop-evn.sh配置文件
8. 配置master和所有的slave服务器的环境变量:sudo vi /etc/profile在profile中加入:
export HADOOP_HOME=/home/hadoop/software/hadoop-1.2.1
export PATH=$PATH:$HADOOP_HOME/bin
添加完成后,执行source /etc/profile命令
注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
9. 格式化namenode
hadoop namenode –format
10. 关闭所有服务器的防火墙(否则可能因为端口不可访问而导致启动失败)
重启后永久性生效:chkconfig iptables off
即时生效,重启后失效:service iptables stop
11. 安装成功,通过命令start-all.sh启动hadoop集群
五、安装hbase
安装前提:
Java已经安装;
Hadoop已经正确安装,并可以启动hdfs;
必须安装ssh,并且已经实现服务器建的免密码登陆;
集群的时钟基本一致,如果时间相差比较大,则会导致安装失败;
解压hbase-0.94.12.tar.gz并且配置hbase
1. 配置hbase-env.sh:
export JAVA_HOME=/usr/java/jdk1.7.0_25
export HBASE_MANAGES_ZK=false:false,使用独立的zookeeper
2. 配置hbase-site.xml:
<configuration>
<property>
<name>hbase.master</name>
<value>hdfs://master:60000</value>
</property>
<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.zookeeper.quorum</name> <value>master,slave1,slave2</value>
</property>
</configuration>
3. 配置regionservers,添加hbase的region服务器域名:
slave1
slave2
4. 通过scp命令copy hbase的目录到其他服务器
5. 配置所有服务器的环境变量:vi /etc/profile,添加如下内容:
export HBASE_HOME=/home/hadoop/software/hbase-0.94.12
export PATH=$PATH:$HBASE_HOME/bin
执行source /etc/profile命令,使修改生效。
注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
六、安装zookeeper
1. 解压zookeeper-3.4.5.tar.gz并且配置:
2. 进入conf目录,把zoo_sample.cfg更名为zoo.cfg
3. 配置zoo.cfg,在文件中添加如下信息:
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
4. 通过scp命令把zookeepere的目录copy到其它几台服务器
5. 执行vi /tmp/zookeeper/myid命令在文件myid中保存服务器对应的id,与zoo.cfg中的数字对应,本文的master服务器为1,slave1:2,slave2:3
6. 修改各服务器的环境变量:vi /etc/profile:
export ZOOKEEPER_HOME=/home/hadoop/software/zookeeper-3.4.5
export PATH=$PATH:$ZOOKEEPER_HOME/bin
执行命令source /etc/profile
注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作
七、启动hadoop、zookeeper、hbase
启动顺序先hadoop,再zookepper,最后hbase,分别的执行命令如下:
start-all.sh
zkServer.sh start
start-hbase.sh
其中zookeeper的启动需要在每台服务器执行,hadoop和hbase只需在master服务器启动,slave集群会自动启动。
停止的顺序与启动向反。
启动完后,在master服务器通过jps命令可以看到如下的进程:
[hadoop@master zookeeper]$ jps
3779 QuorumPeerMain
2917 SecondaryNameNode
2767 NameNode
4053 HMaster
2999 JobTracker
在slave服务器可以看到如下的进程:
[hadoop@slave1 zookeeper-3.4.5]$ jps
3526 HRegionServer
2602 DataNode
2669 TaskTracker
3393 QuorumPeerMain
在master服务器执行hbase shell命令,进入hbase命令模式,执行create 'f1', 'f2'命令创建表f1,再执行list命令查看是否有表f1,如果均符合预期则说明hbase可用:
hbase(main):001:0> list
TABLE
0 row(s) in 4.7660 seconds
hbase(main):002:0> create 'f1', 'f2'
0 row(s) in 1.8420 seconds
hbase(main):003:0> list
TABLE
f1
1 row(s) in 0.1310 seconds
至此完全安装完成。
八、安装及使用等问题解决方案
1. master与slave机无法通信问题
通常是因为防火墙导致的问题,可以关闭防火墙试试。
2. 使用非hadoop用户启动hadoop时导致再用hadoop用户启动失败的问题
例如:如果hadoop集群的用户是非root用户,但是通过root用户启动后,再用hadoop启动,会失败,此时通过如下步骤解决;
在root用户下执行stop-all.sh命令
ps -aux|grep java查找是否有hadoop的进程,有则kill
切换到hadoop用户
通过chown -R 把$hadoop.tmp.dir指定的data目录的所有文件的拥有者设置为hadoop用户,
因为hdfs在启动时会生成新的fsimage和edits文件,通过root用户启动过后,这两个文件的拥有者变为root用户,再用hadoop用户启动时会没有写权限导致失败
重启成功
3. 启动hbase后立马停止hbase可能导致无法停止hbase的问题
通过master的日志:Master has completed initialization,当出现了这句话后才可以停止hbase,否则就算通过jps可以看到hbase的进程,但是并不是真正的启动完成,这时停止hbase会导致无法停止,这时可以强制kill hbase的进程,需要注意的是,强制kill后,需要重新启动zookeepper,否则再启动hbase时,master启动不了,因为在zookeeper里还有master的信息,但是实际master已经被kill了。
4. hbase的regionserver依赖hdfs的datanode,因此在配置hbase的regionservers配置文件时,需配置有datanode的服务器,否则会导致hbase经常失败,或者经常无法停止的问题。
分享到:
相关推荐
环境介绍:3台虚拟机安装centos6.5 64位、jdk1.7 64位、hadoop2.5.2 64位
VMware10+CentOS6.5+Hadoop2.2+Zookeeper3.4.6+HBase0.96安装过程详解 用于解决分布式集群服务器
企业内部实际 hadoop zookeeper hbase搭建步骤明细
前言:Hadoop是Apache开源组织的一个分布式计算开源框架,在很多大型网站上都已经得到了应用,如亚马逊、Facebook和Yahoo等等。对于我来说,最近的一个使用点就是服务集成平台的日志分析。服务集成平台的日志量将会...
VMware10+CentOS6.5+Hadoop2.2+Zookeeper3.4.6+HBase0.96安装过程详解.pdf
通过VirtualBox安装多台虚拟机,实现集群环境搭建。 优势:一台电脑即可。 应用场景:测试,学习。...内附百度网盘下载地址,有hadoop+zookeeper+spark+kafka等等·····需要的安装包和配置文件
适合新手,详细 01-Java环境安装 02- Eclipse下载与安装 03-VMware虚拟机的安装 04-在VMware中安装CentOS 05- Hadoop集群+ Hive+ MySQL搭建
本文将HBase-2.2.1安装在Hadoop-3.1.2上,关于Hadoop-3.1.2的安装,请参见《基于zookeeper-3.5.5安装hadoop-3.1.2》一文。安装环境为64位CentOS-Linux 7.2版本。 本文将在HBase官方提供的quickstart.html文件的指导...
搭建hadoop+zookeeper+hbase+spark集群的配置文件和启停命令
大数据 hadoop spark hbase ambari全套视频教程(购买的付费视频)
自己整理的Hadoop环境的一些安装,和一些简单的使用,其中包括Hadoop、hbase、hive、mysql、zookeeper、Kafka、flume。都是一些简单的安装步骤和使用,只在自己的虚拟机(Linux centOS7)上使用测试过。按照步骤一步...
基于CentOS7的Hadoop2.7.7集群部署+Hive1.2.2+Zookeeper3.4.14集群+hbase1.x+kylin2.5.0环境搭建,以及一个简单的kylin案例介绍
亲手在Centos7上安装,所用软件列表 apache-flume-1.8.0-bin.tar.gz apache-phoenix-4.13.0-HBase-1.3-bin.tar.gz hadoop-2.7.4.tar.gz hbase-1.3.1-bin.tar.gz jdk-8u144-linux-x64.tar.gz kafka_2.12-1.0.0.tgz ...
CentOS-6.4 64位系统下hadoop-2.2.0+hbase-0.96+zookeeper-3.4.5 分布式安装配置
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...Zookeeper (QuorumPeerMain) NameNode Resource Manager DFSZK Failover Controller
基于Docker构建的Hadoop开发测试环境,包含Hadoop,Hive,HBase,Spark+源代码+文档说明 基于Docker的Hadoop开发测试环境使用说明 ## 0.内容 1. 基本软件环境介绍 2. 使用方法简介 3. 已知问题 4. 注意事项 ## 1....
最近学习hadoop,综述了大家的博客,终于弄出来一篇自己认为比较完成的文档。 centos6.2 mini hadoop-2.0.0-cdh4.3.0.tar.gz zookeeper-3.4.5-cdh4.3.0.tar.gz hbase-0.94.6-cdh4.3.0.tar.gz
用于Docker和Kubernetes的50多个DockerHub公共映像-Hadoop,Kafka,ZooKeeper,HBase,Cassandra,Solr,SolrCloud,Presto,Apache Drill,Nifi,Spark,Consul,Riak,TeamCity和DevOps工具建立在主要Linux发行版...