环境前准备以及提示
(本文章是结合老师给的资料写的,因为自己删了改好多次才成功,所以要把资料踩坑点给修改一下,主要是写给本班同学设置环境用的,其他用户可参考)
准备内容:
iso镜像,vm(选择10.0x版本),进入界面的时候有个最小安装,需要选择 gemo桌面,nat模式,页面进入预设置后有个wifi,记得打开。
此实验有三个虚拟机,一个master,两个slave。一个虚拟机单独一个文件不可以放在一起,其次,磁盘要给15g,不然内存不够很麻烦。
网络ip修改部分:
(此部分是修改网卡部分,个人亲测能正常连上网络)
[hd@bogon Desktop]$ su root
Password:
#修改网卡
[root@bogon Desktop]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
#没有eth0的改ens33
#把以下这些修改就可以:
BOOTPROTO=static #修改
ONBOOT=yes #修改
IPADDR=192.168.155.184
#这个参数是指,此虚拟机的ip地址,打开vm上面的编辑->虚拟网络适配器->vmnnet8->DHCP设置中有个起始ip地址,例如起始地址是192.168.155.183,你就可以改成192.168.155.184,不要超过结束ip地址的范围即可
NETMASK=255.255.255.0
#此参数是子网掩码
GATEWAY=自己的网关ip
#虚拟网络适配器->vmnnet8->NAT设置可以查看
(退出编辑模式后:wq保存)
#重启网卡
[root@bogon Desktop]# service network restart
重新登录再查看IP信息
[root@bogon Desktop]# ip addr
此时ens33那边能看到你设置的ip段,打开火狐正常就是改成功了
Java配置部分:
1.删除本机的java:
[hd@localhost ~]$ su root
Password:
[root@localhost hd]# yum remove -y java*
将自己要使用的环境打开上传:
( 上传是使用MobaXterm_Portable这个软件直接把java环境压缩包拉进去后再解压的,安装很简单,官网免费的,直接打开exe后建立ssh会话,把ip输入就可以连上了,进入后到apps文件夹内把java环境压缩包拉进去 [下面的环境包是jdk-8u121-linux-x64.tar.gz] ,记得vm的虚拟机要开着,不然连不上,有其他方法也可以。)
[root@localhost hd]# su hd
[hd@localhost ~]$
[hd@localhost ~]$
[hd@localhost ~]$ pwd
/home/hd
[hd@localhost ~]$ mkdir apps #上传到此目录
[hd@localhost ~]$ cd apps/
[hd@localhost apps]$
#上传过程
[hd@localhost apps]$ ll
total 178952
-rw-rw-r--. 1 hd hd 183246769 Apr 26 2018 jdk-8u121-linux-x64.tar.gz
(不提供安装包哈)
2.解压部分:
#解压
[hd@localhost apps]$ tar -zxvf jdk-8u121-linux-x64.tar.gz
[hd@localhost apps]$ ll
total 178956
drwxr-xr-x. 8 hd hd 4096 Dec 12 2016 jdk1.8.0_121
-rw-rw-r--. 1 hd hd 183246769 Apr 26 2018 jdk-8u121-linux-x64.tar.gz
[hd@localhost apps]$
#目录改名
[hd@localhost apps]$ mv jdk1.8.0_121/ java
[hd@localhost apps]$ ll
total 178956
drwxr-xr-x. 8 hd hd 4096 Dec 12 2016 java
-rw-rw-r--. 1 hd hd 183246769 Apr 26 2018 jdk-8u121-linux-x64.tar.gz
3.配置环境
[hd@localhost apps]$ su root
Password:
[root@localhost apps]# cd java/
[root@localhost java]# pwd
/home/hd/apps/java
[root@localhost java]#
[root@localhost java]# vi /etc/profile
使用vi编辑器,在/etc/profile增加java环境变量
export JAVA_HOME=/home/hd/apps/java
export PATH=$PATH:$JAVA_HOME/bin
重新加载环境
[root@localhost java]# source /etc/profile
[root@localhost java]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
4.配置第二台,第三台机器的Java环境:
1.把每一台机的java目录,拷贝到第二台机器
[root@localhost apps]# su hd
[hd@localhost apps]$
[hd@localhost apps]$ scp -r java hd@(第二台机子的ip地址):/home/hd/apps/
2.把每一台机的profile文件,拷贝到第二台机器
[hd@localhost apps]$ su root
Password:
[root@localhost apps]# scp /etc/profile root@(第二台机子的ip地址):/etc/
输入yes和第二台机子的密码即可。
3.第二台机器加载profile
[hd@localhost apps]$ source /etc/profile
[hd@localhost apps]$
[hd@localhost apps]$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
[hd@localhost apps]$
第三台机,执行以上的步骤,到这里,三台机子都能正常联网和有java环境
安装hadoop之前的准备:
1.修改主机名字:
第一台叫master,第二台叫slave01和slave02
分别在相关机子上执行:hostnamectl set-hostname master
和hostnamectl set-hostname slave01
,hostnamectl set-hostname slave02
关闭终端重新打开,就会显示你改了的名字,没有就是没有成功
如果后面登录说找不到slave01和slave02是哪个。则修改/etc/hosts
[hd@master ~]$ su root
Password:
[root@master hd]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.xx master
192.168.xx slave01
192.168.xx slave02
同步设置:
#第二台机器
[root@master hd]# scp /etc/hosts root@slave01:/etc/
#第三台机器
[root@master hd]# scp /etc/hosts root@slave02:/etc/
2.禁用防火墙:
service firewalld stop
和 systemctl stop firewalld
3.免密登录:
[hd@master ~]$ ssh-keygen
一直回车,直到出现密钥图案
4.给相关机器准备免密登录:
机器---->机器(免密登录)
master ----> slave01
master ----> slave02
master ----> master
在相关机器上执行:ssh-copy-id (箭头右边的主机名字)
免密登录测试:[hd@master ~]$ ssh slave02
此时的master机器应该要能免密到slave01和slave02,没实现就是有问题
Hadoop 安装:
1.解压hadoop
上传后解压,步骤同java,结束后修改目录名.
mv hadoop-2.8.1 hadoop
2.修改配置文件:
进入 /hadoop/etc/hadoop/ 目录下进行修改
(1)修改hadoop-env.sh
文件尾部添加:
export JAVA_HOME=/home/hd/apps/java
(2)修改core-site.xml
<configuration>
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hd/apps/hadoop/tmpdata</value>
</property>
<!--Hadoop回收站trash,默认是关闭的 可以设置一个时间阀值(单位:分钟),
当回收站里文件的存放时间超过这个阀值或是回收站被清空时,文件才会被彻底删除,并且释放占用的数据块。
-->
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
</configuration>
(3)修改hdfs-site.xml
<configuration>
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 设置namenode的http通讯地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<!-- 设置secondarynamenode的http通讯地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<!-- 设置namenode存放的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hd/apps/hadoop/namenode</value>
</property>
<!-- 设置datanode存放的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hd/apps/hadoop/datanode</value>
</property>
</configuration>
(4)修改mapred-site.xml
(这个文件找不到但是有mapred.xml.template的需要先复制后修改名字,执行 cp mapred-site.xml.template mapred-site.xml
)
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/home/hd/apps/hadoop</value>
</property>
</configuration>
(5)修改yarn-site.xml
<configuration>
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(6)修改slaves
文件位置在:hadoop/etc/hadoop 下,如果hadoop的版本在3.0以上 则是worker
[hd@master hadoop]$ vi slaves
slave01 slave02
(7)配置环境变量
[hd@master hadoop]$ su root
Password:
[root@master hadoop]# vi /etc/profile
#增加
#增加
export HADOOP_HOME=/home/hd/apps/hadoop
#增加
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
以上操作都在master里进行后复制到其他两台机子就行了,一定要注意上面时候用root用户,什么时候是普通用户,如果用户进错,很可能因为权限的原因导致后面启动的时候有些不能启动
(8) 拷贝到第二台,第三台机子
[root@master hadoop]# su hd
[hd@master hadoop]$
[hd@master hadoop]$
[hd@master hadoop]$ scp -r /home/hd/apps/hadoop hd@slave01:/home/hd/apps/
[hd@master hadoop]$ scp -r /home/hd/apps/hadoop hd@slave02:/home/hd/apps/
[hd@master hadoop]$ su root
Password:
[root@master hadoop]# scp /etc/profile root@slave01:/etc/
root@slave01’s password:
profile 100% 1896 1.9KB/s 00:00
[root@master hadoop]# scp /etc/profile root@slave02:/etc/
profile 100% 1896 1.9KB/s 00:00
[root@master hadoop]#
在第二台,第三台机子里执行 source /etc/profile 最后执行 hadoop version 查看hadoop
基本准备完成,进入格式化,格式化只需要一次!一次!一次!!!!!不要弄多了!!弄多了会导致结点启动不成功的
[hd@master hadoop]$ hadoop namenode -format
启动Hadoop
(1).在master机子里面执行
start-dfs.sh 启动HDFS分布式文件系统,停止 stop-dfs.sh
start-yarn.sh 启动Yarn资源管理器,停止 stop-yarn.sh
start-all.sh HDFS分布式文件系统与Yarn启动,停止 stop-all.sh
通过jps查看启动的结点:
master机:
slave机:
都出现才是成功,少了的话建议删掉文件重新弄,网上查完报错再改都不如重新弄一遍快(亲测)
在外面的电脑输入:
hdfs 文件系统访问地址:http://(master机子的ip地址):50070/dfshealth.html#tab-overview
Yarn资源管理器访问地址:http://(master机子的ip地址):8088/cluster
出现网页就算成功了