hadoop-1.0.4 hbase-0.94.10 zookeeper-3.4.5集群配置

1、                  环境说明

集群环境至少需要3个节点(也就是3台服务器设备):1个master,2node,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:

Hostname

IP

新建用户

master

10. 0.0.111

hadoop

node1

10. 0.0.112

hadoop

node2

10. 0.0.113

hadoop

三个节点均使用centos 6.3系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。

2、准备工作

安装文件下载http://pan.baidu.com/share/link?shareid=663788401&uk=1947167851
linux下载http://pan.baidu.com/share/link?shareid=670839034&uk=1947167851

2.1、修改Hostname

为了集群能够正常稳定的运行,我们需要将每个节点的hostname分别配置为对应的master、node1、node2。

(1)在master服务器中执行以下命令:

修改机器名称

hostname Master //当前有效

vi /etc/sysconfig/network   //重启后生效

HOSTNAME=master

(2)在node1服务器中执行以下命令:

hostname node1//当前有效

vi /etc/sysconfig/network   //重启后生效

HOSTNAME= node1

(3)在node2服务器中执行以下命令:

hostname node2//当前有效

vi /etc/sysconfig/network   //重启后生效

HOSTNAME= node2

2.2、添加Hosts映射关系

分别在三个节点下通过如下命令修改hosts映射关系:

vi /etc/hosts

master       10. 0.0.111

node1         10. 0.0.112

node2         10. 0.0.113

2.3、配置JDK环境

Hadoop集群必须依赖JDK环境,所以这里我们首先需要配置好JDK环境,同样为了管理,我们建议服务器中的节点JDK安装环境均在相同路径下

2.3.1、解压安装包

拷贝jdk文件jdk-6u25-linux-x64.bin到/usr/java文件目录(该目录可自行定义)下,解压安装包

tar –zxvf jdk-7u9-linux-i586.tar.gz –C /usr/java

生成jdk连接方便配置ln –s  jdk1.7.0_09/ jdk

2.3.2、修改环境配置信息

在最后加上:

vi /etc/profile

exportJAVA_HOME=/usr/java/jdk

exportPATH=$JAVA_HOME/bin:$PATH

exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar

exportHADOOP_PID_DIR=/home/$USER/pids

通过注销或者以下命令使修改生效:

source /etc/profile

2.3.3、检查当前JDK版本信息

java –version

2.4、安装SSH

Centos系统安装时默认可以选择安装SSH,ubuntu下可以通过如下命令进行安装(前提是必须联网):

Centos6.3当前使用系统yum -y install openssh-clients

ubuntu

sudo apt-get install ssh

sudo apt-get install rsync

2.5、新建用户

groupadd hadoop

useradd hadoop -g hadoop

3台机器一样

2.6、配置集群之间SSH无密码登陆

集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。以本次为例,比如master与node1之间的无密码登陆设置步骤如下:

(1)进入master服务器,进行无密码自登陆设置(切换到hadoop账户下)

cd 到根目录

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa // //生成密钥

chmod 700 ~/.ssh 

cd .ssh

chmod 600 authorized_keys  //设置权限

如果不知道是否配置成功,可通过如下命令进行验证:

ssh localhost

如果上述命令不需要输入密码则表示配置成功。

进入node1服务器,进行无密码自登陆设置,操作同上,只需将对应的master改为node1即可,此处省略。

(2)进入Master服务器,设置master node1 node2的无密码登陆 node1 node2同master一样

cd

cat  id_rsa.pub >>  authorized_keys(master中文件)

cat  id_rsa.pub >>  authorized_keys(node1中文件)

cat  id_rsa.pub >>  authorized_keys(node2中文件)

最后authorized_keys文件

是个3行的公钥

ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEAsDLC0s2iwUIGsg3ADUUc8sFlT+R5JqxckQmfL0mFHJJ3LGc0sbwtBhwki8ZSub+Tp145uHGQv+BYYUiHperPq31h2HcCnCAjMMcvPiSi1WMcafewcc6AJenf3dfoOvgdLibZ1hDIyvDBd99K+ep4RCk1XJnwvn9SG+qTADcoKh9QbLR7mmLSxzjcAwx4tbMMk95H4bis5zZuKu/B4XZYHDM52Tj8v9HVkW2ya0pmGTMzlQAw1mGMNBakN/YfKSOqyPaUBGRn6NHIjF/bh+8fXhgfQRmJkk3ZSSRP7qwyQt7zji4hx9kBpzm36wRAF0iKyUY84dD0QQ49dGQ/fyjnzQ==hadoop@node1

ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEA4g4SnfS+5LkLzmKEwc85XiKthohS/PQkvD4Q+xJjJ6Vic+D/Uhzbl2gzlbfHAcmgvfPvw28vuYo6U/WGFr3w6mHqpB+tLF4GEUozIsBUAj1sn2QngAbL2PrcM9JEIGfxWeosvvuZz1Fz8JrfK2tEcIQYMbC2vRXoicAMf8ikWGrxPjK4sQpvtcDUhtR601kgY1RXaf/QtzdQ43a13lTnXThPyRE+ZUUd15Sy7D2j7CTkFNkdY31pYV4Hl8SVOxBvGDItWC1UxTc8v9r/Ai194QOpiKJ3WqkoLgzFQxV1ov1L89mQSpBE4+GLSeUqLAeuXkoUo93RN7TIri4eXQy4tw==hadoop@master

ssh-rsaAAAAB3NzaC1yc2EAAAABIwAAAQEA2XjizRyf5EIl4dOkC3RiIuCKabmRvXE/jHty7Q5ZUtTWQU+E0JJodAByw0iwgHWnATt/6vW426zsMBJv9ufTKFxpt1mINgeMIDAQgaaRh/766LTd+HtJMIZ7Q2/B0nL5vMn5zNgCyf5K1memU1T+qe8r8TGAgfE3+AMyjWwbkD+xdhPr4py7wyNA4WUUg4IiGz7MtV9kiCm9ulnPfk41l/IfGCR/Wv/8QZl3iwDu4iJ0uyyKHcF6u7f9Ub2h5TzByNgym6S96aU0N6reyID6X8LVeqMedf/8WK4tVAvnINWbq6ywmCOZqqfmwO+vjoJlmCpHEGYvuSG/mP95OgCU6Q==hadoop@node2

authorized_keyshadoop用户的600权限否则不可以ssh无密码登录

分别在3台机器ssh master , ssh node1 , ssh node2都不需要输入密码则成功

3.1、修改hadoop配置文件

在centos6.3系统下解压hadoop安装包hadoop-1.0.4.tar.gz,修改conf目录下的6个文件:

tar –zxvfhadoop-1.0.4.tar.gz –c /opt

(1)       core-site.xml

<configuration>

       <property>

              <name>fs.default.name</name>

              <value>hdfs://master:9000</value>

       </property>

       <property>

              <name>hadoop.tmp.dir</name>

              <value>/home/${user.name}/tmp</value>

       </property>

</configuration>

(2)hadoop-env.sh

在该文件中加上如下代码:


exportJAVA_HOME=/usr/java/jdk

exportHADOOP_HEAPSIZE=256

exportHADOOP_PID_DIR=/home/$USER/pids

(3)hdfs-site.xml

<configuration>

       <property>

              <name>dfs.replication</name>

              <value>2</value>

       </property>

       <property>

              <name>dfs.name.dir</name>

             <value>/home/${user.name}/dfs_name</value>

       </property>

       <property>

              <name>dfs.data.dir</name>

              <value>/home/${user.name}/dfs_data</value>

       </property>  

       <property>

              <name>dfs.support.addend</name>

              <value>true</value>

       </property>

      

</configuration>

(4)mapred-site.xml

<configuration>

       <property>

              <name>mapred.job.tracker</name>

              <value>master:9001</value>

       </property>

       <property>

              <name>mapred.system.dir</name>

              <value>/home/${user.name}/mapred_system</value>

       </property>

       <property>

              <name>mapred.local.dir</name>

              <value>/home/${user.name}/mapred_local</value>

       </property>

       <property>

              <name>mapred.acls.enabled</name>

              <value>false</value>

       </property>

</configuration>

(5)Masters

Master

(6)Slaves

       node1

node2

3.2、同步安装包

将解压修改后的hadoop-1.0.4文件夹分别拷贝到Master、node1、node 2的相同hadoop安装路径下。

3.3、启动Hadoop集群

进入Master的hadoop-1.0.3/bin目录,执行以下操作:

./hadoop namenode -format //格式化namenode,第一次启动服务前执行的操作,以后不需要执行

./start-all.sh     //启动hadoop

jps //jps命令能看到除jps外有4个进程

6330NameNode

6482SecondaryNameNode

6696Jps

6567JobTracker

至此,hadoop集群配置过程结束。可通过浏览器地址http://10. 0.0.111:50070 查看节点启用状态验证配置是否成功。

4、Zookeeper集群安装配置

4.1、修改zookeeper配置文件zoo.cfg

在centos系统下解压zookeeper安装包zookeeper-3.4.5.tar.gz ,进入到conf目录,将zoo_sample.cfg拷贝一份命名为zoo.cfg(Zookeeper 在启动时会找这个文件作为默认配置文件),打开该文件进行修改为以下格式(注意权限问题,如果最后配置有问题请检查过程中权限是否正确)。

dataDir=/home/hadoop/zookeeper

server.0=master:2888:3888

server.1=node1:2888:3888

server.2=node2:2888:3888

4.2、新建目录、新建并编辑myid文件

(本次配置myid文件放在/home/hadoop/temp/zookeeper/data目录下)

mkdir /home/hadoop/temp/zookeeper/data  //dataDir目录

vi /home/hadoop/temp/zookeeper/data/myid

注意myid文件中的内容为:master中为0,node1中为1,node2中为2,分别与zoo.cfg中对应起来。

4.3、同步安装包

将解压修改后的zookeeper-3.4.5文件夹分别拷贝到masternode1node2的相同zookeeper安装路径下。注意:myid文件的内容不是一样的,各服务器中分别是对应zoo.cfg中的设置。

4.4、启动zookeeper

Zookeeper的启动与hadoop不一样,需要每个节点都执行,分别进入3个节点的zookeeper-3.4.5/bin目录,启动zookeeper:

./zkServer.sh start

4.5、检查zookeeper是否配置成功

待3台服务器均启动后,如果过程正确的话zookeeper应该已经自动选好leader,进入每台服务器的zookeeper-3.4.3目录,执行以下操作查看zookeeper启动状态:

./zkServer.sh status

如果出现以下代码表示安装成功了。


JMX enabled by default Using config: /home/hadoop/zookeeper-3.4.3/bin/../conf/zoo.cfg

Mode: follower  //或者有且只有一个leader 

5、HBase集群安装配置

5.1、修改hbase配置文件

在centos系统下解压hbase安装包hbase-0.94.10.tar.gz,修改conf目录下的3个文件:

(1)       hbase-env.sh

exportHBASE_MANAGES_ZK=false

exportJAVA_HOME=/usr/java/jdk/

(2)     hbase-site.xml

<configuration>

      

       <property>

             <name>hbase.zookeeper.quorum</name>

             <value>master,node1,node2</value>

                   <description>The directory shared byRegionServers.</description>

       </property>

      <property>

             <name>hbase.zookeeper.property.dataDir</name>

                   <value>/home/${user.name}/zookeeper</value>

      <description>Property from ZooKeeper'sconfig zoo.cfg.The directory where the snapshot is stored.</description>

       </property>

       <property>

             <name>hbase.rootdir</name>

             <value>hdfs://master:9000/hbase</value>

             <description>The directory shared byRegionServers. </description>

       </property>

       <property>

             <name>hbase.cluster.distributed</name>

             <value>true</value>

             <description>The mode the cluster willbe in. Possible values are false: standalone and pseudo-distributed setups withmanaged Zookeepertrue: fully-distributed with unmanaged Zookeeper Quorum (seehbase-env.sh)</description>

       </property>

</configuration>

(3)     regionservers

node1

node2

5.2、同步安装包

将解压修改后的hbase-0.94.10文件夹分别拷贝到master、node1node 2的相同hbase安装路径下。

 

5.3、启动HBase

进入master的hbase-0.94.10/bin目录,执行以下操作:

./start-hbase.sh

至此,hbase服务配置过程结束。可通过浏览器地址http://10.0.0.111:60010 查看hbase是否可用。

也可以执行以下命令,进入hbase shell进行验证。

6、结语

关于hadoop、zookeeper、hbase的启动与关闭顺序:启动时hadoop和zookeeper随意先后,但是hbase必须最后启动,关闭时hbase必须首先关闭,然后随意先后关闭hadoop、zookeeper。否则,会出现异常。

关于各软件的安装包可以去官网下载,不同版本的安装配置可能会有少许的变动,而且版本搭配如果不一样的话也可能出现问题,有问题就针对性地去查,这样学习才有进步。我这里使用版本hadoop-1.0.4.tar.gz hbase-0.94.10.tar.gz zookeeper-3.4.5.tar.gz

7、常见错误

hadoop出现SafeModeException

最近hadoop启动后出现错误,在jobtrackerlog中错误如下:

2012-03-2413:50:55,615 INFO org.apache.hadoop.mapred.JobTracker: problem cleaning systemdirectory:hdfs://192.168.1.100:9000/home/yaoxianglong/hadoop-1.0.1/mapred/system

org.apache.hadoop.ipc.RemoteException:org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot delete/home/yaoxianglong/hadoop-1.0.1/mapred/system. Name node is in safe mode.

Theratio of reported blocks 0.0000 has not reached the threshold 0.9990. Safe modewill be turned off automatically.

解决办法:

safemode模式

NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1-dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。

dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1HDFS永远是处于SafeMode

下面这行摘录自NameNode启动时的日志(block上报比例1达到了阀值0.9990

Theratio of reported blocks 1.0000 has reached the threshold 0.9990. Safe modewill be turned off automatically in 18 seconds.

hadoopdfsadmin -safemode leave

有两个方法离开这种安全模式

1. 修改dfs.safemode.threshold.pct为一个比较小的值,缺省是0.999

2.hadoop dfsadmin -safemode leave命令强制离开

 

hdfs-site.xml中把

dfs.safemode.threshold.pct设置为0即可关闭safemode

 

enter- 进入安全模式

leave- 强制NameNode离开安全模式

get-   返回安全模式是否开启的信息

wait - 等待,一直到安全模式结束。

Namenode is in safe mode 解决方法如果还没解决

1。删除namenoddatanode上的hadoop目录中logstmp文件夹中的所有内容;
2
。重启,format namenodestart-all.sh

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值