Hadoop2.2.0伪分布式搭建

来源:互联网 发布:全民公主神兵数据图 编辑:程序博客网 时间:2024/05/19 23:55

在hadoop中,分为单机模式,伪分布式,和完全分布式。而伪分布式在1.X中就是类似JobTracker和TaskTracker都在一台机器上运行,在2.X中,就是NameNode和DataNode在一台机器上,而并没有实现多台机器来进行真正的分布式计算。

一、Linux环境的准备
首先说一下VMware的三种工作模式桥接(bridge)、NAT(网络地址转换)和host-only(主机模式)。参考 http://jingyan.baidu.com/article/3f16e003cd0a0d2591c103b4.html
桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注意虚拟主机的ip地址要和主机ip地址在同一网段)。
NAT模式下,虚拟系统需要借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式虚拟系统可把物理主机作为路由器访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。
主机模式下,真实环境和虚拟环境是隔离开的;在这种模式下,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开。(虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。)

这里使用仅主机模式(host only)来进行实现虚拟机和主机的通信。在安装VMware的时候,在windows上同时安装了两块网卡,可以在网络和共享中心中看到,一个是VMnet1,另一个是VMnet2。在VMnet1的属性中,设置IPv4的windows的IP:192.168.1.100,子网掩码255.255.255.0确定。然后在VMware中,打开编辑虚拟网络编辑器,设置主机模式的ip网段为192.168.1.0 子网掩码255.255.255.0然后应用。
1.1进入Linux,修改主机名
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=itcast01 ###
1.2修改IP
两种方式:
第一种:通过Linux图形界面进行修改(强烈推荐)
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.44 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply
第二种:修改配置文件方式
vim /etc/sysconfig/network-scripts/ifcfg-eth0

        DEVICE="eth0"        BOOTPROTO="static"           ###        HWADDR="00:0C:29:3C:BF:E7"        IPV6INIT="yes"        NM_CONTROLLED="yes"        ONBOOT="yes"        TYPE="Ethernet"        UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"        IPADDR="192.168.1.44"       ###        NETMASK="255.255.255.0"      ###        GATEWAY="192.168.1.1"        ###

1.3修改主机名和IP的映射关系
vim /etc/hosts
192.168.1.44 itcast01

1.4关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables –list
#关闭防火墙开机启动
chkconfig iptables off

1.5重启Linux
reboot

二、安装JDK
ps:我在安装JDK时,出现了/lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录的问题,原因是没有考虑虚拟机的位数导致了安装了32bit的JDK在了64bit的虚拟机上。所以可以通过more /proc/version 查看位数。另外在卸载之前的JDK版本时可以:借鉴 http://blog.csdn.net/zhongguozhichuang/article/details/52727745

1、卸载用 bin文件安装的JDK方法:
删除/usr/java目录下的所有东西

2、卸载系统自带的jdk版本方法:
查看自带的jdk:

#rpm -qa | grep gcj

看到如下信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用rpm -e –nodeps 命令删除上面查找的内容:

#rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

3、卸载rpm安装的jdk版本
查看安装的jdk:

#rpm -qa|grep jdk

看到如下信息:
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_16-fcs
卸载:

#rpm -e --nodeps jdk-1.6.0_16-fcs

2.1上传
2.2解压jdk
#创建文件夹
mkdir /usr/java
#解压
tar -zxvf jdk-7u55-linux-i586.tar.gz -C /usr/java/
2.3将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/usr/java/jdk1.7.0_55
export PATH=PATH:JAVA_HOME/bin
#刷新配置
source /etc/profile
三、安装Hadoop
3.1上传hadoop安装包
3.2解压hadoop安装包
mkdir /cloud
#解压到/cloud/目录下
tar -zxvf hadoop-2.2.0.tar.gz -C /cloud/
3.3修改配置文件(5个)
第一个:hadoop-env.sh
把export JAVA_HOME=${JAVA_HOME}
改为export JAVA_HOME=/usr/java/jdk1.7.0_55
第二个:core-site.xml

    <configuration>            <!-- 指定HDFS老大(namenode)的通信地址 HDFS的小弟是datanode-->            <property>                    <name>fs.defaultFS</name>                        <value>hdfs://itcast01:9000</value>            </property>            <!-- 指定hadoop运行时产生文件的存储路径 -->            <property>                    <name>hadoop.tmp.dir</name>                    <value>/cloud/hadoop-2.2.0/tmp</value>            </property>        </configuration>
    第三个:hdfs-site.xml
        <configuration>            <!-- 设置hdfs副本数量 备份的个数-->            <property>                    <name>dfs.replication</name>                    <value>1</value>            </property>        </configuration>
    第四个:mapred-site.xml.template 需要重命名: mv mapred-site.xml.template mapred-site.xml
        <configuration>            <!-- 通知框架MR使用YARN 告诉hadoopMR运行在yarn上-->            <property>                    <name>mapreduce.framework.name</name>                    <value>yarn</value>            </property>        </configuration>
    第五个:yarn-site.xml
        <configuration>            <!-- reducer取数据的方式是shuffle -->                                    <property>                <name>yarn.nodemanager.aux-services</name>                <value>mapreduce_shuffle</value>            </property><!--指定yarn的老大(ResourceManager)的地址 yarn的小弟是NodeManager--><property>    <name>yarn.resourcemanager.hostname</name>    <value>itcast01</value></property></configuration>

3.4将hadoop添加到环境变量
vim /etc/profile

    export JAVA_HOME=/usr/java/jdk1.7.0_55    export HADOOP_HOME=/cloud/hadoop-2.2.0    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin        这里也可以把sbin添加到PATH中    source /etc/profile

3.5格式化HDFS(namenode)第一次使用时要格式化
hadoop namenode -format(过时了,但是也可以使用)
hdfs namenode -format(建议使用)
3.6启动hadoop

          使用sbin/start-all.sh(过时了)          或者先启动HDFS      sbin/start-dfs.sh      再启动YARN      sbin/start-yarn.sh

3.7验证是否启动成功
使用jps(Java Virtual Machine Process Status Tool查看java进程的所有pid)命令验证
27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

可以在本地查看http://192.168.1.44:50070 (HDFS管理界面) http://192.168.1.44:8088 (MR管理界面)
在本地这个文件中添加linux主机名和IP的映射关系
C:\Windows\System32\drivers\etc\hosts
192.168.1.119 itcast
之后ip地址可以用itcast主机名来代替

四、配置ssh免登陆
生成ssh免登陆密钥
cd ~,进入到我的home目录
cd .ssh/
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免登陆的机器上
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh-copy-id -i localhost

原创粉丝点击