vmware10
Centos6.5 64位版本
JDK1.8linux32位版
Hadoop2.7.3版本html
字符界面安装centos6.5,网络设置为主机模式或者桥链接
配置静态ip 并测试能不能从主机ping的通虚拟机
使用secureCRT进行远程ssh登录
配置etc/hosts 添加ip对应的主机名,好比192.168.17.2 master
安装ssh 客户端,经过修改本地yum源来进行,成功后重启服务
关闭防火墙 chkconfig
建立普通用户 hadoop(名字可自定义)
设置免密钥ssh登陆(伪分布式其实能够省略
上传jdk和hadoop2.7.3
使用普通用户登录,在home目录下建立bd文件夹(非必需)
分别解压jdk和hadoop2.7.3,并测试
配置普通用户的环境变量,.bashrc(也能够直接在etc/profile进行配置)
测试echo $JAVA_HOME
修改配置5个配置文件
hadoop-env.sh
core-site.xml
hdfs-site.xml
mapred-sit.xml(将mapred-sit.xml.template重命令)
yarn-site.xml
使用jdk下面的bin目录中的jps来查看下进程
或者查看日志,在hadoop解压目录中logs里面
在主机windows里面的system32/drivers/etc/hosts里面添加linux主机名对应的linux里面的ip
经过浏览器进行访问8088端口和50070端口进行测试java
1.添加hadoop用户node
2.切换到hadoop用户linux
配置无密码ssh认证链接web
...(自查)apache
获取hadoop安装包windows
从hadoop的官网获取你须要的版本,本教程采用2.8.X版本的安装包。centos
官网地址:http://hadoop.apache.org/releases.html浏览器
jdkbash
hadoop自身是用java编写的,因此须要java环境来运行它。须要下载一个和你选择的hadoop版本匹配的JDK安装包。Hadoop版本与java版本的对应关系以下:
hadoop3.0 java8
hadoop2.7及后续版本 java7
hadoop2.6及之前的版本 java6
为方便安装,咱们到java的oracle官网下载一个64位的jdk8的rpm包。
...(省略)
上传安装包
Hadoop用户操做:
查看上传的文件
配置hadoop环境变量
为hadoop配置JAVA_HOME
配置hadoop集群
集群配置文件下载地址:
连接:https://pan.baidu.com/s/1R5081Nd82B5u8DLMysnY7A 密码 :ldsq
core-site.xml 核心配置文件
它会被全部的hadoop进程使用。需在该配置文件中配置hadoop集群默认文件系统的访问uri(必需配置),能够指定IO缓冲区的大小等。
这个小集群的的配置以下:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://192.168.0.11:9000</value> </property> </configuration>
hdfs-site.xml hdfs集群参数配置文件
在该文件配置hdfs集群的参数,经常使用的配置参数以下,若是都是使用的默认值,则不需进行配置。
小集群的配置以下:
hdfs-site.xml
<configuration> <property> <description>文件的备份数量</description> <name>dfs.replication</name> <value>3</value> </property> <property> <description>NameNode文件系统名称空间存放目录</description> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/namespace</value> </property> <property> <description>DataNode上文件数据块的存放目录</description> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data</value> </property> </configuration>
从节点(DataNode)列表配置:
在NameNode的etc/hadoop/slaves 文件列出全部的DataNode的ip,一个一行。
如
10.0.2.20
10.0.2.21
10.0.2.22
etc/hadoop/mapred-site.xml 配置
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
etc/hadoop/yarn-site.xml 配置
<configuration> <!-- Site specific YARN configuration properties --> <property> <description>resourceManager节点的主机地址</description> <name>yarn.resourcemanager.hostname</name> <value>192.168.0.13</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
一、复制
二、修改复制机器:
修改主机名:
hostnamectl set-hostname xxx
修改ip地址:
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
修改 IPADDR=指定ip
重启网络服务
systemctl restart network
启动hdfs集群
一、格式化文件系统
$ hdfs namenode -format
二、在NameNode上启动hdfs集群
$ start-dfs.sh
hadoop进程的日志将输出在目录 $HADOOP_HOME/logs下
三、经过浏览器浏览NameNode的web界面,默认的浏览地址为:
http://namenode-ip:50070
如 http://192.168.0.111:50070
可用jps命令查看各个节点上运行的java进程
四、在NameNode上关闭hdfs集群
$ stop-dfs.sh
启动yarn集群
一、启动:在ResourceManager上启动yarn集群
$ start-yarn.sh
二、经过浏览器浏览ResourceManager的web界面,默认的浏览地址为:
http:// ResourceManager-ip:8088
如 http://192.168.0.111:8088
三、关闭:在ResourceManager上关闭yarn集群
$ stop-yarn.sh
启动jobHistoryServer
mr-jobhistory-daemon.sh start historyserver
一、在HDFS上建立执行MapReduce做业所需的目录
$ hdfs dfs -mkdir /user
$ hdfs dfs -mkdir /user/<username>
二、将输入文件拷贝到分布式文件系统上:
$ hdfs dfs -mkdir input
$ hdfs dfs -put etc/hadoop/*.xml input
三、运行MapReduce示例做业:
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep input output 'dfs[a-z.]+'
四、查看输出结果文件:
方式一:将分布式文件系统的输出文件拷贝到本地文件系统上,再查看:
$ hdfs dfs -get output output
$ cat output/*
方式二:直接在分布式文件系统上查看输出文件:
$ hdfs dfs -cat output/*
咱们会发现,系统被卡死了,为何呢?由于机器的内存只有512M,内存被耗尽了。用 ctrl+c强制结束(会等待好长一段时间),再来看一下内存使用状况:
其实咱们在启动HDFS、yarn后,内存就用完了。重启系统后,咱们启动hdfs、yarn,立刻看一下内存的使用状况:
再要执行mapreduce任务又须要不少内存(不够用),根本就执行不了。
解决办法:
一、调高机器的内存到1G
二、运行做业时加入jvm重用参数,以下所示:
hadoop jar /usr/hadoop/latest/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar grep -Dmapreduce.job.ubertask.enable=true input output5 'hdf[a-z.]+'