宿主机ipconfig截图:html
Vmnet8网络配置:java
虚拟机网络配置:node
上传安装包到服务器:web
上传成功后,看到两个压缩包:apache
解压两个压缩包:浏览器
给文件从新命名,方便以后配置环境变量:bash
配置jdk+hadoop环境变量:服务器
查看jdk环境变量是否配置成功:markdown
查看hadoop环境变量是否配置成功:网络
---------------------------------------------------------------------------------------
至此jdk和hadoop已经安装好,接下来修改一些配置文件
默认主机名:
查看和修改主机名:
永久修改主机名,修改配置文件执行命令: vi /etc/sysconfig/network:
绑定hostname和ip, 执行命令:vi /etc/hosts
一、查看Hadoop目录结构,执行命令:ll
二、重要目录
(1)bin目录:存放对Hadoop相关服务(HDFS,YARN)进行操做的脚本
(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件
(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)
(4)sbin目录:存放启动或中止Hadoop相关服务的脚本
(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例
Hadoop运行模式包括:本地模式、伪分布式模式以及彻底分布式模式。
Hadoop官方网站:hadoop.apache.org/
1. 建立在hadoop2.8.5文件下面建立一个input文件夹
[root@node hadoop2.8.5]$ mkdir input复制代码
2. 将Hadoop的xml配置文件复制到input
[root@node hadoop2.8.5]$ cp etc/hadoop/*.xml input复制代码
3. 执行share目录下的MapReduce程序
[root@node hadoop2.8.5]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jargrep input output 'dfs[a-z.]+' 复制代码
4. 查看输出结果
[root@node hadoop2.8.5]$ cat output/*复制代码
控制台结果展现:
1. 建立在hadoop2.8.5文件下面建立一个wcinput文件夹
[root@node hadoop2.8.5]$ mkdir wcinput复制代码
2. 在wcinput文件下建立一个wc.input文件
[root@node hadoop2.8.5]$ cd wcinput [root@node hadoop2.8.5]$ touch wc.input 复制代码
3. 编辑wc.input文件
[root@node hadoop2.8.5]$ vi wc.input复制代码
在文件中输入以下内容
hadoop
hadoop
mapreduce
yarn
保存退出::wq
4. 回到Hadoop目录/opt/module/hadoop2.8.5
5. 执行程序
[root@node hadoop2.8.5]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount wcinput wcoutput
复制代码
6. 查看结果
[root@node hadoop2.8.5]$ cat wcoutput/part-r-00000复制代码
hadoop 2
mapreduce 1
yarn 1
案例结果展现:
1. 配置集群
(1)配置:hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8/
(2)配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>复制代码
(3)配置:hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
复制代码
2. 启动集群
(1)格式化NameNode(第一次启动时格式化,之后就不要总格式化)
[root@node hadoop2.8.5]$ hdfs namenode -format复制代码
(2)启动NameNode
[root@node hadoop2.8.5]$ hadoop-daemon.sh start namenode复制代码
(3)启动DataNode
[root@node hadoop2.8.5]$ hadoop-daemon.sh
start datanode复制代码
3. 查看集群
(1)查看是否启动成功, 执行命令jps
注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
(2)web端查看HDFS文件系统
注意:在Windows环境经过URL访问,须要在C:\Windows\System32\drivers\etc\hosts,在其中添加192.168.158.128 node便可。
(3)查看产生的Log日志
本地查看日志:
web端查看日志:
(4)思考:为何不能一直格式化NameNode,格式化NameNode,要注意什么?
[root@node hadoop2.8.5]$ cd data/tmp/dfs/name/current/ [root@node hadoop2.8.5]$ cat VERSION 复制代码
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
[root@node hadoop2.8.5]$ cd data/tmp/dfs/data/current/复制代码
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
注意:格式化NameNode,会产生新的集群id,致使NameNode和DataNode的集群id不一致,集群找不到已往数据。因此,格式NameNode时,必定要先删除data数据和log日志,而后再格式化NameNode。
4. 操做集群
(1)在HDFS文件系统上建立一个input文件夹
执行命令: hdfs dfs -mkdir -p /usr/java/hadoop/input
(2)将本地测试文件内容上传到文件系统上
执行命令:hdfs dfs -put wcinput/wc.input /user/java/hadoop/input/
(3)查看上传的文件是否正确
执行命令:hdfs dfs -cat /usr/java/hadoop/input/wc.input
(4)运行MapReduce程序
执行命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(5)查看输出结果
执行命令:hdfs dfs -cat /usr/java/hadoop/output/*
(6)将测试文件内容下载到本地
执行命令:hdfs dfs -get /usr/java/hadoop/output/part-r-00000 wcoutput/
(7)删除输出结果
执行命令:hdfs dfs -rm -f /usr/java/hadoop/output
1. 配置集群
(1)配置yarn-env.sh
(2)配置yarn-site.xml
<!-- Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node</value>
</property>
复制代码
(3)配置:mapred-env.sh
(4)配置: (对mapred-site.xml.template从新命名为) mapred-site.xml
<!-- 指定MR运行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
复制代码
2. 启动集群
(1)启动前必须保证NameNode和DataNode已经启动
(2)启动ResourceManager
执行命令:yarn-daemon.sh start resourcemanager
(3)启动NodeManager
执行命令:yarn-daemon.sh start nodemanager
3. 集群操做
(1)YARN的浏览器页面查看,如图2-35所示
http://node:8088/cluster
(2)删除文件系统上的output文件
执行命令:hdfs dfs -rm -f /usr/java/hadoop/output
(3)执行MapReduce程序
执行命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(4)查看运行结果
1. 克隆虚拟机
2. 修改配置文件
(1)vi /etc/sysconfig/network-scripts/ifcfg-ens33
(2) vi /etc/sysconfig/network
(3) vi /etc/hosts
3. 集群部署规划
|
node |
node1 | node2 |
HDFS
|
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
4. 配置集群
(1)配置core-site.xml
<!-- 指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>
复制代码
(2)HDFS配置文件
export JAVA_HOME=/usr/java/jdk1.8/复制代码
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
复制代码
(3)YARN配置文件
export JAVA_HOME=/usr/java/jdk1.8/复制代码
<!-- Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
复制代码
(4)MapReduce配置文件
export JAVA_HOME=/usr/java/jdk1.8/复制代码
<!-- 指定MR运行在Yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
复制代码
5. 节点之间免密通讯: ssh配置免密登陆
6. 群起集群
启动HDFS:start-dfs.sh
启动yarn: start-yarn.sh
[node] jps
[node1] jps
[node2] jps
集群命令:
启动/中止HDFS
start-dfs.sh / stop-dfs.sh
启动/中止YARN
start-yarn.sh / stop-yarn.sh
所有启动/所有中止
start-all.sh / stop-all.sh