hadoop+hbase+zookeeper安装说明.docx

上传人:b****3 文档编号:26782981 上传时间:2023-06-22 格式:DOCX 页数:30 大小:197.99KB
下载 相关 举报
hadoop+hbase+zookeeper安装说明.docx_第1页
第1页 / 共30页
hadoop+hbase+zookeeper安装说明.docx_第2页
第2页 / 共30页
hadoop+hbase+zookeeper安装说明.docx_第3页
第3页 / 共30页
hadoop+hbase+zookeeper安装说明.docx_第4页
第4页 / 共30页
hadoop+hbase+zookeeper安装说明.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

hadoop+hbase+zookeeper安装说明.docx

《hadoop+hbase+zookeeper安装说明.docx》由会员分享,可在线阅读,更多相关《hadoop+hbase+zookeeper安装说明.docx(30页珍藏版)》请在冰豆网上搜索。

hadoop+hbase+zookeeper安装说明.docx

hadoop+hbase+zookeeper安装说明

一、环境

1主机规化

集群中包括3个节点:

hadoop01为Master,其余为Salve,节点之间局域网连接,可以相互ping通。

机器名称

地址

hadoop01

10.10.151.100

hadoop02

10.10.151.101

hadoop03

10.10.151.102

2软件版本

hadoop-1.2.1.tar.gzzookeeper-3.4.6.tar.gzhbase-0.98.10.1-hadoop1-bin.tar.gz

二、准备工作,三台机器都需要做,将三台机器selinux,iptables停用

1停用selinux

vi/etc/selinux/config

将SELINUX=disabled

2安装JDK

使用已有的/usr/inp/java

vi/etc/profile

在最后添加

JAVA_HOME=/usr/inp/java

PATH=$PATH:

$JAVA_HOME/bin

exportJAVA_HOMEPATH

[root@hadoop01java]#source/etc/profile  让其java命令立即生效

[root@hadoop01java]#java  执行java命令,如果能正常执行就表示java安装完成

3添加一个hadoop用户,用来运行hadoop集群

useraddhadoop

echo"hadoop"|passwd--stdinhadoop

4做三台机器之间做双机互信,原因master通过远程启动datanode进程和tasktracker进程,如果不做双机互信,会导致每次启动集群服务都会需要密码

vi/etc/hosts

将hosts文件分别复制到另外两台。

修改这个文件etc/sysconfig/network这个文件里的主机名.

NETWORKING=yes

HOSTNAME=hadoop01

三台机子分别改主机名

5切换到hadoop用户,对其用做双机互信,先在三台机器先执行ssh-keygen生成公钥与私钥。

将公钥复制到别的机器,需要对hadoop01,hadoop03,都做相同的动作。

[hadoop@hadoop01~]$ssh-keygen  -t  rsa

(这个命令将为hadoop上的用户hadoop生成其密钥对,询问其保存路径时直接回车采用默认路径,当提示要为生成的密钥输入passphrase的时候,直接回车,也就是将其设定为空密码。

生成的密钥对id_rsa,id_rsa.pub,默认存储在/home/hadoop/.ssh目录下然后将id_rsa.pub的内容复制到每个机器(也包括本机)的/home/dbrg/.ssh/authorized_keys文件中,如果机器上已经有authorized_keys这个文件了,就在文件末尾加上id_rsa.pub中的内容,如果没有authorized_keys这个文件,直接复制过去就行)

[hadoop@hadoop01~]$ cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

[hadoop@hadoop01~]$ssh-copy-id-ihadoop02

[hadoop@hadoop01~]$ssh-copy-id-ihadoop03

[hadoop@hadoop02~]$ssh-copy-id-ihadoop01

[hadoop@hadoop03 ~]$ssh-copy-id-ihadoop01

切换到root用户,重启sshd服务

servicesshdrestart

 

6同步时间,三台机器启用ntpd服务,另外两台执行相同的操作

vi/etc/resolv.conf    

nameserver202.106.0.20

nameserver203.196.0.100      

[root@hadoop01~]#crontab-e

*/5****/usr/sbin/ntpdatentp.api.bz&>/dev/null

7Linux打开文件数1024限制的原理以及解决办法

1、/etc/pam.d/login添加 

sessionrequired    /lib/security/pam_limits.so 

注意看这个文件的注释 

2./etc/security/limits.conf添加 

www         –   nofile      1006154 

www是一个用户,如果是想所有用户生效的话换成*,设置的数值与硬件配置有关,别设置太大了。

 

-----------------------------------------------------------------------------

 

3.修改/etc/rc.local  添加 

echo8061540>/proc/sys/fs/file-max 

做完3个步骤,就可以了。

 

三、安装hadoop

[root@hadoop01~]#tarxfhadoop-1.2.1.tar.gz -C/usr/local/

[root@hadoop01 ~]#chown-Rhadoop:

hadoop /usr/local/hadoop-1.2.1

[root@hadoop01 ~]# suhadoop

[hadoop@hadoop01~]$cd/usr/local/hadoop-1.2.1/

(1)Hadoop的配置文件都存储在conf下,配置文件解释

hadoop-env.sh:

用于定义hadoop运行环境相关的配置信息,比如配置JAVA_HOME环境变量、为hadoop的JVM指定特定的选项、指定日志文件所在的目录路径以及master和slave文件的位置等;

core-site.xml:

 用于定义系统级别的参数,它作用于全部进程及客户端,如HDFSURL、Hadoop的临时目录以及用于rack-aware集群中的配置文件的配置等,此中的参数定义会覆盖core-default.xml文件中的默认配置;

hdfs-site.xml:

 HDFS的相关设定,如文件副本的个数、块大小及是否使用强制权限等,此中的参数定义会覆盖hdfs-default.xml文件中的默认配置;

mapred-site.xml:

mapreduce的相关设定,如reduce任务的默认个数、任务所能够使用内存的默认上下限等,此中的参数定义会覆盖mapred-default.xml文件中的默认配置;

masters:

 hadoop的secondary-masters主机列表,当启动Hadoop时,其会在当前主机上启动NameNode和JobTracker,然后通过SSH连接此文件中的主机以作为备用NameNode;

slaves:

Hadoop集群的slave(datanode)和tasktracker的主机列表,master启动时会通过SSH连接至此列表中的所有主机并为其启动DataNode和taskTracker进程;

Hadoop-metrics2.properties:

控制metrics在hadoop上如何发布属性

Log4j.properties:

系统日志文件、namenode审计日志、tarsktracker子进程的任务日志属性

(2)修改hadoop-env.sh

[hadoop@hadoop01hadoop-1.2.1]$viconf/hadoop-env.sh

(3)修改core-site.xml

[hadoop@hadoop01hadoop-1.2.1]$viconf/core-site.xml

hadoop.tmp.dir

/data/hadoop/tmp

fs.default.name

hdfs:

//hadoop01:

9000

 

hadoop.tmp.dir属性用于定义Hadoop的临时目录,其默认为/tmp/hadoop-${username}。

HDFS进程的许多目录默认都在此目录中,/hadoop/tmp目录,需要注意的是,要保证运行Hadoop进程的用户对其具有全部访问权限。

fs.default.name属性用于定义HDFS的名称节点和其默认的文件系统,其值是一个URI,即NameNode的RPC服务器监听的地址(可以是主机名)和端口(默认为8020)。

其默认值为file:

///,即本地文件系统。

(4)修改hdfs-site.xml文件

[hadoop@hadoop01hadoop-1.2.1]$viconf/hdfs-site.xml

dfs.data.dir

/data/hadoop/data

dfs.replication

2

dfs.datanode.max.xcievers

4096

dfs.datanode.socket.write.timeout

6000000

dfs.socket.timeout

6000000

 

dfs.name.dir属性定义的HDFS元数据持久存储路径,默认为${hadoop.tmp.dir}/dfs/name

dfs.replication属性定义保存副本的数量,默认是保存3份,由于这里只有两台slave。

所以设置2。

(5)修改mapred-site.xml文件

[hadoop@hadoop01hadoop-1.2.1]$ viconf/mapred-site.xml

mapred.job.tracker

http:

//hadoop01:

9001

(6)编辑masters文件

masters用于指定,辅助名称节点(SecondaryNameNode)的主机名或主机地址

[hadoop@hadoop01hadoop-1.2.1]$ viconf/masters

hadoop01

(7)编辑slaves文件,这个文件只需在master主机上编辑就行

用于指定各从服务器(TaskTracker或DataNode)的主机名或主机地址

hadoop02

hadoop03

在三台机器上分别创建两个目录:

[root@hadoop01local]#mkdir-p/data/hadoop/data

[root@hadoop01local]#mkdir-p/data/hadoop/tmp

[root@hadoop01local]#chown-Rhadoop:

hadoop/data/hadoop/

[root@hadoop02 local]#mkdir-p/data/hadoop/data

[root@hadoop02 local]#mkdir-p/data/hadoop/tmp

[root@hadoop02 local]#chown-Rhadoop:

hadoop/data/hadoop/

[root@hadoop03 local]#mkdir-p/data/hadoop/data

[root@hadoop03 local]#mkdir-p/data/hadoop/tmp

[root@hadoop03 local]#chown-Rhadoop:

hadoop/data/hadoop/

(8)配置slave:

将配置的hadoop整个目录复制到hadoop02,haoop03

[root@hadoop01~]#scp-rp/usr/local/hadoop-1.2.1hadoop02:

/usr/local/

[root@hadoop01~]#scp-rp/usr/local/hadoop-1.2.1hadoop03:

/usr/local/

修改权限:

[root@hadoop02~]#chown -Rhadoop:

hadoop/usr/local/hadoop-1.2.1/

[root@hadoop03 ~]#chown -Rhadoop:

hadoop/usr/local/hadoop-1.2.1/

四、启动集群

1格式化名称节点

与普通文件系统一样,HDFS文件系统必须要先格式化,创建元数据数据结构以后才能使用。

[hadoop@hadoop01hadoop-1.2.1]$bin/hadoopnamenode-format

如果格式化出错,一般会提示错误,就像下面,已经在提示哪个文件,第几行,根据提示检查即可。

[hadoop@hadoop01~]$ bin/start-all.sh

[hadoop@hadoop01~]$jps  查看进程是否起来。

secondarynamenode,namenode,jobtracker三个进程必须都有,才正常。

或者这种方式查看集群是否正常

[hadoop@hadoop01hadoop-1.2.1]$bin/hadoopdfsadmin–report

测试集群:

[hadoop@hadoop01 hadoop-1.2.1]$bin/hadoopjarhadoop-test-1.2.1.jar DFSCIOTest-write -nrFiles10-filesize1000

[hadoop@hadoop01 hadoop-1.2.1]$ bin/hadoop jar hadoop-test-1.2.1.jar DFSCIOTest-read-nrFiles10-filesize1000

hadoop默认监听的端口:

Hadoop进程监听的地址和端口

Hadoop启动时会运行两个服务器进程,一个为用于Hadoop各进程之间进行通信的RPC服务器,另一个是提供了便于管理员查看Hadoop集群各进程相关信息页面的HTTP服务器。

 

用于定义各RPC服务器所监听的地址和端口的属性有如下几个:

fs.default.name:

定义HDFS的NameNode用于提供URI所监听的地址和端口,默认端口为8020;

dfs.datanode.ipc.address:

DataNode上RPC服务器监听的地址和端口,默认为0.0.0.0:

50020;

mapred.job.tracker:

JobTracker的PRC服务器所监听的地址和端口,默认端口为8021;

mapred.task.tracker.report.address:

TaskTracker的RPC服务器监听的地址和端口;TaskTracker的子JVM使用此端口与TaskTracker进行通信,它仅需要监听在本地回环地址127.0.0.1上,因此可以使用任何端口;只有在当本地没有回环接口时才需要修改此属性的值;

除了RPC服务器之外,DataNode还会运行一个TCP/IP服务器用于数据块传输,其监听的地址和端口可以通过dfs.datanode.address属性进行定义,默认为0.0.0.0:

50010。

 

可用于定义各HTTP服务器的属性有如下几个:

dfs.http.address:

NameNode的HTTP服务器地址和端口,默认为0.0.0.0:

50070;

dfs.secondary.http.address:

SecondaryNameNode的HTTP服务器地址和端口,默认为0.0.0.0:

50090;

mapred.job.tracker.http.addrss:

JobTracker的HTTP服务器地址和端口,默认为0.0.0.0:

50030;

dfs.datanode.http.address:

DataNode的HTTP服务器地址和端口,默认为0.0.0.0:

50075;

mapred.task.tracker.http.address:

TaskTracker的HTTP服务器地址和端口,默认为0.0.0.0:

50060;上述的HTTP服务器均可以通过浏览器直接访问以获取对应进程的相关信息,访问路径为http:

//Server_IP:

Port。

如namenode的相关信息:

 

2排错思路

1,是否是hadoop.tmp.dir,dfs.data.dir属性,如果定义在别的目录需要在集群中所有节点都创建,并让hadoop用户能够访问

2,查看进程对应的端口是否有在监听。

在上面配置中将namenode的端口定义9000,jobtracker定义成9001

[hadoop@hadoop01hadoop-1.2.1]$netstat-tunlp|grep9000

tcp    0   0:

:

ffff:

192.168.0.31:

9000  :

:

:

*            LISTEN   22709/java     

[hadoop@hadoop01hadoop-1.2.1]$netstat-tunlp|grep9001

tcp    0   0:

:

ffff:

192.168.0.31:

9001  :

:

:

*            LISTEN   22924/java 

3,查看日志,哪个服务没起来就查看对应的日志。

4,查看集群中所有节点的时间是不是一致。

5,iptable与selinux是否阻止。

6,/etc/hosts是否正确。

五、添加节点,删除节点

添加节点

1.修改host 

 和普通的datanode一样。

添加namenode的ip 

2.修改namenode的配置文件conf/slaves 

 添加新增节点的ip或host 

3.在新节点的机器上,启动服务

[hadoop@hadoop04 hadoop]#./bin/hadoop-daemon.shstartdatanode

[hadoop@hadoop04hadoop]#./bin/hadoop-daemon.shstarttasktracker 

4.均衡block

[hadoop@hadoop04hadoop]#./bin/start-balancer.sh

1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率 

2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长

[root@slave-004hadoop]#./bin/start-balancer.sh-threshold5

3)设置balance的带宽,默认只有1M/s

dfs.balance.bandwidthPerSec 

1048576 

Specifiesthemaximumamountofbandwidththateachdatanode 

canutilizeforthebalancingpurposeintermof 

thenumberofbytespersecond. 

注意:

 

1. 必须确保slave的firewall已关闭; 

2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中

 

删除节点

1.集群配置 

 修改conf/hdfs-site.xml文件

 

dfs.hosts.exclude 

/data/soft/hadoop/conf/excludes 

Namesafilethatcontainsalistofhoststhatare 

notpermittedtoconnecttothenamenode. Thefullpathnameofthe 

filemustbespecified. Ifthevalueisempty,nohostsare 

excluded.

2确定要下架的机器 

dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。

这个将阻止他们去连接Namenode。

如:

haoop04

3.强制重新加载配置

[root@masterhadoop]#./bin/hadoopdfsadmin -refreshNodes

它会在后台进行Block块的移动 

4.关闭节点 

等待刚刚的操作结束后,需要下架的机器就可以安全的关闭了。

[root@masterhadoop]#./bin/hadoopdfsadmin-report 

可以查看到现在集群上连接的节点

正在执行Decommission,会显示:

DecommissionStatus:

Decommissioninprogress 

执行完毕后,会显示:

DecommissionStatus:

Decommissioned 

5.再次编辑excludes文件 

一旦完成了机器下架,它们就可以从excludes文件移除了 

登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下

六、安装zookeeper

1zookeeper概述:

ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(DistributedSynchron

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1