标签:exp oop val har sbin strong 解压 inux time
导语如果之前的单机版hadoop环境安装满足不了你,集群版hadoop一定合你胃口,轻松入手。
配置免密登录
3.1 生成密匙
3.2 免密登录
3.3 验证免密登录
集群搭建
4.1 下载并解压
4.2 配置环境变量
4.4 修改配置
4.4 分发程序
4.5 初始化
4.6 启动集群
4.7 查看集群
这里搭建一个 3 节点的 Hadoop 集群,
其中三台主机均部署 DataNode 和 NodeManager 服务,
但只有 hadoop001 上部署 NameNode 和 ResourceManager 服务。
Hadoop 的运行依赖 JDK,需要预先安装。其安装步骤单独整理至:
在官网下载所需版本的 JDK 1.8 , 下载后进行解压:
[root@ java]# tar -zxvf jdk-8u201-linux-x64.tar.gz
[root@ java]# vi /etc/profile
添加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_201
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行 source 命令,使得配置立即生效:
[root@ java]# source /etc/profile
[root@ java]# java -version
显示出对应的版本信息则代表安装成功。
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
在每台主机上使用 ssh-keygen 命令生成公钥私钥对:
将 hadoop001 的公钥写到本机和远程机器的 ~/ .ssh/authorized_key 文件中:
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop003
ssh hadoop002
ssh hadoop003
下载 Hadoop。这里我下载的是 CDH 版本 Hadoop,
下载地址为:
http://archive.cloudera.com/cdh5/cdh/5/
# tar -zvxf hadoop-2.6.0-cdh5.15.2.tar.gz
编辑 profile 文件:
增加如下配置:
export HADOOP_HOME=/usr/app/hadoop-2.6.0-cdh5.15.2
export PATH=${HADOOP_HOME}/bin:$PATH
执行 source 命令,使得配置立即生效:
进入 ${HADOOP_HOME}/etc/hadoop 目录下,修改配置文件。各个配置文件内容如下:
# 指定JDK的安装位置
export JAVA_HOME=/usr/java/jdk1.8.0_201/
<configuration>
<property>
<!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:8020</value>
</property>
<property>
<!--指定 hadoop 集群存储临时文件的目录-->
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>
<property>
<!--namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗号分隔-->
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/namenode/data</value>
</property>
<property>
<!--datanode 节点数据(即数据块)的存放位置-->
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/datanode/data</value>
</property>
<configuration>
<property>
<!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--resourcemanager 的主机名-->
<name>yarn.resourcemanager.hostname</name>
<value>hadoop001</value>
</property>
</configuration>
<configuration>
<property>
<!--指定 mapreduce 作业运行在 yarn 上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
hadoop001
hadoop002
hadoop003
将 Hadoop 安装包分发到其他两台服务器,分发后建议在这两台服务器上也配置一下 Hadoop 的环境变量。
# 将安装包分发到hadoop002
scp -r /usr/app/hadoop-2.6.0-cdh5.15.2/ hadoop002:/usr/app/
# 将安装包分发到hadoop003
scp -r /usr/app/hadoop-2.6.0-cdh5.15.2/ hadoop003:/usr/app/
在 Hadoop001 上执行 namenode 初始化命令:
hdfs namenode -format
进入到 Hadoop001 的 ${HADOOP_HOME}/sbin 目录下,启动 Hadoop。此时 hadoop002 和 hadoop003 上的相关服务也会被启动:
# 启动dfs服务
start-dfs.sh
# 启动yarn服务
start-yarn.sh
在每台服务器上使用 jps 命令查看服务进程,或直接进入 Web-UI 界面进行查看,端口为 50070。可以看到此时有三个可用的 Datanode:
点击 Live Nodes 进入,可以看到每个 DataNode 的详细情况:
接着可以查看 Yarn 的情况,端口号为 8088 :
提交作业到集群的方式和单机环境完全一致,这里以提交 Hadoop 内置的计算 Pi 的示例程序为例,在任何一个节点上执行都可以,命令如下:
hadoop jar /usr/app/hadoop-2.6.0-cdh5.15.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.15.2.jar pi 3 3
更多干货关注:数据猿温大大
标签:exp oop val har sbin strong 解压 inux time
原文地址:https://blog.51cto.com/14974545/2549460