此搭建过程通过xshel远程连接操作
ssh免密登录 zookeeper搭建 请查看本专栏的 其他文章
本文中使用的 xshell xftp 本人均已经上传至 资源专栏中
节点 名称与 ip 与集群规划
这里搭建一个 3 节点的 Hadoop 集群,其中三台主机均部署 DataNode
和 NodeManager
服务,但其中 slave1 上部署 SecondaryNameNode
服务 master 上部署 NameNode
、 ResourceManager
和JobHistoryServer
服务。
master | 192.168.116.200 | Namenode DataNode ResourceManager Nodemanager JobHistoryServer |
slave1 | 192.168.116.201 | SecondaryNamenode DataNode Nodemanager |
slave2 | 192.168.116.202 | DataNode Nodemanager |
1.下载hadoop2.7.7压缩包 通过xftp上传/opt下
Index of /dist/hadoop/core/hadoop-2.7.7 hadoop2.7.7下载链接
2解压 (/opt)到/usr/local/src目录下
tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/src/
3.配置hadoop环境变量添加如下内容
vi /etc/profile
export HADOOP_HOME=/usr/local/src/hadoop-2.7.7
export PATH=.:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH
export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.7.7/etc/hadoop
4.将环境变量配置文件发送到其他节点
scp /etc/profile root@slave1:/etc
scp /etc/profile root@slave2:/etc
5.先创建好配置文件所需目录
mkdir /usr/local/src/hadoop-2.7.7/tmp
mkdir -p /usr/local/src/hadoop-2.7.7 /dfs/namenode_data
mkdir -p /usr/local/src/hadoop-2.7.7 /dfs/datanode_data
mkdir -p /usr/local/src/hadoop-2.7.7 /checkpoint/dfs/cname
6.配置文件
到/usr/local/src/hadoop-2.7.7 /etc/hadoop下
cd /usr/local/src/hadoop-2.7.7/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_162
export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.7.7/etc/hadoop
vi core-site.xml
<configuration>
<property>
<!--用来指定hdfs的老大,namenode的地址-->
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<!--用来指定hadoop运行时产生文件的存放目录-->
<name>hadoop.tmp.dir</name>
<value>file:///usr/local/src/hadoop-2.7.7/tmp</value>
</property>
<property>
<!--设置缓存大小,默认4kb-->
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
</configuration>
vi hdfs-site.xml
<configuration>
<property>
<!--数据块默认大小128M-->
<name>dfs.block.size</name>
<value>134217728</value>
</property>
<property>
<!--副本数量,不配置的话默认为3-->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!--定点检查-->
<name>fs.checkpoint.dir</name>
<value>file:///usr/local/src/hadoop-2.7.7/checkpoint/dfs/cname</value>
</property>
<property>
<!--namenode节点数据(元数据)的存放位置-->
<name>dfs.name.dir</name>
<value>file:///usr/local/src/hadoop-2.7.7/dfs/namenode_data</value>
</property>
<property>
<!--datanode节点数据(元数据)的存放位置-->
<name>dfs.data.dir</name>
<value>file:///usr/local/src/hadoop-2.7.7/dfs/datanode_data</value>
</property>
<property>
<!--指定secondarynamenode的web地址-->
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<property>
<!--hdfs文件操作权限,false为不验证-->
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
vi mapred-site.xml
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--配置任务历史服务器IPC-->
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<!--配置任务历史服务器web-UI地址-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
vi yarn-site.xml
<configuration>
<property>
<!--指定yarn的老大resourcemanager的地址-->
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value> master:8088</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value> master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value> master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value> master:8033</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--开启日志聚集功能-->
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<!--配置日志保留7天-->
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
</configuration>
vi slaves
master
slave1
slave2
7.将配置分发给其他节点(回到/usr/local/src 目录下)
scp -r hadoop-2.7.7/ root@slave1:/usr/local/src
scp -r hadoop-2.7.7/ root@slave2:/usr/local/src
8.
(注:通过web主备登录,还得添加如下操作)
在window操作系统中,从“C:\Windows\System32\drivers\etc”目录中,找到hosts文件。
右击,打开(可能需要“系统管理员打开”)。将以下内容写到文件中:
192.168.116.200 master
192.168.116.201 slave1
192.168.116.202 slave2
9.初始化namenode(在master上)
hdfs namenode -format
10.启动集群(master)
# 启动dfs服务
start-dfs.sh
# 启动yarn服务
start-yarn.sh
# 启动任务历史服务器
mr-jobhistory-daemon.sh start historyserver
11.访问web
打开浏览器 地址栏输入 master:9000 就可以啦
至此 hadoop2.7.7完全分布式搭建完毕