资源描述
Fedora下Hypertable集群配置目 录0 集群网络环境介绍11 SSH无密码验证配置11.1 安装和启动SSH协议21.2 配置Master无密码登录所有Slave21.3 配置每个Slave无密码登录Master32 JDK安装和Java环境变量配置32.1 Ubuntu 8.10下安装 JDK 1.632.2 Java环境变量配置33 Hadoop集群配置44 Hadoop集群启动65 Hypertable的配置安装6 capistrano 安装 7 Hypertable 集群启动0 集群网络环境介绍集群包含三个节点:1个master,2个slave,节点之间局域网连接,可以相互ping通。节点IP地址分布如下:Master:192.168.1.111Slave1:192.168.1.94Slave2:192.168.1.93三台节点上均是fedora系统,在每个机器下配置/etc/hosts在后面加入192.168.1.111 master192.168.1.93 slave1192.168.1.94 slave2保存退出1 SSH无密码验证配置Hadoop需要使用SSH协议,master将使用SSH协议启动master和slave进程.1.1 安装和启动SSH协议所有机器上安装SSH协议并启动服务,在所有机器上执行以下命令:$ yum install ssh 安装SSH协议$ yum install rsync命令执行完毕,各台机器之间可以通过密码验证相互登陆。1.2 配置Master无密码登录所有Slave(删除.ssh文件夹(不是删除ssh命令的命令)的命令rm rf .ssh )(0)原理Master作为客户端,要实现无密码公钥认证,连接到服务端slave上时,需要在master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥复制到slave上。当master通过ssh连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给master。master收到加密数之后再用私钥进行解密,并将解密数回传给slave,slave确认解密数无误之后就允许master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端master公钥复制到slave上。(1)所有机器上生成密码对所有节点(master and slave)上执行以下命令:rootcast:$ ssh-keygen -t rsa Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): 默认路径Enter passphrase (empty for no passphrase): 回车,空密码Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.这将在/root/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。所有节点上执行以下命令:rootcast:$ chmod 755 .ssh 给予目录权限,这不是必须的进入.ssh目录rootcast:$ cd .ssh在master节点上做如下配置rootcast:/.ssh$ cp id_rsa.pub authorized_keys master的公钥rootcast:/.ssh$ chmod 644 authorized_keys使用SSH协议将master的公钥信息authorized_keys复制到所有Slave的.ssh目录下(.ssh下最初没有authorized_keys,如果有,则需要复制追加,后面会讲到如何追加)。rootcast:$ scp authorized_keys 192.168.1.93:/root/.ssh rootcast:$ scp authorized_keys 192.168.1.94:/root/.ssh 这样配置过后,master可以无密码登录所有slave,可以通过命令“ssh 192.168.1.94”来验证。1.3 配置每个Slave无密码登录Master(0)原理Master连接slave时master是客户端,需要将master上的公钥复制到slave上,那么,如果slave主动连接master,slave是客户端,此时需要将slave上的公钥信息追加到master中的authorized_keys之中。(此时,由于master中已经存在authorized_keys文件,所以这里是追加)。如果进一步需要slave之间实现公钥无密码验证,则同样需要相互之间追加公钥信息(1)将各个slave上的id_rsa.pub追加到master的authorized_keys在所有slave上依次执行如下命令:rootcast:/.ssh$ scp id_rsa.pub 192.168.1.111:/root/.ssh/192.168.1.93.id_rsa.pubrootcast:/.ssh$ scp id_rsa.pub 192.168.1.111:/root/.ssh/192.168.1.94.id_rsa.pub这将slave上之前产生的公钥id_rsa.pub复制到master上的.ssh目录中,并重命名为slave ip地址.id_rsa.pub,这是为了区分从各个slave上传过来的公钥。复制完毕,在master上执行以下命令,将每个slave的公钥信息追加:rootcast:/.ssh$ cat 192.168.1.93.id_rsa.pub authorized_keysrootcast:/.ssh$ cat 192.168.1.94.id_rsa.pub authorized_keys这样,master和slave之间便可以相互ssh上并不需要密码.注意:整个过程中只涉及到创建密钥,复制公钥,添加公钥内容,没有更改配置文件,实际上配置文件/etc/ssh/sshd_config中开启了公钥验证 RSAAuthentication yesPubkeyAuthentication yes(2)SSH配置完毕至此,master能无密码验证登陆每个slave。每个slave也能无密码验证SSH登陆到master。2 JDK安装和Java环境变量配置2.1 fedora下安装 JDK 1.6下载JDK安装包jdk-6u22-linux-i586-rpm.bin,复制到目录/opt/java下,在命令行进入该目录执行命令chmod 777 jdk-6u22-linux-i586-rpm.bin ./jdk-6u22-linux-i586-rpm.bin 命令运行完毕,将在当前目录下面生成一个对应的jdk1.6.0_22安装完毕。2.2 Java环境变量配置命令行中执行命令”vi /etc/profile”,并加入以下内容,配置环境变量(注意/etc/profile这个文件很重要,后面Hadoop的配置还会用到)。export JAVA_HOME=/opt/java/jdk1.6.0_22 export PATH=$JAVA_HOME/bin:$PATHexport CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar保存并退出,执行以下命令使配置生效source /etc/profile配置完毕,在命令行中使用命令”java -version”可以判断是否成功。3 Hadoop集群配置在master上执行:下载hadoop-0.20.2+320.tar.gz,将其解压到/opt目录下,使用如下命令:Tar zxvf hadoop-0.20.2+320.tar.gzmv hadoop-0.20.2+320 hadoop(1)把Hadoop 的安装路径添加到/etc/profile中(设置相应的HOME路径)修改/etc/profile 文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效(source /etc/profile):# set hadoop pathexport HADOOP_HOME=/opt/hadoopexport PATH=$HADOOP_HOME/bin:$PATH(2)配置Hadoop (a)配置hadoop-env.sh 进入hadoop/conf目录下$ vi hadoop-env.sh末尾加入以下语句export JAVA_HOME=/usr/java/jdk1.6.0_22export HADOOP_HOME=/opt/hadoopexport HADOOP_CONF_DIRE=/opt/hadoop/conf/hadoop保存退出 执行source hadoop-env.sh把/opt/hadoop/src/core目录下的core-default.xml复制到/opt/hadoop/conf下并且改名为core-site.xml 覆盖掉原有的core-site.xml把/opt/hadoop/src/hdfs目录下的hdfs-default.xml复制到/opt/hadoop/conf下并且改名为hdfs-site.xml 覆盖掉原有的hdfs-site.xml把/opt/hadoop/src/mapred目录下的mapred-default.xml复制到/opt/hadoop/conf下并且改名为mapred-site.xml 覆盖掉原有的mapred-site.xml(b)配置core-site.xmlhadoop.tmp.dir /opt/hadoop-$user.name A base for other temporary directories.fs.default.namehdfs:/master:9000 (c)配置hdfs-site.xml dfs.replication 1 (replication 是数据副本数量,默认为3,slave 少于3台就会报错) (d)配置mapred-site.xml mapred.job.trackermaster:9001 (e)配置masters(*/hadoop/conf/)文件,加入master的ip地址master(f)配置slaves文件, 加入所有slave的ip地址slave1slave2 将master上配置好的hadoop所在文件夹hadoop复制到slave的 /opt/目录下(实际上masters,slavers文件时不必要的,复制了也没问题)。在slave上执行:把Hadoop 的安装路径添加到/etc/profile中修改/etc/profile 文件(配置java环境变量的文件),将以下语句添加到末尾,并使其有效(source /etc/profile):export HADOOP_HOME=/opt/hadoopexport PATH=$HADOOP_HOME/bin:$PATH至此,配置完毕4 Hadoop集群启动IP地址分布:Master: 192.168.1.111Slave1: 192.168.1.93Slave2: 192.168.1.94只Master执行:格式化hadoop,rootcast:/opt/hadoop$ bin/hadoop namenode format在三台机器上执行命令service iptables stop 来关闭防火墙启动hadoop,rootcast:/opt/hadoop$ bin/start-all.sh可以通过以下启动日志看出,首先启动master,然后启动slave1,slave2,然后启动secondarymaster。再启动jobtracker,然后启动tasktracker1,最后启动tasktracker2。启动hadoop成功后,在master中的tmp文件夹中生成了dfs文件夹,在slave中的tmp文件夹中均生成了dfs文件夹和mapred文件夹。master上用java自带的小工具jps查看进程root/cast:/$ jps8383 JobTracker8733 Jps8312 SecondaryMaster8174 Master每个slave上查看进程root/cast:/$ jps7636 Slave7962 Jps7749 TaskTracker在master上查看集群状态rootcast:/opt/hadoop$ bin/hadoop dfsadmin reportConfigured Capacity: 39266099200 (36.57 GB)Present Capacity: 30477340672 (28.38 GB)DFS Remaining: 30477279232 (28.38 GB)DFS Used: 61440 (60 KB)DFS Used%: 0%Under replicated blocks: 0Blocks with corrupt replicas: 0Missing blocks: 0-Slaves available: 2 (2 total, 0 dead) 存在两个slave,都是可用的,说明hadoop启动成功,配置成功Name: 210.77.9.216:50010 slave2Decommission Status : NormalConfigured Capacity: 19633049600 (18.28 GB)DFS Used: 24576 (24 KB)Non DFS Used: 4394250240 (4.09 GB)DFS Remaining: 15238774784(14.19 GB)DFS Used%: 0%DFS Remaining%: 77.62%Last contact: Thu Mar 11 22:43:22 CST 2010Name: 210.77.9.199:50010 slave1Decommission Status : NormalConfigured Capacity: 19633049600 (18.28 GB)DFS Used: 36864 (36 KB)Non DFS Used: 4394508288 (4.09 GB)DFS Remaining: 15238504448(14.19 GB)DFS Used%: 0%DFS Remaining%: 77.62%Last contact: Thu Mar 11 22:43:22 CST 2010Hadoop 的web 方式查看:http:/ master ip地址:50070查看工作方式:http:/210.77.11.52:50030/5 Hypertable的配置安装具体步骤查看文档hypertable源码编译安装6 capistrano的配置安装1. 在master上运行 gem updategem install Capistrano运行成功后 cap versionCapistrano v2.5.192. 进入/opt/hypertable/0.9.4.2/conf目录下cp Capfile.cluster Capfile 修改Capfile文件把文件前面的内容修改为set :source_machine, masterset :install_dir, /opt/hypertableset :hypertable_version, 0.9.4.2set :default_dfs, hadoopset :default_config, /opt/hypertable/0.9.4.2/conf/hypertable.cfgset :default_additional_args, set :hbase_home, /opt/hbase/currentset :default_client_multiplier, 1set :default_test_driver, hypertableset :default_test_args, role :source, masterrole :master, masterrole :hyperspace, masterrole :slave, slave1,”slave2”role :thriftbroker, masterrole :spare, masterrole :localhost, masterrole :test_client, masterrole :test_dispatcher, master保存退出 3. 修改hypertable.cfg文件HdfsBroker.fs.default.name=hdfs:/master:9000DfsBroker.Host=masterHyperspace.Replica.Host=masterHypertable.Master.Host=master4. 在/opt/hypertable/0.9.4.2/conf/目录下 运行cap distcap set_currentcap fhsize7 hypertable集群启动运行命令cap start 启动Cap stop 关闭
展开阅读全文