继续昨天的内容,昨天我们以经将jdk和hadoop安装完成
今天我们来修改配置文件
在这之前我们先了解一下Hadoop集群
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起
HDFS集群:
负责海量数据的存储,集群中的角色主要有 NameNode / DataNode
YARN集群:
负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager
(那mapreduce是什么呢?它其实是一个应用程序开发包)
了解完hadoop集群,就开始修改配置文件
1,我们先到文件所在的目录
代码:cd /home/tyler/apps/hadoop-2.8.0/etc/hadoop/
2,修改配置文件
vi hadoop-env.sh(在这里修改以下内容)
The java implementation to use.
export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_181
在这里可用到的快捷键
1,:set number(显示行数)
2,:/JAVA_HOME 快速查找,按n 进行切换
3,shift + g 光标定位到最后
4,tar -zxvf 压缩包名 - C /home.... 解压到指定目录
5,reboot 重启虚拟机
6,ip a
7,which java 返回java所在的路径
8,dd 删除行
9, vi vi /etc/sysconfig/network 修改主机名
vi core-site.xml(在这里面添加以下内容)
<property>
<name>fs.defaultFS</name>
<value>hdfs://hdp01:9000</value>
</property>
<!-- 该配置是指定hadoop集群的各个程序组件在运行时,产生的临时数据所存放的本地目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hdptmp</value>
</property>
</configuration>
vi hdfs-site.xml(在这里添加以下内容)
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hdp-meta</value>
</property>
<!---namenode配置多个目录和datanode配置多个目录,有什么区别?---->
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hdp-blocks</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>128m</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hdp01:50090</value>
</property>
</configuration>
vi mapred-site.xml(在这添加以下内容)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi yarn-site.xml(在这添加以下内容)
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hdp01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
vi salves(在这添加以下内容)
把第一行删除
hdp01
hdp02
hdp03
3,修改完将jdk和hadoop发送给其他两个虚拟机
发送jdk和hadoop
[root@Tyler01 hadoop]# scp -r /home/tyler/apps/jdk1.8.0_181/ Tyler012:/home/tyler/apps/
[root@Tyler01 hadoop]# scp -r /home/tyler/apps/jdk1.8.0_181/ Tyler03 :/home/tyler/apps/
[root@Tyler01 hadoop]# scp -r /home/tyler/apps/hadoop-2.8.0 Tyler02 :/home/tyler/apps/
[root@Tyler01 hadoop]# scp -r /home/tyler/apps/hadoop-2.8.0 Tyler03 :/home/tyler/apps/
发送镜像映射
[root@Tyler01 hadoop]# scp -r /etc/hosts Tyler02 :/etc
[root@Tyler01 hadoop]# scp -r /etc/hosts Tyler03 :/etc
发送环境变量
[root@Tyler01 hadoop]# scp -r /etc/profile Tyler02 :/etc/profile
[root@Tyler01 hadoop]# scp -r /etc/profile Tyler03 :/etc/profile
分别在Tyler02 、Tyler03 上执行以下命令
[root@Tyler02 hadoop]# source /etc/profile
[root@Tyler03 hadoop]# source /etc/profile
分别查看Tyler02 、Tyler03查看环境,没用毛病的话就往下走
4,启动集群
[root@Tyler01 hadoop]# hadoop namenode -format
注:格式化hadoop,本质上是将namenode的元数据目录清空,恢复成初始状态
自动化脚本启动:
[root@Tyler01 hadoop-2.8.0]# start-all.sh
查看hadoop启动的线程:
在Tyler01
jps 能看java写的进程
[root@Tyler01 hadoop-2.8.0]# jps
在Tyler02 ,在Tyler03
[root@Tyler02 hadoop-2.8.0]# jps
[root@Tyler03 hadoop-2.8.0]# jps
如果是以上结果 ,程序正常运行
若果不是以上结果,比如说主机只有两三个,那说明在修改配置文件时,没有改对,
这是我们可以进入到 cd /home/tyler/apps/hadoop-2.8.0/logs/ 在这里看错误日志(.log)文件
重新修改完后,我们最好把/root 下的hdp文件都删除 再重新启动集群
(删除快捷键:rm -rf *.gz 删除所有后缀wei.gz文件,*是匹配任意)