安装Hadoop教程
目录
第一步、 配置Vmware NAT网络... 2
一、 Vmware网络模式介绍... 2
二、 NAT模式配置... 2
第二步、 安装Linux操作系统... 3
三、 Vmware上安装Linux系统... 3
四、 设置网络... 5
五、 修改Hostname. 6
六、 配置Host. 7
第三步、 安装JDK. 7
七、 安装Java JDK. 7
八、 添加环境变量... 7
第四步、 单机Hadoop部署过程... 7
九、 Hadoop所用的用户设置... 7
十、 安装Hadoop. 8
十一、 配置Hadoop. 8
十二、 配置、格式化、启动HDFS. 9
十三、 配置、启动YARN.. 11
十四、 运行Haddop Job. 12
十五、 停止Hadoop. 12
第五步、 伪分布式环境部署Hadoop. 12
十六、 其他机器添加Hadoop用户... 12
十七、 其他机器安装JDK. 12
十八、 其他机器配置网络、Hostname、host. 12
十九、 设置SSH无密码登录... 12
二十、 修改Master上的slave文件... 12
二十一、 将Master上的Hadoop目录拷贝到各个Slave机器上... 12
二十二、 启动集群... 12
第六步、 常见问题... 12
二十三、 如何完全卸载Vmware. 12
一、Vmware网络模式介绍
参考:http://blog.csdn.net/collection4u/article/details/14127671
二、NAT模式配置
NAT是网络地址转换,是在宿主机和虚拟机之间增加一个地址转换服务,负责外部和虚拟机之间的通讯转接和IP转换。
我们部署Hadoop集群,这里选择NAT模式,各个虚拟机通过NAT使用宿主机的IP来访问外网。
我们的要求是集群中的各个虚拟机有固定的IP、可以访问外网,所以进行如下设置:
1、 Vmware安装后,默认的NAT设置如下:
2、 默认的设置是启动DHCP服务的,NAT会自动给虚拟机分配IP,但是我们需要将各个机器的IP固定下来,所以要取消这个默认设置。
3、 为机器设置一个子网网段,默认是192.168.136网段,我们这里设置为100网段,将来各个虚拟机Ip就为 192.168.100.*。
4、 点击NAT设置按钮,打开对话框,可以修改网关地址和DNS地址。这里我们为NAT指定DNS地址。
5、 网关地址为当前网段里的.2地址,好像是固定的,我们不做修改,先记住网关地址就好了,后面会用到。
第二步、安装Linux操作系统
三、Vmware上安装Linux系统
1、 文件菜单à新建虚拟机
2、 选择经典类型安装,下一步。
3、 安装来源选择下载好的Linux安装iso光盘映像文件,下一步。
4、 安装后指定添加一个操作系统user,这里创建一个全名为hadoop、用户名为hadoop的用户。
5、 命名虚拟机,给虚拟机起个名字,将来显示在Vmware左侧。并选择Linux系统保存在宿主机的哪个目录下,应该一个虚拟机保存在一个目录下,不能多个虚拟机使用一个目录。
6、 指定磁盘容量,是指定分给Linux虚拟机多大的硬盘,默认20G就可以,下一步。
7、 点击自定义硬件,可以查看、修改虚拟机的硬件配置,这里我们不做修改。
8、 点击完成后,就开始安装Linux系统。
9、 安装完成后,Linux系统有两个用户:root和hadoop。
因为Vmware的NAT设置中关闭了DHCP自动分配IP功能,所以Linux还没有IP,需要我们设置网络各个参数。
1、 用root进入Xwindow,右击右上角的网络连接图标,选择修改连接。
2、 网络连接里列出了当前Linux里所有的网卡,这里只有一个网卡System eth0,点击编辑。
3、 配置IP、子网掩码、网关(和NAT设置的一样)、DNS等参数,因为NAT里设置网段为100.*,所以这台机器可以设置为192.168.100.10网关和NAT一致,为192.168.100.2
4、 用ping来检查是否可以连接外网,如下图,已经连接成功。
1、 临时修改hostname
[[email protected]
Desktop]# hostname master
这种修改方式,系统重启后就会失效。
2、 永久修改hostname
想永久修改,应该修改配置文件
/etc/sysconfig/network。
命令:[[email protected] ~] vim /etc/sysconfig/network
打开文件后,
NETWORKING=yes
#使用网络
HOSTNAME=master
#设置主机名
命令:[[email protected] ~] vim /etc/hosts
添加hosts: 192.168.100.10 master
1、 查看是否已经安装了java JDK。
[[email protected]
Desktop]# java –version
注意:Hadoop机器上的JDK,最好是Oracle的Java JDK,不然会有一些问题,比如可能没有JPS命令。
如果安装了其他版本的JDK,卸载掉。
2、 安装java JDK
(1) 去下载Oracle版本Java JDK:jdk-8u91-linux-x64.rpm
(2) 安装JAVA JDK
[[email protected]
Desktop]# rpm –ivh jdk-8u91-linux-x64.rpm
3、 安装后再次执行 java –version,可以看见已经安装完成,JDK安装在/usr/java/jdk1.8.0_91目录下。
设置JDK的环境变量 JAVA_HOME。需要修改配置文件/etc/profile,追加
export
JAVA_HOME="/usr/java/jdk1.8.0_91"
export
PATH=$JAVA_HOME/bin:$PATH
修改完毕后,执行 source /etc/profile
第四步、单机Hadoop部署过程
九、Hadoop所用的用户设置
1、 给hadoop用户sudo权限
[[email protected] ~]# vim
/etc/sudoers
设置权限:
root
ALL=(ALL) ALL
hadoop ALL=(root)
NOPASSWD:ALL
2、 创建存放hadoop文件的目录
[[email protected] ~]$
sudo mkdir /usr/hadoop
3、 将hadoop文件夹的所有者指定为hadoop用户
[[email protected] ~]#
chown -R hadoop:hadoop /usr/hadoop
1、 复制hadoop-2.5.0.tar.gz到/usr/hadoop目录下。
2、 解压hadoop-2.5.0.tar.gz
[[email protected] ~]# cd
/usr/hadoop
[[email protected]
hadoop]# tar -zxvf hadoop-2.5.0.tar.gz
1、 配置Hadoop环境变量
[[email protected]
hadoop]# vim /etc/profile
追加配置:
export
HADOOP_HOME="/usr/hadoop/hadoop-2.5.0"
export
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
执行:source /etc/profile 使得配置生效
2、 配置
${HADOOP_HOME}/etc/hadoop/hadoop-env.sh文件
[[email protected] ~]$
sudo vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
修改HADOOP_CONF_DIR参数为:
export
HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
3、 配置core-site.xml
[[email protected] ~]$
sudo vim ${HADOOP_HOME}/etc/hadoop/core-site.xml
(1) fs.default.name配置的是HDFS的地址。
(2) hadoop.tmp.dir配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存放这个目录下,查看*-default.xml等默认配置文件,就可以看到很多依赖${hadoop.tmp.dir}的配置。
创建临时目录:[[email protected] ~]$ sudo mkdir ${HADOOP_HOME}/hadoop_tmp
1、 配置hdfs-site.xml
[[email protected] ~]$
sudo vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
dfs.replication配置的是HDFS存储时的备份数量,只有一个节点,所以这里设置为1。
2、 格式化HDFS
[[email protected] ~]$
hdfs namenode –format
格式化后,查看core-site.xml里hadoop.tmp.dir指定的目录下是否有了dfs目录,如果有,说明格式化成功。
注意:
(1) 格式化时,应该保证当前用户(hadoop)有对${HADOOP_HOME}目录读、写、行权限,最好是目录的所有者,如果不是,可以用命令修改所有者
[[email protected] /]# chown
-R hadoop:hadoop ${HADOOP_HOME}
[[email protected] /]#
chmod 755 -R ${HADOOP_HOME}
(2) 查看NameNode格式化后的目录
[[email protected]
~]$ ll ${HADOOP_HOME}/hadoop_tmp/dfs/name/current
total 16
-rw-rw-r--. 1 hadoop hadoop 353 May 27
10:45 fsimage_0000000000000000000
-rw-rw-r--. 1 hadoop hadoop 62 May
27 10:45 fsimage_0000000000000000000.md5
-rw-rw-r--. 1 hadoop hadoop 2
May 27 10:45 seen_txid
-rw-rw-r--. 1 hadoop hadoop 206 May 27
10:45 VERSION
fsimage是NameNode元数据在内存满了后,持久化保存到的文件。
fsimage*.md5 是校验文件,用于校验fsimage的完整性。
seen_txid 是hadoop的版本
vession文件里保存:
l
namespaceID:NameNode的唯一ID。
l
clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
#Fri May 27 17:46:48 PDT 2016 namespaceID=1733061610 clusterID=CID-d32df410-6498-4bcd-97a8-7cb7253b3789 cTime=0 storageType=NAME_NODE blockpoolID=BP-188107533-192.168.100.10-1464371112276 layoutVersion=-57 |
3、 启动NameNode
[[email protected] ~]$
${HADOOP_HOME}/sbin/hadoop-daemon.sh start namedatanode
4、 启动DataNode
[[email protected] ~]$
${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
5、 启动SecondaryNameNode
[[email protected] ~]$
${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
6、 JPS命令查看是否已经启动成功,有结果就是启动成功了。
[[email protected] ~]$ jps
2800 DataNode
2932 Jps
2709 NameNode
2888
SecondaryNameNode
7、 Web页面查看HDFS
HDFS的Web页面端口号为50070,通过http://192.168.100.10:50070可以查看。
如果不能访问,看服务器的防火墙是否打开着,学习环境,可以直接把防火墙关闭。
关闭防火墙:
(1) 用root用户登录后,执行[[email protected] hadoop]#
service iptables status 查看防火墙状态
(2) 用[[email protected] hadoop]# service
iptables stop关闭防火墙,这个是临时关闭防火墙,如果要永久关闭防火墙用[[email protected] hadoop]# chkconfig iptables off关闭,这种需要重启才能生效。
1、 配置mapred-site.xml
默认没有mapred-site.xml文件,但是有个mapred-site.xml.template配置模板文件。复制模板生成mapred-site.xml。
[[email protected] hadoop]# cp
${HADOOP_HOME}/etc/hadoop/mapred-site.xml.template
${HADOOP_HOME}/etc/hadoop/mapred-site.xml
添加配置如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
指定mapreduce运行在yarn框架上。
2、 配置yarn-site.xml
添加配置如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
yarn.nodemanager.aux-services配置了yarn的默认混洗方式,选择为mapreduce的默认混洗算法。
3、 启动Resourcemanager
[[email protected] ~]$
${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager
4、 启动nodemanager
[[email protected] ~]$
${HADOOP_HOME}/sbin/yarn-daemon.sh start nodemanager
5、 查看是否启动成功
[[email protected] ~]$ jps
2800 DataNode
7170 ResourceManager
2709 NameNode
2888 SecondaryNameNode
7528 Jps
7417 NodeManager
可以看到ResourceManager、NodeManager已经启动成功了。
6、 YARN的Web页面
YARN的Web客户端端口号是8088,通过http://192.168.100.10:8088/可以查看。
[[email protected] ~]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh
stop namenode
stopping namenode
[[email protected] ~]$
${HADOOP_HOME}/sbin/hadoop-daemon.sh stop datanode
stopping datanode
[[email protected] ~]$
${HADOOP_HOME}/sbin/yarn-daemon.sh stop resourcemanager
stopping resourcemanager
[[email protected] ~]$
${HADOOP_HOME}/sbin/yarn-daemon.sh stop nodemanager
stopping
nodemanager
十八、其他机器配置网络、Hostname、host
十九、设置SSH无密码登录
二十、修改Master上的slave文件
二十一、将Master上的Hadoop目录拷贝到各个Slave机器上
参考:http://nickzp.blog.51cto.com/12728/1123735