云计算集群环境的搭建
前提条件:
1.首先要使得要配成集群环境的几台机器安装jdk
2.在每台机器上安装ssh
3.在每台机器上安装hadoop
?
?
在这个基础上,再来配置各机器之间的分布实现。
首先来说明一下:Linux系统下jdk的安装吧!
?????????? 因为要配置成集群环境,所以每台机器的jdk软件包的版本必须一致,当然,hadoop的jar包的版本也必须一致,不然,会出现意想不到的错误,我们组在配置时就犯了这个错误,还必须注意:每台机器jdk和hadoop解压后的文件夹也必须放到统一的目录下:jdk解压后放在/usr/local/java,hadoop解压后是放在/usr/local/hadoop中。
?大致分为一下几个步骤:
?
1.从网站上下载:jdk软件包。我们组用的是:
?
?2在/usr/local下建立java目录。
?
3.将jdk软件包复制到java目录中。
?
4.给jdk文件赋予权限,可以使得当前用户操作。
?
5.解压jdk软件包,进行安装。
?
???? 在终端输入:sudo ./jdk-6u30-linux-i586.bin
6.配置环境变量。
?
? sudo gedit /etc/profile
在这个文件中输入以下内容:
7.重启计算机,查看jdk是否安装成功。
?
在终端输入: java -version
?出现如上图所示:就表示:jdk已经安装成功。
?
?
?安装ssh:
在终端输入:
sudo apt-get install ssh
sudo apt-get install rsync
ssh-keygen -t rsa -P ' ' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后验证是否安装成功:
ssh localhost
出现如下图所示:就表示安装成功。
?
?
安装hadoop:
1.将hadoop软件包复制到/usr/local中
?
2.解压该hadoop软件包到当前路径下:
sudo tar xzf hadoop-0.20.203.tar.gz
?
3.为了方便起见:将其重命名。
mv hadoop-0.20.203 hadoop
?
4.必须将该文件夹的权限赋给当前登录用户。
为了集群的方便管理,我们还可以建立一个hadoop组和hadoop用户(hadoop用户是在hadoop组下的)。
sudo addgroup hadoop(建立hadoop组)
sudo adduser -ingroup hadoop hadoop(创建hadoop用户,并将该用户归到hadoop组中)
给hadoop用户添加权限
sudo gedit /etc/sudoers
在该文件的root All=(All) All的下一行添加:
hadoop All=(All) All
以上表示:每台机器的准备工作已经做好。
?
?
再从这些机器中选取一台作为namenode节点.
1.必须使namenode能够无密码登录到其他的datanode节点。所以,要将namenode的公钥发送给其他datanode节点。在 namenode的终端输入:scp ~/.ssh/id_rsa.pub hadoop@机器名 ~/.ssh/authorized_keys
其原理就是:当namenode要无密码登录到其他datanode节点后,datanode就可以用namenode的公钥进行解密,从而之间可以进行通信。
2.配置hadoop环境
在集群中的每台机器的hostst文件将集群中所有机器的ip加入进来,由于ip太长,我们可以给ip做个映射,即:ip? 机器名
?在 namenode机器上的/usr/local/hadoop/conf的目录下新建masters和slaves文件。masters文件里将 secondarynode的机器名添加进去,masters文件里表明的是这个集群中谁作为备份节点。然后在slaves里面添加:所有 datanode的机器名。这个slaves和masters文件只需在namenode机器上创建。slaves文件里的内容代表:当namenode 启动时:可以自行也将其他datanode也启动。
然后配置:/usr/local/hadoop/conf/core-site.xml,将如下内容添加进去。
<configuration>
<property> ?
? <name>fs.default.name</name> ?
? <value>hdfs://master:9000</value>? ?
?</property> ?
</configuration>
然后在配置:/usr/local/hadoop/conf/hdfs-site.xml,将一下内容添加进去。
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
在配置:/usr/local/hadoop/conf/mapred-site.xml,将以下内容添加进去。
<configuration> ?
???? <property>? ?
????? <name>mapred.job.tracker</name> ?
????? <value>master:9001</value>? ?
???? </property> ?
??? </configuration>
?
然后,再将namenode的这个三个配置文件全部复制到其他datanode上去。
这样,集群环境就已经配置成功!
启动namenode节点。
在namenode结点的终端输入:sudo bin/hadoop namenode -format
?????????????????????? bin/start-all.sh
停止hadoop进程。
? bin/stop-all.sh
查看集群中有几个datanode,
bin/dfsadmin -report
?
?
感悟:由于这个集群环境是过年之前配置的,当时没有写文档,而且配置过程中遇到过很多问题,没有记录,导致现在重新回想这个过程,感觉很吃力。虽然集群配置环境只有这么几个步骤,但是,每一步配置的时候,会遇到各种问题。所以,各位在配置这个环境时,如遇到问题,请及时记录,以便以后好好研究。
?
?
?
?