1、 NETWORKING=yes HOSTNAME=master然后,运行hostname master退出,再进入输入env | grep hostname发现修改生效 为每个节点设置无密码ssh登录1、在master节点上运行ssh-keygent rsa2、在master节点上,首先cat /.ssh/id_rsa.pub /.ssh/authorized_keys然后chmod 644 /.ssh/authorized_keys3、将master节点上的/.ssh/id_rsa.pub文件分别scp到每个slave节点上,如scp /.ssh/id_rsa.pub rootslave0:
2、/home4、 登录每个slave节点,运行(以slave0为例)cat /home/id_rsa.pub 5、 修改文件权限chmod 600 /.ssh/authorized_keys6、从第3步开始循环,直至配置好每个slave节点 下载Hadoop下载hadoop-1.1.2,放在/home/LTE目录下,用命令 tar zxvf hadoop-1.1.2.tar.gz解压,在/home/LTE下生成目录hadoop-1.1.2 修改HADOOP的配置文件修改conf/core-site.xml文件propertynamefs.default.namevaluehdfs:/master
3、:54310/propertyhadoop.tmp.dir/home/LTE/hadoop/tmp在conf/hadoop-env.xml文件里增加export JAVA_HOME=/usr/local/java/jdk1.6.0_32修改conf/hdfs-site.xml文件:dfs.replication2dfs.data.dir/home/LTE/hadoop/datadfs.name.dir/home/LTE/hadoop/name 修改conf/mapred-site.xml文件:mapred.job.trackermaster:9001mapred.local.dir/home/
4、LTE/hadoop/tempconf/masters文件masterconf/slaves文件slave0slave1slave2slave3slave4从master节点上,将/home/LTE目录依次拷贝到每个slave节点的/home目录下 启动Hadoop 在master节点的/home/LTE/hadoop-1.1.2目录下进行HDFS的格式化bin/hadoopnamenode format 格式化后,HDFS中的内容会全部丢失 然后,开启Hadoop集群bin/start-all.sh 此时,Hadoop集群已经启动,可以提交运算的作业了。HBase的配置安装HBase时,不仅
5、需要HBase本身,还需要ZooKeeper来提供、管理和协调分布式服务。在运行HBase之前,也需要先启动ZooKeeper服务。另外,有些版本的HBase只能支持特定版本的Hadoop,如下表:在本文中,采用了Hadoop-1.1.2,HBase-0.94.8,以及ZooKeeper-3.4.5由于ZooKeeper采用了Paxos算法来进行选举,因此实际能够有效参与选举的节点数量是奇数。所以,我们在安装HBase和ZooKeeper时,只采用奇数个节点(本文采用5个节点,分别为master、slave0、slave1、slave2、slave3)。安装ZooKeeper将zookeepe
6、r-3.4.5.tar.gz在/home/LTE下解压,生成zookeeper-3.4.5目录。在/home/LTE/zookeeper-3.4.5/conf中,有zoo_sample.cfg文件,使用命令 cpzoo_sample.cfgzoo.cfg 命令生成 zoo.cfg配置文件。编辑zoo.cfg的内容,如下:htmlview plaincopyprint?#ThenumberofmillisecondseachticktickTime=2000ticksthattheinitialsynchronizationphasecantakeinitLimit=10passbetweens
7、endingarequestandgettinganacknowledgementsyncLimit=5directorywheresnapshotisstored.donotuse/tmpforstorage,herejustexamplesakes.dataDir=/home/LTE/zookeeperportatwhichclientswillconnectclientPort=2181server.1=master:2888:3888server.2=slave0:server.3=slave1:server.4=slave2:server.5=slave3:Besuretoreadm
8、aintenancesectionadministratorguidebeforeturningonautopurge.http:/zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenancesnapshotsretainindataDir#autopurge.snapRetainCount=3PurgetaskintervalhoursSet0disableautopurgefeature#autopurge.purgeInterval=1# The number of milliseconds of each tic
9、ktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # ex
10、ample sakes.dataDir=/home/LTE/zookeeper# the port at which the clients will connectclientPort=21813888# Be sure to read the maintenance section of the # administrator guide before turning on autopurge.# http:/zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance# The number of snapshot
11、s to retain in dataDir#autopurge.snapRetainCount=3# Purge task interval in hours# Set to to disable auto purge feature#autopurge.purgeInterval=1为了让系统能够识别zoo.cfg中的server.id=host:port:port中的server.id,在master节点的/home/LTE/zookeeper中创建一个文件myid,里面只有一个数字1;同理,在slave0节点的/home/LTE/zookeeper中创建一个文件myid,里面只有一个数
12、字2;以此类推. 直至slave3节点。注意,这里id的范围是1255 。以上配置(zookeeper以及zookeeper-3.4.5)要复制到集群中的每一个节点上去。在/etc/profile的最后添加:exportHBASE_HOME=/home/LTE/hbase-0.94.8HADOOP_HOME=/home/LTE/hadoop-1.1.2ZK_HOME=/home/LTE/zookeeper-3.4.5JAVA_HOME=/usr/local/java/jdk1.6.0_32CLASSPATH=$CLASSPATH:$HBASE_HOME/lib:$JAVA_HOME/libPA
13、TH=$JAVA_HOME/bin:$HBASE_HOME/bin:$ANT_HOME/bin:$HADOOP_HOME/bin:$ZK_HOME/bin:$PATHexport HBASE_HOME=/home/LTE/hbase-0.94.8export HADOOP_HOME=/home/LTE/hadoop-1.1.2export ZK_HOME=/home/LTE/zookeeper-3.4.5export CLASSPATH=$CLASSPATH:$JAVA_HOME/libexport PATH=$JAVA_HOME/bin:$PATH然后,source /etc/profile
14、这个操作要在集群的每一个节点上进行启动ZooKeeper在每一个节点的/home/LTE/zookeeper-3.4.5/bin中执行命令: ./zkServer.sh start这样就启动了zookeeper集群中的各个节点。输入命令./zkServer.sh status可以查看当前节点在zookeeper集群中的角色是leader还是follower安装HBase将/home/LTE/hbase-0.94.8.tar.gz解压,生成/home/LTE/hbase-0.94.8。在hbase-0.94.8/lib中,原来有一个hadoop-core-1.0.4.jar文件,但是我们用的Ha
15、doop的版本是hadoop-1.1.2,所以需要将hbase-0.94.8/lib/hadoop-core-1.0.4.jar替换成hadoop-1.1.2/hadoop-core-1.1.2.jar,否则会有冲突。打开conf/hbase-env.sh文件,将其中最后一行改为: export HBASE_MANAGES_ZK=false这表示我们不使用hbase-0.94.8自带的zookeeper,而是使用我们刚才自己安装的zookeeper-2.3.4(具体指定使用哪个zookeeper是通过/etc/profile中的ZK_HOME变量来指定的)。下面,打开conf/hbase-si
16、te.xml文件,添加以下内容:1. 2. 3. hbase.rootdir4. 54310/hbase5. 6. 7. hbase.cluster.distributed8. true9. 10. 11. 12. 313. 14. 15. hbase.zookeeper.quorum16. master,slave0,slave1,slave2,slave317. 18. 19. hbase.zookeeper.property.dataDir20. /home/LTE/zookeeper/dataDir21. 22. 其中,我们需要通过hbase.rootdir指定HDFS的一个namen
17、ode节点,并让HBase将数据写入HDFS中的一个目录(本例中就是hdfs:54310/hbase);hbase.zookeeper.quorum指定了哪些节点运行Quorum Peer(即QuorumPeerMain进程),个数需为奇数。下面,打开文件conf/regionservers,添加以下内容:1. slave02. slave13. slave24. slave3该文件指定了HRegionServer进程将在哪些节点上运行。以上配置需要在HBase的每一个节点中生效。启动HBaseOK,现在HBase集群配置好了。我们来启动HBase。进入$HBASE_HOME/bin目录下,输
18、入命令 ./start-hbase.sh在HBase集群启动之后,键入命令 ./hbase shell启动HBase的控制台界面我们可以在浏览器中查看HBase系统的运行状态,地址为http:/172.16.38.213:60010/master-status,其中172.16.38.213是master所在节点的IP.常见问题1、HBase中的某个节点无法启动这很可能是因为集群中各个节点的系统时间不一致(时间差超出了某个阈值),这是我们需要将几台机器间的时间调整一致。我们可以将master作为时间服务器,让其他机器与master进行对时。首先,在master上键入命令 service ntp
19、d start 来开启master上的时间服务器。等待几分钟后,在其他每一台机器上键入命令ntpdate master 来与master进行对时2、由于缺少一些jar包引起的异常在HBase上运行一些Hadoop的MR程序时,可能会报以下异常:plainview plaincopyprint?1. Exceptionthreadmainjava.lang.NoClassDefFoundError:com/google/protobuf/Message2. .3. Causedby:java.lang.ClassNotFoundException:com.google.protobuf.Message4. .Exception in thread java.lang.NoClassDefFoundError: com/google/protobuf/Message. .Caused by: java.lang.ClassNotFoundException: com.google.protobuf.Message或者org/apache/zookeeper/KeeperExceptionorg.apache.zookeeper.KeeperException org/apache/zookeeper/KeeperExcepti
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1