1、hadoop需要java的支持,所以安装hadoop需要安装java。
2、hadoop集群配置,需要多个linux环境。把master的linux镜像,复制,复制成另外两个slave的环境。复制的时候,一定要把环境处于挂起的状态。把另外两个镜像的文件夹的名字改一下,slave1和slave2。然后打开虚拟机,把这两个镜像都打开。这三个同时运行。
3、复制之后,master可以上网,另外两个slave不能上网,因为局域网内的ip出现了相同的ip,那么怎么解决这个问题呢。应该先把这两个slave的ip改一下。
4、cd /etc/sysconfig/network-scripts/ vim ifcfg-eth0 ----> 把ip改成和master不一样的。然后重新启动网络服务:/etc/init.d/network restart 但是修改完ip后还是上不了网,原因是因为slave的配置是copy master的,所以两者用的网卡都是一个,当然上不了了。所以我们先把slave1的网卡卸载掉,卸载的方法是点击VMware右下角的两个小电脑图标,然后点击设置,把网络适配器移除,然后再添加一个新的网络适配器(nat模式),点击确定。 这回就可以上网了。那么slave2也是同样的操作。这样就可以上网了。
5、然后用secureCRT连接3个linux,都可以上网了。现在已经完成了3台Linux的上网工作,接下来就是来完成Hadoop集群的安装。
6、首先我们要把Java安装上。主节点需要额外的内存开销,所以给主节点多点内存,从节点需要额外的磁盘资源。
7、安装Java。Java的安装包已经下载到了windows桌面上了,那么我们怎么给Linux,通过共享目录的方式:VMware怎么设置共享目录?----》点击master标签,右键,设置,点击选项,点击共享文件夹,右边设置成“总是启动”,下边添加java安装包的文件。然后完成确定。那么我们怎么看是否共享成功了呢?我们:cd /mnt/hgfs/ ---> ls 就会看到我们的共享的文件夹了。 接下来,我们把这个文件夹拷贝一下----》 cp jdk /usr/local/src/ 把文件拷贝到了 /usr/local/src/ 这个文件夹下。进入/usr/local/src文件夹下,运行jdk文件:./jdk. 到这里,Java就安装成功了。接下来我们需要编辑一下环境变量,我们得找到java安装包的目录,把这个地址给JAVA_HOME;再把Java安装包下的lib配置给CLASSPATH;再把Java安装包下的bin配置一个PATH:vim ~/.bashrc ------------》 export JAVA_HOME = /usr/local/src/jdk1.6 export CLASSPATH = 。:$CLASSPATH:$JAVA_HOME/lib export PATH = $PATH:$JAVA_HOME/bin 编辑完毕,让./bashrc文件生效:source ~/.bashrc 现在执行Java就可以了。
8、现在master的java安装好了,现在就是该安装slave的Java了。现在把master的java包远程复制给slave:cd /usr/local/src/ ------> scp -rp jdk1.6.bin 192.168.183.11:/usr/local/src/ 然后编辑slave机器的~/.bashrc文件配置环境变量。
9、现在3台机器的Java已经安装完毕,现在开始安装我们的Hadoop集群。
Hadoop压缩包现在已经在/usr/local/src下,我们对压缩包进行解压:tar xvzf hadoop.tar.gz。解压完毕后,会在当前文件夹下产生一个hadoop1.2文件,我们进入到这个目录里边,我们在这个目录里边新增一个tmp目录,目的是用来存放以后的临时文件。
紧接着我们进入Hadoop1.2文件下的conf配置目录下:
a:我们修改里边的masters文件:编辑成----》master 保存退出。
b:我们再修改下slaves文件:编辑成---》slave1 slave2 保存退出
c:我们再修改下core-site.xml文件:
d:我们再修改mapred-site.xml文件:
e:我们再修改hdfs-site.xml文件:
f:我们再修改hadoop-env.xml文件:
增加了java_home的路径。
紧接着我们开始配置本地网络配置:
vim /etc/hosts ------> (把ip地址记录下来,然后编辑:) 192.168.183.10 master 192.168.183.11 slave1 192.168.183.12 slave2 配置这个hosts文件的目的是我们可以以后不用ip来访问机器,直接用名称来访问,相当于是配置当前机器的DNS;配置完hostname之后使其生效:hostname master 但是这样还不是永久生效,那么怎么才能永久生效呢,我们还需要修改:vim /etc/sysconfig/network -------> HOSTNAME = master 现在我们又配置了2个文件。
现在我们master机器的配置差不多配好了。接下来我们去/usr/local/src/ 把hadoop文件拷贝给slave机器。 cd /usr/local/src/ ----> scp -rp hadoop1.2 192.168.183.11:/usr/local/src/
刚才我们在master节点上修改了hosts和network文件,所以我们也得在slave节点上修改这两个文件。
接下来为了避免我们网络连接上的问题,我们应该把我们的防火墙关闭,-----------》/etc/init.d/iptables stop .除了这个防火墙可能会影响我们网络传输的问题,还会有其他的原因,比如selinux,我们需要把这个设置一下:setenforce 0 再 getenforce----------》Permissive
接下来我们该建立每台机器的户性关系:就是ssh连接其他机器时,不需要密码: 在master节点上执行:ssh-keygen 然后回车, 接下来cd~/.ssh/ ls下,有4个文件,id_rsa.pub(公钥文件) id_rsa(私钥文件),我们要把三台机器的公钥文件的内容拷贝给authorized_key这个文件里。接下来把master这个文件拷贝到slave机器上去。
这样的话 这三台机器远程连接时,都不需要密码了。
10、接下来我们进入到/usr/local/src/下,cd hadoop1.2.1下 ls下 cd bin ls下 开始启动下我们的hadoop集群,我们第一次启动的时候,需要对我们的namanode进行格式化。 ./hadoop namenode -format 格式化完成之后,我们直接./start-all.sh 启动集群。敲入jps查看进程。
11.我们验证下这个hdfs可不可以用。敲一个hadoop命令:./hadoop fs -ls / ---------》查看当前环境下hdfs,查看到了一个目标。 我们往这个集群里面上传一个文件试试:./hadoop fs -put /etc/passwd / 那么这个文件可不可以读出来呢?./hadoop fs -cat /passwd 可以读。