hadoop集群搭建

来源:互联网 发布:淘宝网的特点 编辑:程序博客网 时间:2024/05/17 22:50

1、安装虚拟机
先安装了master虚拟机,另外2个slave虚拟机直接复制的master的镜像,复制完之后记得修改slave1和slave2的静态ip地址,并且重新删除添加slave1和slave2的网络配置才能生效。
192.168.67.10 master
192.168.67.11 slave1
192.168.67.12 slave2
2、安装jdk和配置环境变量
安装jdk之前我还安装了vmware tools来实现windows系统,虚拟机之间和master,slave1和slave2的文件共享。vmware tools安装详细步骤参考:http://blog.csdn.net/u013142781/article/details/50539574
然后设置master虚拟机的共享目录
现在我把jdk-6u45-linux-x64.bin和hadoop-1.2.1-bin.tar.gz的安装包放在windows的桌面的share_folder文件夹中。
然后把windows桌面的share_folder中的安装包复制到master中的/usr/local/src 中
命令为:
#cd /mnt/hgfs/
#ls //展示路径中的所有文件
#cd share_folder/
# ls
#cp * /usr/local/src/ //复制路径中的所以文件到master虚拟机的/usr/local/src/
# cd /usr/local/src/
# ls
# 11//查看执行权限
# ./jdk-6u45-linux-x64.bin //安装jdk

安装完成之后需要配置环境变量
#vim ~/.bashrc //vim是打开文件命令
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export CLASSPATH=.:CLASSPATH:JAVA_HOME/lib
export PATH=PATH:JAVA_HOME/bin
退出保存(Esc :wq)
# source ~/.bashrc
# java
# which java
以上master节点jdk安装完毕接下来要对slave1和slave2安装jdk
接下来进入master的/usr/local/src/目录,把安装包复制到slave1和slave2上面
#cd /usr/local/src/
#ls
#scp -rp jdk-6u45-linux-x64.bin 192.168.67.11:/usr/local/src/ //slave2同理只需把ip改一下就ok了
然后切换到slave1,slave2节点上对slave1进行jdk的安装和环境变量的配置
接下来正式安装hadoop集群
3、解压hadoop-1.2.1-bin.tar.gz安装包,创建tmp临时文件
在第2步我们已经把hadoop-1.2.1-bin.tar.gz安装包放在了master节点上 ,那我们就可以安装hadoop了
先在master节点上执行
# cd /usr/local/src/
# tar xvzf hadoop-1.2.1-bin.tar.gz //解压安装包,解压之后会在当前目录产生一个新的目录
# ls
# cd hadoop-1.2.1
#ls
# mkdir tmp //在该目录下新增一个tmp目录用于存放之后的一些临时文件
4、修改虚拟机的配置文件masters,slaves,core-site.xml,mapred-site.xml,hdfs-site.xml,hadoop-evn.sh
# pwd
# cd conf/
# vim masters//修改masters master 保存退出
# vim slaves// 修改slaves slave1 slave1 保存退出
#vim core-site.xml

  <configuration>  <property> <name>hadoop.tmp.dir</name> <value>/usr/local/src/hadoop-1.2.1/tmp</value> <name>fs.default.name</name> <value>hdfs://192.183.67.10:9000</value>  </property>  </configuration>

# vim mapred-site.xml

 <configuration> <property><name>mapred.job.tracker</name><value> http://192.168.67.10:9001</value> </property> </configuration>

# vim hdfs-site.xml

  <configuration> <property><name>dfs.replication</name><value> 3</value> </property> </configuration>

#vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.6.0_45 //在最后添加,保存退出
#ls -rlt //查看修改了那些文件
5、接下来配置本地网络配置
# vim /ect/hosts

192.168.67.10 master
192.168.67.11 slave1
192.168.67.12 slave2
//目的是访问master时可以直接访问master不用再输ip
# hostname master //使上面的生效,只是临时生效
#hostname
# vim /etc/sysconfig/network //使上面的永久生效
HOSTNAME=master
以上master节点上的该配置的都配好了
接下来对slave1,slave2进行配置
首先从master节点上把hadoop复制到slave1和slave2上
# cd /usr/lcoal/src/
# ls
# scp -rp hadoop-1.2.1 192.168.67.11:/usr/local/src/
切换到slav1节点上
# cd /usr/local/src/
# ls
# cd hadoop-1.2.1/
#cd conf/
# ls
# cat core-site.xml //查看刚才在master上改的文件
//以上slave2同理
接下来在对应的slave1,slave2修改/etc/hosts 和/etc/sysconfig/network
# vim /etc/hosts
192.168.67.10 master
192.168.67.11 slave1
192.168.67.12 slave2
# vim /etc/sysconfig/network
HOSTNAME=slave1
# hostname slave1
# hostname
为了保证之后避免网络连接的问题,把防火墙关闭
# /etc/init.d/iptables stop //关闭防火墙
# iptables -L //检查防火墙是否关闭生效
#setenforce 0
#getenforce
6、 接下来需要建立每台机器间的互信关系
master节点下执行
# ssh-keygen//ssh -keygen 是不对的,会报错Bad escape character ‘ygen’.
# cd ~/.ssh/
# ls
# cat id_rsa.pub > authorized_keys//如果不存在authorized_keys就新建一个authorized_keys文件
# cat id_rsa.pub
然后分别在slave1,slave2中执行
# ssh-keygen//注:-不要有空格,否则会报Bad escape character ‘ygen’.
# cd ~/.ssh/
# cat id_rsa.pub
把公钥复制到master的authorized_keys文件中
#vim authorized_keys
#cat authorized_keys
下一步把master上的authorized_keys文件分别copy给slave1,slave2
# scp -rp authorized_keys slave1: ~/.ssh/
# scp -rp authorized_keys slave2: ~/.ssh/
然后尝试在master机器上远程连接slave1,slave2
# ssh slave1
# exit
以上互信关系已将建立起来
7、 接下来回到master节点,校验集群是否搭建成功
# cd /usr/local/src/hadoop-1.2.1/bin/
# ./hadoop namenode -format //第一次启动需要格式化一下
# ./start-all.sh
# jps //查看进程 同理slave1,slave2 用jps查看进程
# ./hadoop fs -ls / //验证能不能用
# ./hadoop fs -put /etc/passwd / //往集群里面上传一个文件
# ./hadoop fs -ls /
# ./hadoop fs -cat /passwd //验证文件能不能读

以上hadoop集群安装完了…..
注意:执行命令的时候要注意空格啊啊啊啊…..
不小心把master上的hadoop-env.sh文件删除了,新建了一个把slave1的内容复制进去了,但是会报错,然后我就用scp -rp命令把slave1上的这个文件复制到master对应的路径来了,就可以启动集群了,就没问题啦。

原创粉丝点击