VMWARE Centos6 安装 hadoop

由于机器配置不高,所以安装时选mini,最小的。

1. 设置IP使centos可以上网,需修改如下文件:

/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf

具体修改为:

1)修改:/etc/sysconfig/network,主要设置网关,具体如下
NETWORKING=yes 
NETWORKING_IPV6=no  
GATEWAY=192.168.1.1  // 网关

2)修改:/etc/sysconfig/network-scripts/ifcfg-eth0,主要设置IP等,具体如下

DEVICE=eth0 
BOOTPROTO=static 
IPADDR=192.168.1.21 
NETMASK=255.255.255.0 
TYPE=Ethernet 
HWADDR=XX:XX:XX:XX:XX:XX 
ONBOOT=yes

3)修改:/etc/resolv.conf,主要设置DNS等,具体如下

nameserver 192.168.1.1 // 这里设置你具体的DNS,注意,这里不是nameserver=192.168.1.1

2 下面安装vwware tools

安装过程中遇到如下错误,

/usr/bin/perl: bad interpreter: No such file or directory,

估计是由于选择最小安装包mini造成的,

解决如下:

1.查看版本号:uname -r得到内核版本,yum install 获取的内核版本 然后再yum install gcc

#uname -r

3.6.10-2.fc17.x86_64

#yum install kernel-devel-3.6.10-2.fc17.x86_64

#yum install gcc

通过以上操作,问题没有解决,网上说是缺少perl模块,于是执行下面的命令:

yum install perl

问题解决。

3. 安装图形化界面,尝试如下代码

yum grouplist    检查已安装的组
yum groupinstall "X Window System"
yum groupinstall "GNOME Desktop Environment"
startx

执行“startx”报错“waiting for X server to shut down Server terminated successfully (0). Closing log file. 

解决办法如下:

yum groupinstall "KDE Desktop"

执行以上代码,图形化界面安装成功.

4. 安装JDK

# chmod a+x jdk-1_5_0_14-linux-i586.bin ← 使当前用户拥有执行权限 
# ./jdk-1_5_0_14-linux-i586.bin ← 选择yes直到安装完毕 

# vi /etc/profile 在最后加入以下几行:
export JAVA_HOME=/usr/java/jdk1.6.0_10 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin 
# reboot ← 重启机器配置生效

5.安装tomcat

把下载的apache-tomcat-7.0.19.tar.gz文件上传到服务器的根目录

   #tar zxvf apache-tomcat-7.0.19.tar.gz

   #mv apache-tomcat-7.0.19 apache-tomcat

   #vim /etc/profile

   在文件末尾添加:

   export TOMCAT_HOME=/apache-tomcat/

   #source /etc/profile

   #cd /apache-tomcat/bin/

   #chmod 777 *.sh

   #./startup.sh  // 可通过netstat -lnp | grep 8080 看端口是否开启,通过ip:8080访问判断是否安装成功.

这里会发现一个问题: 就是主机访问不了虚拟机tomcat的服务,在网上找了这个资料,问题解决:

在wmware中安装linux后安装好数据库,JDK及tomcat后启动服务,虚拟机中可以访问,但是主机却无法访问,但是同时主机和虚拟机之间可以ping的通,网上查阅资料后,解决方法是关闭虚拟机中的防火墙服务。桌面--管理--安全级别与防火墙,将防火墙设置为:disable即可。或用root登录后,执行 
service iptables stop --停止 
service iptables start --启动 
但是在实际应用中,关闭防火墙降低的服务器的安全性,不能关闭防火墙。 
如果在宿主机的dos窗口下telnet虚拟机的8080窗口,会失败,由此可以确定是虚拟机的8080窗口有问题,应该是被防火墙堵住了。因此修改防火墙设置即可。 
修改Linux系统防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,如果要开放哪个端口,在里面添加一条 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 
就可以了,其中 8080 是要开放的端口号,然后重新启动linux的防火墙服务, 
/etc/init.d/iptables restart

6.下面打算安装hadoop

由于本人机器配置有限,所以下面到服务器上来安装,服务器共三台,系统用的是Ubuntu 11.04,上面的操作是为了熟悉环境,因为我是新手。

1)创建用户和组

groupadd  test                        创建test用户组
useradd  user1                        创建user1用户
passwd   user1                         设置user1的密码
useradd  user2                        创建user2用户
passwd   user2                        设置user2的密码
gpasswd  -a  user1  test           把user1用户添加到test用户组
gpasswd  -a  user2  test           同上  // 这里注意,在ubuntu上用useradd,不会自动创建主目录// 这里注意,在ubuntu上用useradd,不会自动创建主目录

2) 配置ssh

比如,有两个机器,A机器ip为192.168.1.101 B机器ip为192.168.1.102,其中A为namenode节点所在的机器,B为datanode节点所在的机器

配置ssh的目的,是让A可以不用输入密码,就能直接访问B,访问方式为 ssh 用户名@192.168.1.102 ,用户名为安装hadoop所使用的用户名;

这里假设A、B机器均用用户名为hadoop的用户来安装。

具体步骤为:

以hadoop用户登录A机器,执行如下命令:

#ssh-keygen -t rsa -P "" // 创建ssh-key,,这里我们采用rsa方式

#cd ~/.ssh // (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

#cat id_rsa.pub >> authorized_keys // 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的

#scp ~/.ssh/id_rsa.pub hadoop@192.168.1.102:~/.ssh/  // 将这个文件拷贝到B机器,这里注意,B机器上是没有.ssh目录,这里我就索性在B机器上也执行了一下#ssh-keygen -t rsa -P "" ,估计直接mkdir一个.ssh目录应该也是可以的,这里没做尝试。

下面,以hadoop用户登录B机器,执行如下代码:

#cat ~/.ssh/id_rsa.pub >>  ~/.ssh/authorized_keys // 这里的作用就是让A、B机器上的authorized_keys 有相同的一个密钥,具体原理不懂的可以搜搜,这样就配置完成了。

测试:

以hadoop用户登录A机器,然后执行ssh hadoop@192.168.1.102,可直接登录到B机器上,则表示配置成功。

// 注意,这里是单向的,反过来 B机器到A机器是不成立的。

##### 下面的工作发现,安装hadoop需要双向信任,搞了半天,找到解决办法,具体为:

在A机器上执行ssh-keygen -t rsa -P ""和cat id_rsa.pub >> authorized_keys 命令后,直接把.ssh目录下的所有文件拷贝到B机器上的.ssh目录。

这样操作之后,A机器可以通过SSH直接登录B机器,B机器登录A机器的时候,需要一次yes,之后就也可以直接登录了。

====================================================================================================

###由于在公司只能抽时间搞,所以断断续续,现在在家,继续搞起,O(∩_∩)O~,自娱自乐。####

说明:上面的准备本来打算直接装集群环境的,现在改变主意了,先做单机的,然后改成集群的,一步步来,这样感觉学的踏实。

############单机版安装步骤#####################

1. hadoop版本,我选择0.20.2,老版本,资料多,熟悉以后再来尝试最新版本的。

1)以hadoop用户登录,IP地址为192.168.1.108,将hadoop.tar.gz拷贝到hadoop根目录,解压。

2)下面做配置,主要修改以下文件:

   (1)配置conf/hadoop-env.sh,将 export JAVA_HOME=/usr/lib/jvm/java-6-openjdk 添加到文件末尾。

   (2)core-site.xml,修改为以下内容:

<configuration>
 <property>
   <name>fs.default.name</name>
  <value>hdfs://192.168.1.108:9000</value>  // ip地址+端口号
 </property>
 <property>
   <name>hadoop.tmp.dir</name>
   <value>/home/hadoopys/hadoop/tmp</value>  ///home/hadoopys/hadoop/tmp,路径如果不存在的话,自己创建
  </property>
</configuration>

  (3) 修改 mapred-site.xml ,修改为以下内容:

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

(4)修改hdfs-site.xml,修改为以下内容:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoopys/hadoop/filesystem/data</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoopys/hadoop/filesystem/name</value>
</property>
</configuration>  // 目录不存在,自己创建

(5)修改masters文件和slave文件,两个文件的内容都改为 192.168.1.108

(6)切换到hadoop/bin目录下,执行如下命令:

./hadoop namenode -format

(7)接着执行./start-all.sh命令

(8)执行成功后,输入jps命令,看是否能列出hadoop相关进程,如果能,则说明部署成功,

       这里还有别的检测办法,比如查看Log日志,命令为: vi ../logs/hadoop-hadoopys-namenode-yangsen-virtual-machine.log,如果没报错,则说明部署成功。

       这个日志文件里,有500开头的端口号,网上多数说50030和50070,我这显示的是50010和50070,在浏览器中输入http://192.168.1.108:50070,可以看到一些信息,单机版的就安装到这了。

补充:按照以上来测试hadoop是否安装成功,感觉还是有点不靠谱,所以又想了想,还有别的更靠谱的办法来判断吗?

有。。。 那就是如果能执行dfs功能和mapreduce任务,就说明安装成功了,具体步骤如下:

#  ./hadoop dfs -mkdir testin  //创建一个testin目录,

#  vi aaa.txt  //里面随便输入点内容,如"123456",然后保存退出

# ./hadoop dfs -ls  // 查看目录

>> 结果如下:

drwxr-xr-x   - hadoopys supergroup          0 2013-05-16 11:17 /user/hadoopys/output
drwxr-xr-x   - hadoopys supergroup          0 2013-05-16 11:25 /user/hadoopys/testin
drwxr-xr-x   - hadoopys supergroup          0 2013-05-16 11:16 /user/hadoopys/yshdoop

#./hadoop dfs -put aaa.txt /user/hadoopys/testin  // 将aaa.txt 上传到  /user/hadoopys/testin目录下

#cd ..  // 切换到hadoop目录,主要为了直接访问hadoop-0.20.2-examples.jar

#bin/hadoop jar hadoop-0.20.2-examples.jar wordcount /user/hadoopys/testin/aaa.txt /user/hadoopys/output2  // 执行自带worcount例子,output2不能存在

>>执行结果如下:

13/05/16 11:31:09 INFO input.FileInputFormat: Total input paths to process : 1
13/05/16 11:31:10 INFO mapred.JobClient: Running job: job_201305161032_0003
13/05/16 11:31:11 INFO mapred.JobClient:  map 0% reduce 0%
13/05/16 11:31:22 INFO mapred.JobClient:  map 100% reduce 0%
13/05/16 11:31:34 INFO mapred.JobClient:  map 100% reduce 100%
13/05/16 11:31:36 INFO mapred.JobClient: Job complete: job_201305161032_0003
13/05/16 11:31:36 INFO mapred.JobClient: Counters: 17
13/05/16 11:31:36 INFO mapred.JobClient:   Job Counters
13/05/16 11:31:36 INFO mapred.JobClient:     Launched reduce tasks=1
13/05/16 11:31:36 INFO mapred.JobClient:     Launched map tasks=1
13/05/16 11:31:36 INFO mapred.JobClient:     Data-local map tasks=1
13/05/16 11:31:36 INFO mapred.JobClient:   FileSystemCounters
13/05/16 11:31:36 INFO mapred.JobClient:     FILE_BYTES_READ=65
13/05/16 11:31:36 INFO mapred.JobClient:     HDFS_BYTES_READ=210
13/05/16 11:31:36 INFO mapred.JobClient:     FILE_BYTES_WRITTEN=162
13/05/16 11:31:36 INFO mapred.JobClient:     HDFS_BYTES_WRITTEN=42
13/05/16 11:31:36 INFO mapred.JobClient:   Map-Reduce Framework
13/05/16 11:31:36 INFO mapred.JobClient:     Reduce input groups=5
13/05/16 11:31:36 INFO mapred.JobClient:     Combine output records=5
13/05/16 11:31:36 INFO mapred.JobClient:     Map input records=34
13/05/16 11:31:36 INFO mapred.JobClient:     Reduce shuffle bytes=65
13/05/16 11:31:36 INFO mapred.JobClient:     Reduce output records=5
13/05/16 11:31:36 INFO mapred.JobClient:     Spilled Records=10
13/05/16 11:31:36 INFO mapred.JobClient:     Map output bytes=346
13/05/16 11:31:36 INFO mapred.JobClient:     Combine input records=34
13/05/16 11:31:36 INFO mapred.JobClient:     Map output records=34
13/05/16 11:31:36 INFO mapred.JobClient:     Reduce input records=5

>>>> 以上说明,hadoop安装成功!

######################下面来配置集群的#################################

具体步骤如下:

1.保证ssh双向互通, 我这里把192.168.1.108作为namenode,192.168.1.111作为datanode

2.在108上,修改salves配置文件,将192.168.1.111添加进去。

3.然后把108机器上部署好的hadoop拷贝一份到 111机器上。

4.在108上格式化dfs,然后start-all。

总结: 至此,hadoop的环境配置好了,下面准备看书,先看hadoop“权威指南”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值