参考:https://blog.csdn.net/hliq5399/article/details/78193113
准备三台虚拟机,并在每台机子上,分别在/etc/hosts里面加入
192.168.16.103 node1
192.168.16.188 node2
192.168.16.189 node3
192.168.16.45 mysql
服务器功能规划
node1 node2 node3
NameNode ResourceManage
DataNode DataNode DataNode
NodeManager NodeManager NodeManager
HistoryServer SecondaryNameNode
在第一台机器上安装新的Hadoop
配置java环境:
1.下载:jdk1.8.0_172 到 /data/bigdata 中
2.解压缩
3.编辑:/etc/profile 最后加入下面两行:
export JAVA_HOME=/data/bigdata/jdk1.8.0_172
export PATH=$JAVA_HOME/bin:$PATH
保存退出
4.执行:source /etc/profile
5.执行: java -version 查看是否安装成功
开始安装hadoop
下载:wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
解压Hadoop目录:
tar -zxf /data/bigdata/hadoop-2.7.6.tar.gz
配置Hadoop环境变量
vim /etc/profile
追加配置:
export HADOOP_HOME="/data/bigdata/hadoop-2.7.6"
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
执行:source /etc/profile 使得配置生效
配置Hadoop JDK路径修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件中的JDK路径:
export JAVA_HOME="/data/bigdata/jdk1.8.0_172"
配置core-site.xml
vim etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/bigdata/hadoop-2.7.6/data/tmp</value>
</property>
</configuration>
fs.defaultFS为NameNode的地址。
hadoop.tmp.dir为hadoop临时目录的地址,默认情况下,NameNode和DataNode的数据文件都会存在这个目录下的对应子目录下。应该保证此目录是存在的,如果不存在,先创建。
配置hdfs-site.xml
vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node3:50090</value>
</property>
</configuration>
dfs.namenode.secondary.http-address是指定secondaryNameNode的http访问地址和端口号,因为在规划中,我们将node3规划为SecondaryNameNode服务器.
配置slaves
vim etc/hadoop/slaves
node1
node2
node3
slaves文件是指定HDFS上有哪些DataNode节点。
配置yarn-site.xml
vim etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node2</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服务器指向node2。
yarn.log-aggregation-enable是配置是否启用日志聚集功能。
yarn.log-aggregation.retain-seconds是配置聚集的日志在HDFS上最多保存多长时间。
配置mapred-site.xml
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vim etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
mapreduce.framework.name设置mapreduce任务运行在yarn上。
mapreduce.jobhistory.address是设置mapreduce的历史服务器安装在node1机器上。
mapreduce.jobhistory.webapp.address是设置历史服务器的web页面地址和端口号。
设置SSH无密码登录
分别在node1 node2 node3执行
ssh-keygen -t rsa
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3
分发Hadoop文件
首先在其他两台机器上创建存放Hadoop的目录
通过Scp分发
scp -r /data/bigdata/hadoop-2.7.6 root@node2:/data/bigdata/hadoop-2.7.6
scp -r /data/bigdata/hadoop-2.7.6 root@node3:/data/bigdata/hadoop-2.7.6
格式NameNode
hdfs namenode –format
启动集群
start-dfs.sh
启动YARN
start-yarn.sh
在node2上启动ResourceManager:
yarn-daemon.sh start resourcemanager
在node3上启动:
mr-jobhistory-daemon.sh start historyserver
查看HDFS Web页面
查看YARN Web 页面