Hadoop 集群的搭建
上传、解压、更名、配置环境变量
-1. 上传和解压两个软件包
[root@qianfeng01 ~]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C
/usr/local/
[root@qianfeng01 ~]# tar -zxvf hadoop-2.7.6.tar.gz -C
/usr/local/
-2. 进?local?,给两个软件更名
[root@qianfeng01 ~]# cd /usr/local/
[root@qianfeng01 local]# mv 1.8.0_221/ jdk
[root@qianfeng01 local]# mv hadoop-2.7.6/ hadoop
-3. 配置环境变量
[hadoop@qianfeng01 local]# vi /etc/profile
.....省略...........
#java environment
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
#hadoop environment
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
配置core-site.xml
[root@qianfeng01 ~]# cd $HADOOP_HOME/etc/hadoop/
[root@qianfeng01 hadoop]# vi core-site.xml
<configuration>
<!-- hdfs的地址名称:schame,ip,port-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://qianfeng01:8020</value>
</property>
<!-- hdfs的基础路径,被其他属性所依赖的?个基础路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
[root@qianfeng01 hadoop]# vi hdfs-site.xml
<configuration>
<!-- namenode守护进程管理的元数据?件fsimage存储的位置-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name</value>
</property>
<!-- 确定DFS数据节点应该将其块存储在本地?件系统的何处-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data</value>
</property>
<!-- 块的副本数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 块的??(128M),下?的单位是字节-->
<property>
<name>dfs.blocksize</name>
<value>134217728</value>
</property>
<!-- secondarynamenode守护进程的http地址:主机名和端?号。参考
守护进程布局-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>qianfeng02:50090</value>
</property>
<!-- namenode守护进程的http地址:主机名和端?号。参考守护进程布
局-->
<property>
<name>dfs.namenode.http-address</name>
<value>qianfeng01:50070</value>
</property>
</configuration>
配置mapred-site.xml
[root@qianfeng01 hadoop]# cp mapred-site.xml.template
mapred-site.xml
[root@qianfeng01 hadoop]# vi mapred-site.xml
<configuration>
<!-- 指定mapreduce使?yarn资源管理器-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置作业历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>qianfeng01:10020</value>
</property>
<!-- 配置作业历史服务器的http地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>qianfeng01:19888</value>
</property>
</configuration>
配置yarn-site.xml
[root@qianfeng01 hadoop]# vi yarn-site.xml
<configuration>
<!-- 指定yarn的shuffle技术-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定resourcemanager的主机名-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>qianfeng01</value>
</property>
<!--下?的可选-->
<!--指定shuffle对应的类 -->
<property>
<name>yarn.nodemanager.auxservices.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!--配置resourcemanager的内部通讯地址-->
<property>
<name>yarn.resourcemanager.address</name>
<value>qianfeng01:8032</value>
</property>
<!--配置resourcemanager的scheduler的内部通讯地址-->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>qianfeng01:8030</value>
</property>
<!--配置resoucemanager的资源调度的内部通讯地址-->
<property>
<name>yarn.resourcemanager.resourcetracker.address</name>
<value>qianfeng01:8031</value>
</property>
<!--配置resourcemanager的管理员的内部通讯地址-->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>qianfeng01:8033</value>
</property>
<!--配置resourcemanager的web ui 的监控??-->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>qianfeng01:8088</value>
</property>
</configuration>
配置hadoop-env.sh
[root@qianfeng01 hadoop]# vi hadoop-env.sh
.........
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk
.........
配置slaves?件
# 此?件?于指定datanode守护进程所在的机器节点主机名
[root@qianfeng01 hadoop]# vi slaves
qianfeng01
qianfeng02
qianfeng03
配置yarn-env.sh?件
[root@qianfeng01 hadoop]# vi yarn-env.sh
.........
# some Java parameters
export JAVA_HOME=/usr/local/jdk
if [ "$JAVA_HOME" != "" ]; then
#echo "run java in $JAVA_HOME"
JAVA_HOME=$JAVA_HOME
fi
.........
--1. 同步hadoop到slave节点上
[root@qianfeng01 ~]# cd /usr/local
[root@qianfeng01 local]# scp -r ./hadoop qianfeng02:/usr/local/
[root@qianfeng01 local]# scp -r ./hadoop qianfeng03:/usr/local/
--2. 同步/etc/profile到slave节点上
[root@qianfeng01 local]# scp /etc/profile qianfeng02:/etc/
[root@qianfeng01 local]# scp /etc/profile qianfeng03:/etc/
--3. 如果slave节点上的jdk也没有安装,别忘记同步jdk。
--4. 检查是否同步了/etc/hosts?件
启动:第一次启动要格式化(namenode) hdfs namenode -format
1. 启动脚本
-- start-dfs.sh :?于启动hdfs集群的脚本
-- start-yarn.sh :?于启动yarn守护进程
-- start-all.sh :?于启动hdfs和yarn
2. 关闭脚本
-- stop-dfs.sh :?于关闭hdfs集群的脚本
-- stop-yarn.sh :?于关闭yarn守护进程
-- stop-all.sh :?于关闭hdfs和yarn
3. 单个守护进程脚本
-- hadoop-daemons.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本
-- hadoop-daemon.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本reg:
hadoop-daemon.sh [start|stop]
[namenode|datanode|secondarynamenode
-- yarn-daemons.sh :?于单独启动或关闭hdfs的某?个守护进程的
脚本
-- yarn-daemon.sh :?于单独启动或关闭hdfs的某?个守护进
程的脚本
reg:
yarn-daemon.sh [start|stop]
[resourcemanager|nodemanager]]
**启动hdfs
使?start-dfs.sh,启动 hdfs
jsp查看进程
WebUI
http://192.168.10.101:50070
完成
|