启动hadoop集群
在hadoop01上输入start-dfs.sh
在hadoop01上输入start-yarn.sh
在hadoop02上/opt/modules/app/hadoop/sbin输入./yarn-daemon.sh start resourcemanager启动ResourceManager
在hadoop01上/opt/modules/app/hadoop/sbin/输入mr-jobhistory-daemon.sh start historyserver启动historyserver
在windows上配置主机名
然后使用主机名启动
hadoop01:50070
hadoop02:8088
1.克隆虚拟机3个 配置上ip
https://www.jianshu.com/p/c04532d6a4da
2.修改主机名
vim /etc/sysconfig/network
hadoop01
hadoop02
hadoop03
然后重启虚拟机
reboot 命令
3.绑定虚拟机的主机名和IP
vim /etc/hosts
192.168.121.140 hadoop01
192.168.121.141 hadoop02
192.168.121.142 hadoop03
4.规划
hadoop01 hadoop02 hadoop03
Namenode ResourceManager
DataNode DataNode DataNodede
NodeManager NodeManager NodeManager
HistoryServer SecondayNameNode
5.在一台主机上装hadoop 然后使用scp命令拷贝到其他虚拟机上
6.在opt里建modules/app 目录
mkdir -p modules/app
将 hadoop-2.8.3.jar.gz文件解压到这个文件下
tar -zxvf hadoop-2.8.3.jar.gz
修改名字为hadoop
mv hadoop-2.8.3 hadoop
7. 配置Hadoop JDK路径修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:
java -version
添加环境变量
vim /etc/profile
export HADOOP_HOME=/opt/modules/app/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc /profile 生效
在/opt/modules/app/hadoop/etc/hadoop 修改配置文件hadoop-env.sh、mapred-env.sh、yarn-env.sh添加java_home的环境变量
export JAVA_HOME="/opt/jdk1.8"
8、 配置core-site.xml
vim core-site.xml
<configuration> //Namenode主机地址 这上是放在hadoop01上
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/app/hadoop2.5.0/data/tmp</value>
</property>
</configuration>
fs.defaultFS为NameNode的地址。
hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。应该保证此目录是存在的,如果不存在,先创建。
mkdir -p /opt/modules/app/hadoop2.5.0/data/tmp
9、 在/opt/modules/app/hadoop/etc/hadoop 修改配置hdfs-site.xml
启动secondnamenode在hadoop03上主机上
vim hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:50090</value>
</property>
</configuration>
dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将hadoop03规划为SecondaryNameNode服务器。
所以这里设置为:hadoop03:50090
10、 在/opt/modules/app/hadoop/etc/hadoop 修改配置slaves
vim slaves
hadoop01
hadoop02
hadoop03
slaves文件是指定HDFS上有哪些DataNode节点。
11、在/opt/modules/app/hadoop/etc/hadoop 修改 配置yarn-site.xml
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>106800</value>
</property>
根据规划yarn.resourcemanager.hostname这个指定resourcemanager服务器指向hadoop02
yarn.log-aggregation-enable是配置是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间
12、 在/opt/modules/app/hadoop/etc/hadoop 修改配置mapred-site.xml
从mapred-site.xml.template复制一个mapred-site.xml文件。
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop01:19888</value>
</property>
mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在hadoop01机器上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。
13.设置SSH无密码登录
Hadoop集群中的各个机器间会相互地通过SSH访问,每次访问都输入密码是不现实的,所以要配置各个机器间的
所有虚拟机都要做
SSH是无密码登录的。
1). 在hadoop01上生成公钥
在/opt/modules/app/hadoop里输入ssh-keygen -t rsa
一路回车
2).把公钥发给所有电脑(包括自己)
yum install ssh-clients
yum install -y openssh-clients
[hadoop@hadoop01 hadoop]$ ssh-copy-id hadoop01
[hadoop@hadoop02 hadoop]$ ssh-copy-id hadoop02
[hadoop@hadoop03 hadoop]$ ssh-copy-id hadoop03
3). 设置hadoop02、hadoop03到其他机器的无密钥登录
同样的在hadoop02、hadoop03上生成公钥和私钥后,将公钥分发到三 台机器上。
4).把上述1.2命令在其他虚拟机上再做一遍,分发公钥
14.分发Hadoop文件
1、 首先在其他两台机器上创建存放Hadoop的目录
[hadoop@hadoop02 ~]$ mkdir /opt/modules/app
[hadoop@hadoop03 ~]$ mkdir /opt/modules/app
2、 通过Scp分发
Hadoop根目录下的share/doc目录是存放的hadoop的文档,文件相当大,建议在分发之前将这个目录删除掉,可以节省硬盘空间并能提高分发的速度。
doc目录大小有1.6G。
[hadoop@hadoop01 hadoop]$ du -sh /opt/modules/app/hadoop/share/doc
1.6G
rm -rf /opt/modules/app/hadoop/share/doc
[hadoop@hadoop02 hadoop]$ scp -r /opt/modules/app/hadoop/ hadoop02:/opt/modules/app
[hadoop@hadoop03 hadoop]$ scp -r /opt/modules/app/hadoop/ hadoop03:/opt/modules/app
15.格式化NameNode
1).在NameNode机器上执行格式化:
[hadoop@hadoop01 hadoop]$hdfs namenode -format
/opt/modules/app/hadoop-2.5.0/data/tmp
注意:
如果需要重新格式化NameNode,需要先将原来NameNode和DataNode下的文件全部删除,不然会报错,NameNode和DataNode所在目录是在core-site.xml中hadoop.tmp.dir、dfs.namenode.name.dir、dfs.datanode.data.dir属性配置的。
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/app/hadoop-2.5.0/data/tmp</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
因为每次格式化,默认是创建一个集群ID,并写入NameNode和DataNode的VERSION文件中(VERSION文件所在目录为dfs/name/current 和 dfs/data/current),重新格式化时,默认会生成一个新的集群ID,如果不删除原来的目录,会导致namenode中的VERSION文件中是新的集群ID,而DataNode中是旧的集群ID,不一致时会报错。
另一种方法是格式化时指定集群ID参数,指定为旧的集群ID。
16.启动hadoop集群
1)、 启动HDFS
[hadoop@hadoop01 hadoop]$ start-dfs.sh
image.png
2)、 启动YARN
[hadoop@hadoop01 hadoop]$ /opt/modules/app/hadoop/sbin/start-yarn.sh
在hadoop02上启动ResourceManager:
[hadoop@hadoop02 hadoop]$ sbin/yarn-daemon.sh start resourcemanager
image.png
3)、 启动日志服务器
因为我们规划的是在hadoop01服务器上运行MapReduce日志服务,所以要在hadoop01上启动。
[hadoop@hadoop01 ~]$ /opt/modules/app/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /opt/modules/app/hadoop/logs/mapred-hadoop-historyserver-hadoop01
[hadoop@bigdata-senior03 ~]$ jps
3570 Jps
3537 JobHistoryServer
3310 SecondaryNameNode
3213 DataNode
3392 NodeManager
4)、 查看HDFS Web页面
5)、 查看YARN Web 页面
6).修改C:\Windows\System32\drivers\etc下的hosts文件
添加
192.168.121.140 hadoop01
192.168.121.141 hadoop02
192.168.121.142 hadoop03
网友评论