Hadoop伪分布式搭建步骤
说明: 搭建环境是VMware10下用的是Linux CENTOS 32位,Hadoop:hadoop-2.4.1 JAVA :jdk7 32位;本文是本人在网络上收集的HADOOP系列视频所附带的课堂笔记(这里直接抄过来的),记录备忘。
补充:1、虚拟机的网络配置,桥接模式:相当于虚拟机与实体机公用一个网卡,所以这种模式下的虚拟机需要联网的话,需要跟实体机一个网段和网关。NAT模式:实体机相当于一个路由器,虚拟机相当于一个内网。
开始前让我们简单修改下LINUX系统的JDK;一般情况下,我们都要将linux自带的OPENJDK卸载掉,然后安装SUN的JDK(下面的代码来源网络,请注意真实自己环境)
<1> 查看已经安装的JAVA版本信息
# java -version
一般将获得如下信息:
java version "1.6.0" OpenJDK Runtime Environment (build 1.6.0-b09) OpenJDK 64-Bit Server VM (build 1.6.0-b09, mixed mode)
<2>查看jdk的信息
# rpm -qa|grep java
一般将获得如下信息:
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
<3> 卸载
# yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115 # yum -y remove java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
然后,就是真正安装HADOOP伪分布的过程,本人亲测成功。
1.准备Linux环境(IP仅作参考)
1.0 点击VMware快捷方式,右键打开文件所在位置 -> 双击vmnetcfg.exe -> VMnet1 host-only ->修改subnet ip 设置网段:192.168.1.0 子网掩码:255.255.255.0 -> apply -> ok
回到windows --> 打开网络和共享中心 -> 更改适配器设置 -> 右键VMnet1 -> 属性 -> 双击IPv4 -> 设置windows的IP:192.168.1.100 子网掩码:255.255.255.0 -> 点击确定
在虚拟软件上 --My Computer -> 选中虚拟机 -> 右键 -> settings -> network adapter -> host only -> ok
1.1 修改主机名
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=itcast ### 这里就不修改,也让读者知道真正的作者来源
1.2 修改IP
两种方式:
第一种:通过Linux图形界面进行修改(强烈推荐)
进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 -> 添加IP:192.168.1.101 子网掩码: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.101" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.1.1" ###
1.3 修改主机名和IP的映射关系
vim /etc/hosts
192.168.1.101 itcast
1.4 关闭防火墙
#查看防火墙状态 service iptables status #关闭防火墙 service iptables stop #查看防火墙开机启动状态 chkconfig iptables --list #关闭防火墙开机启动 chkconfig iptables off
1.5 重启Linux reboot
2.安装JDK
2.1 上传alt+p 后出现sftp窗口(使用的SecureCRT),然后
put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz
2.2 解压jdk
#创建文件夹 mkdir /home/hadoop/app #解压 tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app
2.3 将java添加到环境变量中
vim /etc/profile #在文件最后添加 export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585 export PATH=$PATH:$JAVA_HOME/bin #刷新配置 source /etc/profile
3.安装hadoop2.4.1
先上传hadoop的安装包到服务器上去/home/hadoop/ 注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop 伪分布式需要修改5个配置文件
3.1 配置hadoop
第一个:hadoop-env.sh
vim hadoop-env.sh #第27行 export JAVA_HOME=/usr/java/jdk1.7.0_65
第二个:core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://weekend-1206-01:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.4.1/tmp</value> </property>
第三个:hdfs-site.xml hdfs-default.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五个:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>weekend-1206-01</value> </property> <!-- reducer获取数据的方式 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
3.2 将hadoop添加到环境变量
vim /etc/proflie export JAVA_HOME=/usr/java/jdk1.7.0_65 export HADOOP_HOME=/itcast/hadoop-2.4.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin source /etc/profile
3.3格式化namenode(是对namenode进行初始化)
hdfs namenode -format (hadoop namenode -format)
3.4启动hadoop
#先启动HDFS sbin/start-dfs.sh #再启动YARN sbin/start-yarn.sh
3.5验证是否启动成功
使用jps命令验证 # jps 27408 NameNode 28218 Jps 27643 SecondaryNameNode 28066 NodeManager 27803 ResourceManager 27512 DataNode #http://192.168.1.101:50070 (HDFS管理界面) #http://192.168.1.101:8088 (MR管理界面)
4.配置ssh免登陆
#生成ssh免登陆密钥 #进入到我的home目录 cd ~/.ssh ssh-keygen -t rsa (四个回车) 执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥) 将公钥拷贝到要免登陆的机器上 ssh-copy-id localhost
最后,HADOOP就可以正常启动了。
下面一些命令是我自己需要的,请忽略
service network restart cd /home/hadoop/app/hadoop-2.4.1/sbin/ /etc/udev/rules.d/70-persistent-net.rules /etc/sysconfig/network-scripts/ifcfg-eth0 1. Remove Network Manager from startup Services. chkconfig NetworkManager off 2. Add Default Net Manager chkconfig network on 3.Stop NetworkManager first service NetworkManager stop 4.and then start Default Manager service network start scp -r /home/hadoop/jdk-7u65-linux-i586.tar.gz root@192.168.2.202:/home/seasky/jdk-7u65-linux-i586.tar.gz scp -r /home/hadoop/hadoop-2.4.1.tar.gz root@192.168.2.202:/home/seasky/hadoop-2.4.1.tar.gz
克隆虚拟机后的修改:
1- 修改主机名 vim /etc/sysconfig/network
2- 修改网卡 # vi /etc/udev/rules.d/70-persistent-net.rules 前面加#注释掉第一个网卡,更改第2个网卡为eth0,记录下mac地址
3- 修改IP#vi /etc/sysconfig/network-scripts/ifcfg-eth0
4- 添加本机地址 hosts vim /etc/hosts
5- 修改配置Hadoop core-site.xml yarn-site.xml
格式化HDFS 以及重置 SSH key
6- 重启 reboot