搭建伪分布式运行模式总结(总结)
1.step1 准备干净的linux
安装vmware,安装centOS 6,安装vmtools
2.step2 关闭防火墙
sudo service iptables stop
sudo service iptables off
3.step3 修改主机的hostname
编辑vim /etc/sysconfig/network
改HOSTNAME=那一行
4.step4 设置静态ip地址
编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
改成
=================================
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="eth0"
IPADDR=192.168.5.101
PREFIX=24
GATEWAY=192.168.5.2
DNS1=192.168.5.2
5.step5 编辑/etc/hosts文件添加集群ip和hostname (脚本实现,一定要注意主机名和ip的映射关系)
将本机的ip和hostname也映射到hosts中,以后要用
vim /etc/hosts
=============================
192.168.75.100 hadoop100
192.168.75.101 hadoop101
192.168.75.102 hadoop102
192.168.75.103 hadoop103
192.168.75.104 hadoop104
=============================
6.step6 创建普通用户,设置密码,为普通用户添加sudo权限
useradd jinghang
userpw jinghang
vim /etc/sudoers
在root ALL=(ALL) ALL
添加jinghang ALL=(ALL) NOPASSWD:ALL
wq!强制保存
7.step7 创建文件夹分别存放安装包 和 解压包
mkdir /opt/module /opt/software
8.step8 为创建的文件夹添加普通用户的操作权限
chown jinghang:jinghang /opt/module /opt/software
9.step9 关机重启,检查以上配置是否最正确
reboot
10.step10 确认无误后,关机快照
halt
保存快照
以下使用普通用户操作
11.step11 上传jdk和hadoop包,解压
新建会话名称Hadoop——SFTP 协议改为SFTP,以景航普通用户登录-->拖动压缩包到黑框
新建会话名称hadoop,以jinghang普通用户登录-->
(1)在Linux系统下的opt目录中查看软件包是否导入成功
[jinghang@hadoop101 opt]$ cd software/
[jinghang@hadoop101 software]$ ls
hadoop-2.7.2.tar.gz jdk-8u144-linux-x64.tar.gz
(2)解压JDK
[jinghang@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
(3)解压Hadoop
[jinghang@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/
(4)查看是否解压成功
[jinghang@hadoop101 software]$ ls /opt/module/
12.step12 配置环境变量,检查是否正确
I.将JDK添加到环境变量
(1)先获取JDK路径
[jinghang@hadoop101 jdk1.8.0_144]$ pwd
/opt/module/jdk1.8.0_144
(2)打开/etc/profile文件
[jinghang@hadoop101 software]$ sudo vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(3)保存后退出
:wq
(4)让修改后的文件生效
[jinghang@hadoop101 jdk1.8.0_144]$ source /etc/profile
(5) 测试JDK是否安装成功
[jinghang@hadoop101 jdk1.8.0_144]# java -version
java version "1.8.0_144"
注意:重启(如果java -version可以用就不用重启)
[jinghang@hadoop101 jdk1.8.0_144]$ sync
[jinghang@hadoop101 jdk1.8.0_144]$ sudo reboot
II.将Hadoop添加到环境变量
(1)获取Hadoop安装路径
[jinghang@hadoop101 hadoop-2.7.2]$ pwd
/opt/module/hadoop-2.7.2
(2)打开/etc/profile文件
[jinghang@hadoop101 hadoop-2.7.2]$ sudo vi /etc/profile
在profile文件末尾添加JDK路径:(shitf+g)
##HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(3)保存后退出
:wq
(4)让修改后的文件生效
[jinghang@ hadoop101 hadoop-2.7.2]$ source /etc/profile
6. 测试是否安装成功
[jinghang@hadoop101 hadoop-2.7.2]$ hadoop version
Hadoop 2.7.2
7. 重启(如果Hadoop命令不能用再重启)
[jinghang@ hadoop101 hadoop-2.7.2]$ sync
[jinghang@ hadoop101 hadoop-2.7.2]$ sudo reboot
13.step13 配置hadoop
a.配置hadpoop-env.sh
Linux系统中获取JDK的安装路径:
[jinghang@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.8.0_144
修改JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.8.0_144
b.配置core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>
c.配置hdfs-site.xml
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
d.配置mapred-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
e.配置mapred-site.xml
(对mapred-site.xml.template重新命名为) mapred-site.xml
[jinghang@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml
[jinghang@hadoop101 hadoop]$ vi mapred-site.xml
f.配置yarn-env.sh
配置一下JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
g.配置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>hadoop101</value>
</property>
14.第一次启动时格式话操作(只需要在第一次启动namenode时执行一次)
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
15.启动namenode
jinghang@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
16.启动datanode
[jinghang@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
17.启动resourcemanager
[jinghang@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start resourcemanager
19.启动nodemanager
[jinghang@hadoop101 hadoop-2.7.2]$ sbin/yarn-daemon.sh start nodemanager
20.启动historyserver(历史服务器)
为了查看程序的历史运行情况,需要配置一下历史服务器。具体配置步骤如下:
1. 配置mapred-site.xml
[jinghang@hadoop101 hadoop]$ vi mapred-site.xml
在该文件里面增加如下配置。
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop101:19888</value>
</property>
2. 启动历史服务器
[jinghang@hadoop101 hadoop-2.7.2]$ sbin/mr-jobhistory-daemon.sh start historyserver
3. 查看历史服务器是否启动
[jinghang@hadoop101 hadoop-2.7.2]$ jps
4. 查看JobHistory
http://hadoop101:19888/jobhistory
查看datanode节点信息:http://主机名:50070
查看资源调度(任务):http://主机名:8088
采用hadoop官方样例检验hadoop伪分布式集群是否能够正常运行
-----操作集群-----
(a)在HDFS文件系统上创建一个input文件夹
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/jinghang/input
(b)将测试文件内容上传到文件系统上
[jinghang@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input
/user/jinghang/input/
(c)查看上传的文件是否正确
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls /user/jinghang/input/
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/jinghang/ input/wc.input
(d)运行MapReduce程序
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/jinghang/input/ /user/jinghang/output
(e)查看输出结果并且浏览器查看
命令行查看:
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/jinghang/output/*
(f)将测试文件内容下载到本地
[jinghang@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/jinghang/output/part-r-00000 ./wcoutput/
(g)删除输出结果
[jinghang@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/jinghang/output
YARN的浏览器页面查看,
http://hadoop101:8088/cluster
(a)删除文件系统上的output文件
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -rm -R /user/jinghang/output
(b)执行MapReduce程序
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/jinghang/input /user/jinghang/output
(c)查看运行结果,如图2-36所示
[jinghang@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/jinghang/output/*