-
hadoop集群搭建 修改配置文件(三台主机都要配置)
2019-08-25 17:42:39hadoop集群搭建 修改配置文件(三台主机都要配置) master 主机配置 1)hadoop-env.sh vimhadoop-env.sh 2)core-site.xml vim core-site.xml <configuration> <!-- 指定HDFS...hadoop集群搭建 修改配置文件(三台主机都要配置)
master 主机配置
1)hadoop-env.sh
vim hadoop-env.sh
2)core-site.xml
vim core-site.xml
<configuration>
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://backup01:9000</value>
</property><property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property><!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-3.1.2/tmp</value>
<description>Abase for other temporary directories.</description>
</property><property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
</configuration>
3)hdfs-site.xml
vim hdfs-site.xml
<configuration>
<!--
<property>
<name>dfs.namenode.http-address</name>
<value>backup01:9870</value>
</property>
--><!-- 设置secondarynamenode的http通讯地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>backup01:9001</value>
</property>
<!-- 设置namenode存放的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.2/dfs/name</value>
</property><!-- 设置datanode存放的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hadoop-3.1.2/dfs/data</value>
</property>
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property></configuration>
4)mapred-site.xml
vim mapred-site.xml
5)yarn-site.xml
6)workers (slaves节点配置)
7)start-dfs.sh 和 stop-dfs.sh
cd /usr/local/hadoop/hadoop-3.1.2/sbin
vim start-dfs.sh
vim stop-dfs.sh
8)start-yarn.sh 和 stop-yarn.sh
vim start-yarn.sh
vim stop-yarn.sh
注意:主机配置完成将master配置copy到其他两个slave节点
-
Hadoop集群搭建教程(详细)
2018-05-24 00:12:41需要的安装包: 1.jdk压缩包 2.hadoop压缩包请前往我的github上下载相关安装包开始搭建hadoop集群一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的因为默认的虚拟机主机名都是ubuntu,所以为了便于...需要的安装包:
1.jdk压缩包
2.hadoop压缩包
请前往百度云上上下载相关安装包(密码:8op1)
开始搭建hadoop集群
一.使用VMvare创建两个虚拟机,我使用的是ubuntu16.04版本的,并关闭全部虚拟机的防火墙
1.因为默认的虚拟机主机名都是ubuntu,所以为了便于虚拟机的识别,创建完成虚拟机后我们对虚拟机名进行修改,我们把用于主节点的虚拟机名称设为master(按自己的喜好创建),把用于从节点的虚拟机名称设为slave1
- 修改主机名的命令:sudo gedit /etc/hostname
- 把原主机名ubuntu改为master(在从主机上则改为slave1)
2.为了虚拟机之间能ping通,需要修改虚拟机的ip地址(这里以在master机器操作为例子,从节点的虚拟机也要进行一致的操作)
命令:sudo gedit /etc/hosts
把/etc/hosts中yangcx-virtual-machine修改为刚刚改过的主机名master,同时将前面的ip地址改为实际的ip地址
怎么知道自己虚拟机的ip地址?
命令:ifconfig -a
上图红框标记的就是虚拟机的真实ip地址,因此我们把/etc/hosts中的内容修改为:
slave1的ip地址就是从虚拟机slave1的真实ip地址。同样,我们在slave1虚拟机上也要进行这一步操作。
3.关闭虚拟机的防火墙
一般来说,ubuntu默认都是安装防火墙软件ufw的,使用命令 sudo ufw version,如果出现ufw的版本信息,则说明已有ufw
使用命令 sudo ufw status查看防火墙开启状态:如果是active则说明开启,如果是inactive则说明关闭
开启/关闭防火墙 (默认设置是’disable’)
sudo ufw enable|disable
我们使用sudo ufw disble来关闭防火墙,并再次用sudo ufw status 查看防火墙是否关闭
二.安装jdk(所有虚拟机都要安装配置)
将jdk的压缩文件拖进master和slave1虚拟机中,压缩(右键文件,extract here),或者用命令行
tar -zxvf jdk1.8.0_161.tar.gz(使用自己的压缩文件名)
配置环境jdk环境:
命令:sudo gedit /etc/profile
将jdk的路径添加到文件后面(根据自己的文件路径来,我这里jdk1.8.0_161文件夹的路径是/home/hadoop/java)
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_161
export JRE_HOME=/home/hadoop/java/jdk1.8.0_161/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
保存退出,为了使配置立即生效,键入命令:source /etc/profile,或者重启虚拟机,命令:shutdown -r now
检查路径jdk是否安装成功,键入命令:java -version
如果出现了版本信息,则恭喜配置成功;
三.安装SSH服务
1.首先确保虚拟机能连上网
2.更新源列表:sudo apt-get update
3.安装ssh:输入"sudo apt-get install openssh-server"-->回车-->输入"y"-->回车-->安装完成。
4.查看ssh服务是否启动
打开"终端窗口",输入"sudo ps -e |grep ssh"-->回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。四、建立ssh无密码登录本机
ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。1、创建ssh-key,,这里我们采用rsa方式
- ssh-keygen -t rsa -P "" //(P是要大写的,后面跟"")
(注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)2、进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的
- cd ~/.ssh
- cat id_rsa.pub >> authorized_keys
完成后就可以无密码登录本机了。3、登录localhost
- ssh localhost
( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)- exit
1~4步在master和slave1两台虚拟机上都是配置
5.配置master无密码登陆slave1
mater主机中输入命令复制一份公钥到home中
cp .ssh/id_rsa.pub ~/id_rsa_master.pub
- 1
把master的home目录下的id_rsa_master.pub拷到slave1的home下(我的做法是先拖到windows桌面上,在拖进slave1虚拟机中)
slave1的home目录下分别输入命令
cat id_rsa_master.pub >> .ssh/authorized_keys
- 1
至此实现了mater对slave1的无密码登陆
以下的步骤只在master上进行(除了hadoop的环境变量
配置在slave1上也要进行)
五.安装hadoop
1.将hadoop压缩包拖进master虚拟机中,解压(我这里解压的路径是/home/hadoop/hadoop-2.7.3)
2.在hadoop-2.7.3文件夹里面先创建4个文件夹:
- hadoop-2.7.3/hdfs
- hadoop-2.7.3/hdfs/tmp
- hadoop-2.7.3/hdfs/name
- hadoop-2.7.3/hdfs/data
3.配置 hadoop的配置文件
先进入配置文件的路径:cd /home/hadoop/hadoop-2.7.3/etc/hadoop(再次强调,使用自己的路径)
输入:ls
查看该路径下的文件列表
被红框框住的文件是我们要进程配置的文件
1.首先配置core-site.xml文件
sudo gedit core-site.xml
在<configuration></configuration>中加入以下代码:
<property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/tmp</value> <description>A base for other temporary directories.</description> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property>
注意:第一个属性中的value和我们之前创建的/hadoop-2.7.3/hdfs/tmp路径要一致。
2.配置 hadoop-env.sh文件
sudo gedit hadoop-env.sh
将JAVA_HOME文件配置为本机JAVA_HOME路径
3.配置 yarn-env.sh
sudo gedit yarn-env.sh
将其中的JAVA_HOME修改为本机JAVA_HOME路径(先把这一行的#去掉)
4.配置hdfs-site.xml
在<configuration></configuration>中加入以下代码sudo gedit hdfs-site.xml
<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/name</value> <final>true</final> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.7.3/hdfs/data</value> <final>true</final> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property>
注意(其中第二个dfs.namenode.name.dir和dfs.datanode.data.dir的value和之前创建的/hdfs/name和/hdfs/data路径一致;因为这里只有一个从主机slave1,所以dfs.replication设置为1)
5 .复制mapred-site.xml.template文件,并命名为mapred-site.xml
配置 mapred-site.xml,在标签<configuration>中添加以下代码cp mapred-site.xml.template mapred-site.xml
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
6.配置yarn-site.xml
sudo gedit yarn-site.xml
在<configuration>标签中添加以下代码
<property> <name>yarn.resourcemanager.address</name> <value>master:18040</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:18030</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:18088</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:18025</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:18141</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property>
7.配置slaves 文件
sudo gedit slaves
把原本的localhost删掉,改为slave1
8.配置hadoop的环境,就像配置jdk一样
sudo gedit /etc/profile
根据hadoop文件夹的路径配置,以我的路径/home/hadoop/hadoop-2.7.3 为例
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3 export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH" export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
键入命令 source /etc/profile 使配置立即生效
9.接下来,将hadoop传到slave1虚拟机上面去
scp -r hadoop-2.7.1 hadoop@slave1:~/
注意:hadoop是虚拟机的用户名,创建slave1时设定的
传过去后,在slave1上面同样对hadoop进行路径配置,和第8步一样
9.初始化hadoop
hdfs name -format
10.开启hadoop
两种方法:
- start-all.sh
- 先start-dfs.sh,再start-yarn.sh
如果在mater上面键入jps后看到
在slave1上键入jps后看到
则说明集群搭建成功
六:最后用自带的样例测试hadoop集群能不能正常跑任务
使用命令
hadoop jar /home/hadoop/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10
用来求圆周率,pi是类名,第一个10表示Map次数,第二个10表示随机生成点的次数(与计算原理有关)
最后出现结果
则,恭喜你,hadoop集群搭建完成
-
阿里云ECS上搭建Hadoop集群环境——使用两台ECS服务器搭建“Cluster mode”的Hadoop集群环境
2018-07-30 23:07:44阿里云ECS搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决 阿里云ECS搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net....转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81275360
本文出自【我是干勾鱼的博客】Ingredient:
-
Hadoop:hadoop-2.9.1.tar.gz(Apache Hadoop Releases Downloads, All previous releases of Hadoop are available from the Apache release archive site)
-
Java:Java SE Development Kit 8u162(Oracle Java Archive),Linux下安装JDK修改环境变量
之前在:
阿里云ECS上搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决
阿里云ECS上搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net.UnknownHostException”错误的解决
阿里云ECS上搭建Hadoop集群环境——“启动Hadoop时,datanode没有被启动”问题的解决
阿里云ECS上搭建Hadoop集群环境——设置免密码ssh登陆
这4篇文章里讲述了搭建Hadoop环境时在本地“/etc/hosts”里面的ip域名配置上应该注意的事情,以及如何配置服务器之间的ssh免密码登录,启动Hadoop遇到的一些问题的解决等等,这些都是使用ECS服务器搭建Hadoop时一定要注意的,能够节省搭建过程中的很多精力。这些问题都注意了,就可以完整搭建Hadoop环境了。
1 节点环境介绍
1.1 环境介绍
-
服务器:2台阿里云ECS服务器:1台Master(test7972),1台Slave(test25572)
-
操作系统: Ubuntu 16.04.4 LTS
-
Hadoop:hadoop-2.9.1.tar.gz
1.2 安装Java
将Java SE Development Kit 8u162在合适位置解压缩,本文中其路径为:
/opt/java/jdk1.8.0_162
设置Java在“/etc/profile”中的环境变量:
# set the java enviroment export JAVA_HOME=/opt/java/jdk1.8.0_162 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/bin/dt.jar:$JAVA_HOME/lib/tools.jar
1.3 安装ssh与rsync
$sudo apt-get install ssh
$sudo apt-get install rsync1.4 设置ssh免密码登陆
具体设置方式可以参考阿里云ECS上搭建Hadoop集群环境——设置免密码ssh登陆
2 Hadoop下载
首先下载hadoop-2.9.1.tar.gz,下载之后在合适的位置解压缩即可,笔者这里解压缩之后的路径为:
/opt/hadoop/hadoop-2.9.1
3 设置本地域名
设置本地域名这一步非常关键,ip的本地域名信息配置不好,即有可能造成Hadoop启动出现问题,又有可能造成在使用Hadoop的MapReduce进行计算时报错。如果是在ECS上搭建Hadoop集群环境,那么本文开头提到的之前写的这两篇文章:
阿里云ECS搭建Hadoop集群环境——启动时报错“java.net.BindException: Cannot assign requested address”问题的解决阿里云ECS搭建Hadoop集群环境——计算时出现“java.lang.IllegalArgumentException: java.net.UnknownHostException”错误的解决
都应该看一下以作参考。
总结一下那就是,在“/etc/hosts”文件中进行域名配置时要遵从2个原则:
-
1 新加域名在前面: 将新添加的Master、Slave服务器ip域名(例如“test7972”),放置在ECS服务器原有本地域名(例如“iZuf67wb***************”)的前面。但是注意ECS服务器原有本地域名(例如“iZuf67wb***************”)不能被删除,因为操作系统别的地方还会使用到。
-
2 IP本机内网,其它外网: 在本机上的操作,都要设置成内网ip;其它机器上的操作,要设置成外网ip。
按照这两个原则,这里配置的两台服务器的域名信息:
- Master:test7972
- Slave:test25572
4 添加Hadoop环境变量
在“/etc/profile”中增加配置:
# hadoop export HADOOP_HOME=/opt/hadoop/hadoop-2.9.1 export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
5 添加Hadoop配置信息
目前共有2台服务器:
- Master:test7972
- Slave:test25572
需要添加的信息,有一些是2台服务器上共同配置的,还有一些是在特定服务器上单独设置的。
5.1 在Master节点的Slave文件中指定Slave节点
编辑文件:
vi vi etc/hadoop/slaves
添加内容:
test25572
5.2 Master、Slave上的共同配置
在Master、Slave上共同添加的配置:
5.2.1 “etc/hadoop/core-site.xml”
编辑文件:
vi etc/hadoop/core-site.xml
添加内容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://test7972:9000</value> </property> </configuration>
5.2.2 “etc/hadoop/hdfs-site.xml”
编辑文件:
vi etc/hadoop/hdfs-site.xml
添加内容:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
5.2.3 “etc/hadoop/mapred-site.xml”
编辑文件:
vi etc/hadoop/mapred-site.xml
添加内容:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
5.3 在各节点上指定HDFS文件的存储位置(默认为/tmp)
5.3.1 给Master节点namenode创建目录、赋予权限,编辑文件
Master节点: namenode
创建目录并赋予权限:
mkdir -p /opt/hadoop/hadoop-2.9.1/tmp/dfs/name chmod -R 777 /opt/hadoop/hadoop-2.9.1/tmp
编辑文件:
vi etc/hadoop/hdfs-site.xml
添加内容:
<property> <name>dfs.namenode.name.dir</name> <value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/name</value> </property>
5.3.2 给Slave节点datanode创建目录、赋予权限,编辑文件
Slave节点:datanode
创建目录并赋予权限:
mkdir -p /opt/hadoop/hadoop-2.9.1/tmp/dfs/data
chmod -R 777 /opt/hadoop/hadoop-2.9.1/tmp编辑文件:
vi etc/hadoop/hdfs-site.xml
添加内容:
<property> <name>dfs.datanode.data.dir</name> <value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/data</value> </property>
5.4 YARN设定
5.4.1 给Master节点resourcemanager信息编辑文件
Master节点: resourcemanager
编辑文件:
vi etc/hadoop/yarn-site.xml
添加内容:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>test7972</value> </property> </configuration>
5.4.2 给Slave节点nodemanager信息编辑文件
编辑文件:
vi etc/hadoop/yarn-site.xml
添加内容:
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>test7972</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
5.4.3 为了在Master上启动“job history server”,需要Slave节点上添加配置信息
Slave节点:配置Master节点的“job history server”信息
编辑文件:
vi etc/hadoop/mapred-site.xml
添加内容:
<property> <name>mapreduce.jobhistory.address</name> <value>test7972:10020</value> </property>
5.5 JAVA_HOME指定
本来在/etc/profile文件中指定了JAVA_HOME文件,按说Hadoop应该可以识别到JAVA命令了,但是运行时候还是会报错说找不到,这个时候需要在Master和Slave节点的:
etc/hadoop/hadoop-env.sh
文件中加入以下内容:
export JAVA_HOME=/opt/java/jdk1.8.0_162
5.6 确认一下Master、Slave上的配置文件内容
因为刚才确定修改文件的过程比较杂乱,我们来确认一下Master、Slave这2个服务器上的配置文件内容,如果对Hadoop的各文件配置意义都比较清楚了,可以直接根据这个步骤修改配置文件。
5.6.1 Master节点上的配置文件
Master节点(test7972)上共有4个文件添加了内容,分别为:
- 1 etc/hadoop/core-site.xml
vi etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://test7972:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoop-2.9.1/tmp</value> </property> </configuration>
- 2 etc/hadoop/hdfs-site.xml
vi etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/name</value> </property> </configuration>
- 3 etc/hadoop/mapred-site.xml
vi etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
- 4 etc/hadoop/yarn-site.xml
vi etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>test7972</value> </property> </configuration>
- 5 etc/hadoop/hadoop-env.sh
etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/java/jdk1.8.0_162
5.6.2 Slave节点上的配置文件
Master节点(test25572)上共有4个文件添加了内容,分别为:
- 1 etc/hadoop/core-site.xml
vi etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://test7972:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/hadoop/hadoop-2.9.1/tmp</value> </property> </configuration>
- 2 etc/hadoop/hdfs-site.xml
vi etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///opt/hadoop/hadoop-2.9.1/tmp/dfs/data</value> </property> </configuration>
- 3 etc/hadoop/mapred-site.xml
vi etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>test7972:10020</value> </property> </configuration>
- 4 etc/hadoop/yarn-site.xml
vi etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>test7972</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
- 5 etc/hadoop/hadoop-env.sh
etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/java/jdk1.8.0_162
6 格式化HDFS(Master,Slave)
在Master、Slave上均执行格式化命令:
hadoop namenode -format
注意: 有的时候会出现Hadoop启动时,没有启动datanode的情况。可以参考阿里云ECS搭建Hadoop集群环境——“启动Hadoop时,datanode没有被启动”问题的解决来解决。
7 启动Hadoop
7.1 在Master上启动Daemon,Slave上的服务会被同时启动
启动HDFS:
sbin/start-dfs.sh
启动YARN:
sbin/start-yarn.sh
当然也可以一个命令来执行这两个启动操作:
sbin/start-all.sh
执行结果:
root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# ./sbin/start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [test7972] test7972: starting namenode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-namenode-iZ2ze72w7p5za2ax3zh81cZ.out test25572: starting datanode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-datanode-iZuf67wbvlyduq07idw3pyZ.out Starting secondary namenodes [0.0.0.0] 0.0.0.0: starting secondarynamenode, logging to /opt/hadoop/hadoop-2.9.1/logs/hadoop-root-secondarynamenode-iZ2ze72w7p5za2ax3zh81cZ.out starting yarn daemons starting resourcemanager, logging to /opt/hadoop/hadoop-2.9.1/logs/yarn-root-resourcemanager-iZ2ze72w7p5za2ax3zh81cZ.out test25572: starting nodemanager, logging to /opt/hadoop/hadoop-2.9.1/logs/yarn-root-nodemanager-iZuf67wbvlyduq07idw3pyZ.out
效果是一样的。
7.2 启动job history server
在Master上执行:
sbin/mr-jobhistory-daemon.sh start historyserver
执行结果:
root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# ./sbin/mr-jobhistory-daemon.sh start historyserver
starting historyserver, logging to /opt/hadoop/hadoop-2.9.1/logs/mapred-root-historyserver-iZ2ze72w7p5za2ax3zh81cZ.out
root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1#7.3 确定启动进程
7.3.1 确定Master上的进程
- 在Master节点上执行:
jps
显示信息:
root@iZ2ze72w***************:/opt/hadoop/hadoop-2.9.1# jps
867 JobHistoryServer
938 Jps
555 ResourceManager
379 SecondaryNameNode
32639 NameNode可以看到不算jps自己,启动了4个进程。
7.3.2 确定Slave上的进程
- 在Slave节点上执行:
jps
显示信息:
root@iZuf67wb***************:/opt/hadoop/hadoop-2.9.1# jps
26510 Jps
26222 DataNode
26350 NodeManager可以看到不算jps自己,启动了2个进程。
8 在Master节点上创建HDFS,并拷贝测试文件
当前文件夹路径:
root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1# pwd
/opt/hadoop/hadoop-2.9.18.1 在Master节点上创建HDFS文件夹
./bin/hdfs dfs -mkdir -p /user/root/input
8.2 拷贝测试文件到HDFS文件夹下
拷贝测试文件:
./bin/hdfs dfs -put etc/hadoop/* /user/root/input
查看拷贝到HDFS下的文件:
./bin/hdfs dfs -ls /user/root/input
9 执行“Hadoop job”进行测试
9.1 监控系统
9.1.1 监听文件输出
虽然执行命令界面也有输出,但一般直接监控输出文件捕获的信息会更清晰,查看输出信息一般监控两个文件:
tail -f logs/hadoop-root-namenode-iZ2ze72w7p5za2ax3zh81cZ.log
tail -f logs/yarn-root-resourcemanager-iZ2ze72w7p5za2ax3zh81cZ.log
9.1.2 浏览器查看文件系统HDFS的使用情况
首先确保防火墙关闭,如:
[root@test7972 hadoop-2.9.1]# firewall-cmd --state not running
浏览器输入:
会跳转至相应页面,如所示:
也能够看到HDFS的情况,如图所示:
点击上方导航右侧的:
Utilities -> Browse the file system
能够看到HDFS的文件情况,如图所示:
9.2 执行Hadoop job
使用Hadoop自带的一个测试job
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep /user/root/input output ‘dfs[a-z.]+’
这时候输出结果会被保存到“output”文件夹中,注意这里的output其实就是:
/user/{username}/output
由于当前登录用户是root,那么实际文件夹就是:
/user/root/output/
这个文件夹。
如果你的计算正常,是能够在执行命令的界面看到一些计算过程的:
...... 18/07/30 16:04:32 INFO mapreduce.Job: The url to track the job: http://test7972: 8088/proxy/application_1532936445384_0006/ 18/07/30 16:04:32 INFO mapreduce.Job: Running job: job_1532936445384_0006 18/07/30 16:04:57 INFO mapreduce.Job: Job job_1532936445384_0006 running in uber mode : false 18/07/30 16:04:57 INFO mapreduce.Job: map 0% reduce 0% 18/07/30 16:06:03 INFO mapreduce.Job: map 13% reduce 0% 18/07/30 16:06:04 INFO mapreduce.Job: map 20% reduce 0% 18/07/30 16:07:08 INFO mapreduce.Job: map 27% reduce 0% 18/07/30 16:07:09 INFO mapreduce.Job: map 40% reduce 0% 18/07/30 16:08:12 INFO mapreduce.Job: map 50% reduce 0% 18/07/30 16:08:13 INFO mapreduce.Job: map 57% reduce 0% 18/07/30 16:08:15 INFO mapreduce.Job: map 57% reduce 19% 18/07/30 16:09:11 INFO mapreduce.Job: map 60% reduce 19% 18/07/30 16:09:12 INFO mapreduce.Job: map 67% reduce 19% 18/07/30 16:09:13 INFO mapreduce.Job: map 73% reduce 19% 18/07/30 16:09:18 INFO mapreduce.Job: map 73% reduce 24% 18/07/30 16:10:04 INFO mapreduce.Job: map 77% reduce 24% 18/07/30 16:10:06 INFO mapreduce.Job: map 90% reduce 24% 18/07/30 16:10:07 INFO mapreduce.Job: map 90% reduce 26% 18/07/30 16:10:14 INFO mapreduce.Job: map 90% reduce 30% 18/07/30 16:10:40 INFO mapreduce.Job: map 93% reduce 30% 18/07/30 16:10:44 INFO mapreduce.Job: map 100% reduce 31% 18/07/30 16:10:45 INFO mapreduce.Job: map 100% reduce 100% 18/07/30 16:10:53 INFO mapreduce.Job: Job job_1532936445384_0006 completed successfully ...... 18/07/30 16:10:56 INFO mapreduce.Job: The url to track the job: http://test7972: 8088/proxy/application_1532936445384_0007/ 18/07/30 16:10:56 INFO mapreduce.Job: Running job: job_1532936445384_0007 18/07/30 16:11:21 INFO mapreduce.Job: Job job_1532936445384_0007 running in uber mode : false 18/07/30 16:11:21 INFO mapreduce.Job: map 0% reduce 0% 18/07/30 16:11:35 INFO mapreduce.Job: map 100% reduce 0% 18/07/30 16:11:48 INFO mapreduce.Job: map 100% reduce 100% 18/07/30 16:11:53 INFO mapreduce.Job: Job job_1532936445384_0007 completed successfully 18/07/30 16:11:53 INFO mapreduce.Job: Counters: 49 File System Counters FILE: Number of bytes read=362 FILE: Number of bytes written=395249 FILE: Number of read operations=0 FILE: Number of large read operations=0 FILE: Number of write operations=0 HDFS: Number of bytes read=655 HDFS: Number of bytes written=244 HDFS: Number of read operations=7 HDFS: Number of large read operations=0 HDFS: Number of write operations=2 Job Counters Launched map tasks=1 Launched reduce tasks=1 Data-local map tasks=1 Total time spent by all maps in occupied slots (ms)=11800 Total time spent by all reduces in occupied slots (ms)=10025 Total time spent by all map tasks (ms)=11800 Total time spent by all reduce tasks (ms)=10025 Total vcore-milliseconds taken by all map tasks=11800 Total vcore-milliseconds taken by all reduce tasks=10025 Total megabyte-milliseconds taken by all map tasks=12083200 Total megabyte-milliseconds taken by all reduce tasks=10265600 Map-Reduce Framework Map input records=14 Map output records=14 Map output bytes=328 Map output materialized bytes=362 Input split bytes=129 Combine input records=0 Combine output records=0 Reduce input groups=5 Reduce shuffle bytes=362 Reduce input records=14 Reduce output records=14 Spilled Records=28 Shuffled Maps =1 Failed Shuffles=0 Merged Map outputs=1 GC time elapsed (ms)=443 CPU time spent (ms)=1480 Physical memory (bytes) snapshot=367788032 Virtual memory (bytes) snapshot=3771973632 Total committed heap usage (bytes)=170004480 Shuffle Errors BAD_ID=0 CONNECTION=0 IO_ERROR=0 WRONG_LENGTH=0 WRONG_MAP=0 WRONG_REDUCE=0 File Input Format Counters Bytes Read=526 File Output Format Counters Bytes Written=244
能够看到这里面有计算成功的提示:
mapreduce.Job: Job job_1532936445384_0007 completed successfully
说明我们的MapReduce计算成功了!
9.3 查看执行结果
执行查询命令:
./bin/hdfs dfs -cat output/*
输出计算结果:
root@iZ2ze72w7p5za2ax3zh81cZ:/opt/hadoop/hadoop-2.9.1# ./bin/hdfs dfs -cat output/* 6 dfs.audit.logger 4 dfs.class 3 dfs.logger 3 dfs.server.namenode. 2 dfs.audit.log.maxbackupindex 2 dfs.period 2 dfs.audit.log.maxfilesize 1 dfs.replication 1 dfs.log 1 dfs.file 1 dfs.servers 1 dfsadmin 1 dfsmetrics.log 1 dfs.namenode.name.dir
10 关闭Hadoop
10.1 Master上关闭Daemon
Master上执行:
sbin/stop-all.sh
10.2 Master上关闭job history server
Master上执行:
sbin/mr-jobhistory-daemon.sh stop historyserver
11 搭建完成
至此,在阿里云ECS上搭建1台Master、1台Slave的Hadoop集群环境就搭建完了!
12 参考
-
-
搭建hadoop集群常见坑二:hadoop集群中namenode启动不起来的成因和二种解决方法
2020-04-25 12:05:12hadoop集群中namenode启动不起来如何解决 新手在初次搭建hadoop集群中经常遇到namenode或者databode启动不起来,大概率是因为多次格式化NameNode造成的。 因为吗每格式化一次NameNode,就会产生新的集群id...hadoop集群中namenode启动不起来如何解决
新手在初次搭建 hadoop集群中经常遇到namenode或者databode启动不起来,大概率是因为多次格式化NameNode造成的。
因为每格式化一次NameNode,就会产生新的集群id,导致NameNode和DataNode的集群id不一致,最终启动不起来namenode。有二个解决方法:
第一种.删除原目录,先删除data文件和logs日志文件夹,然后再格式化NameNode。data文件的路径在core-site.xml下配置的hadoop.tmp.dir所指向的目录。
第二种:将namenode节点和datanode节点中的集群id复制粘贴为一致。
-
Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0)
2017-05-11 23:13:17Linux上安装Hadoop集群(CentOS7+hadoop-2.8.0) 版本:CentOS7 Hadoop2.8.0 JDK1.8 -
Hadoop集群搭建
2016-10-24 10:20:20Hadoop集群搭建 -
Hadoop集群运维
2019-06-06 12:15:02集群故障模拟 场景1:namenode节点故障,active namenode节点状态切换?如何恢复? 1.1 Hadoop HA 的namenode状态切换...测试步骤:把standby namenode进程kill掉,active节点服务正常,不影响hadoop集群服务,数据... -
利用ubuntu搭建高可用的hadoop集群系列之五——hadoop集群搭建
2012-07-19 23:21:41利用ubuntu搭建高可用的hadoop集群系列之五——hadoop集群搭建 1、集群部署介绍 1.1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed ... -
hadoop集群搭建(超详细版)
2018-05-03 12:09:131.准备好需要安装的软件 虚拟机VMware12.pro 操作系统CentOS 6.5 远程控制虚拟机的终端SecureCRT8.1 2.在虚拟机中安装CentOS操作系统 安装好虚拟机,图形界面如下图 创建新的虚拟机,选择...设置虚... -
Hadoop集群安装部署
2020-10-06 20:58:44hadoop集群安装部署 1、服务器主机名和IP配置(三台) 2、修改每个主机的/etc/hosts文件,添加IP和主机名的对应关系(三台) 3、管理节点到从节点配置无密码登录 4、配置jdk 1.8(三台) 5、关闭防火墙(三台) 6、... -
操作Hadoop集群
2017-08-12 13:35:08操作Hadoop集群 所有必要的配置完成后,将文件分发到所有机器上的HADOOP_CONF_DIR目录。这应该是所有机器上相同的目录。 一般来说,建议HDFS和YARN作为单独的用户运行。在大多数安装中,HDFS进程作为“hdfs”执行。... -
IntelliJ IDEA连接Hadoop集群
2019-10-14 16:33:38相关连接 HDFS相关知识 Hadoop集群连接 HDFS Java API IntelliJ IDEA连接Hadoop集群 注意事项 准备文件 具体步骤 WordCount程序示例 -
关闭 Hadoop 集群
2019-03-14 15:47:48关闭 Hadoop 集群也是在 Master 节点上执行的: stop-yarn.sh stop-dfs.sh mr-jobhistory-daemon.sh stop historyserver -
Hadoop集群概念设计
2019-03-28 21:00:57什么是Hadoop集群 Hadoop能做什么 Hadoop是什么? Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算... -
hadoop学习笔记(一):hadoop集群搭建
2019-04-23 09:41:23hadoop集群搭建 阅读目录 一、准备工作: 二、搭建Hadoop集群: 回到顶部 一、准备工作: 1、环境:CentOS6.4-64bit JDK1.7-64bit 基于虚拟机拷贝4个虚拟机,一个作为Master,另外三个作为Slave,在这拷贝... -
hadoop学习笔记(三):hadoop集群搭建
2019-04-23 09:41:44hadoop集群搭建 阅读目录 一、准备工作: 二、搭建Hadoop集群: 回到顶部 一、准备工作: 1、环境:CentOS6.4-64bit JDK1.7-64bit 基于虚拟机拷贝4个虚拟机,一个作为Master,另外三个作为Slave,在这拷贝... -
Hadoop集群管理2
2020-11-09 09:04:42Hadoop集群管理 集群架构图例 #mermaid-svg-Fw093eTymxsPeriQ .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Fw093eTymxsPeriQ .... -
HDInsight如何创建Hadoop集群
2014-12-15 17:46:20HDInsight如何创建Hadoop集群 带大家一起看下微软Azure云中的Hadoop集群创建,首先你必须先创建个存储账号,然后新建Hadoop集群,等待21分钟左右,一个Hadoop集群就创建完成了,看图: -
Eclipse连接Hadoop集群(详细版)
2019-10-14 16:33:05相关连接 HDFS相关知识 Hadoop集群的安装与部署 Hadoop集群连接 HDFS Java API Eclipse连接Hadoop集群 注意事项 准备文件 具体步骤 WordCount程序运行示例 -
hadoop 集群常见错误解决办法
2018-06-09 07:58:28hadoop 集群常见错误解决办法阅读目录hadoop 集群常见错误解决办法hadoop错误和解决方法汇总 回到目录hadoop 集群常见错误解决办法hadoop 集群常见错误解决办法: (一)启动Hadoop集群时易出现的错误: 1.... -
Hadoop集群、Hbase集群指定ssh端口
2019-12-04 09:55:20Hadoop集群、Hbase集群指定ssh端口 在生产环境中,为了安全起见,往往会禁掉ssh默认的22端口,分为几个步骤: 1)修改ssh的端口 vi /etc/ssh/sshd_config 在这个配置里修改端口为 port 2222 去掉上面图片显示的注释... -
hadoop 集群搭建
2018-01-21 00:03:37前面说到使用单机搭建hadoop 伪分布式集群,这篇文章讲的是怎么搭建hadoop集群。 这里我是用3台虚拟机 192.168.1.221 spark1 192.168.1.222 spark2 192.168.1.223 spark3 如果不会搭建虚拟机的同学可以参考这篇... -
web工程调用Hadoop集群1---win7下java工程调用虚拟机Hadoop集群
2013-05-08 19:33:01需要注意的地方: (1)修改C:\Windows\System32\drivers\etc\hosts文件: ...(2)hadoop集群的配置出了常规的,在hdfs-site.xml中添加一个property: dfs.permissions false (3)编写的java文件要编译成. -
Hadoop集群系列(目录)
2015-07-27 12:56:26下面是Hadoop集群系列的目录安排,按照一星期发布一期的原则进行。希望大家的关注。 目录安排: 1)Hadoop集群_第1期_CentOS安装配置_V1.0 2)Hadoop集群_第2期_机器信息分布表_V1.1 3)Hadoop... -
Hadoop是做什么的,hadoop集群搭建作用
2020-01-30 08:48:48本文描述了如何安装、配置和管理有实际意义的Hadoop集群,其规模可从几个节点的小集群到几千个节点的超大集群。 如果你希望在单机上安装Hadoop玩玩,从这里能找到相关细节。 更多精彩内容 精彩内容点我学 先决... -
从零搭建 Hadoop 集群
2018-12-09 23:30:16随着 Hadoop 的落地普及和大数据的发展,越来越多的公司和工程师开始关注 Hadoop 以及搭建大数据集群,想不想在公司寻找搭建 Hadoop 人才时脱颖而出,就算是菜鸟,就算一点不了解 Hadoop,也能让你完美从 0 入门,对... -
基于Docker快速搭建多节点Hadoop集群
2018-01-28 00:27:10基于Docker快速搭建多节点Hadoop集群 【编者的话】Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中。这篇教程介绍了利用Docker在单机上快速搭建多节点Hadoop集群的详细步骤。作者在发现...
-
图像语义分割 -- FCN
-
Docker:基本安装和配置
-
在谈静态磁化率的计算
-
【数据分析-随到随学】Mysql数据库
-
2021-01-19
-
[Android] Android Studio入门 - 1.初识IDE
-
Hardwares虚拟硬件工具.rar
-
微信支付2021系列之扫码支付一学就会java版
-
VMware12安装CentOS 7详细教程(图文详解)附资源下载
-
海思IVE_SVP_IVS开发手册.zip
-
面向精准营销的地域特产电商平台的设计与实现.pdf
-
一尺之棰
-
GlobeLand30中国区域土地利用数据3年完整成品数据(2000-2010-2020)下载地址
-
转行做IT-第2章 HTML入门及高级应用
-
浙大版《数据结构(第2版)》题目集习题3.10 汉诺塔的非递归实现 (25分)
-
TM241等普通PLC实现电子凸轮功能和CNC.pdf
-
Redis数据库入门与使用
-
智联万物,京东IoT技术创新与实践
-
中外专利信息的检索与利用
-
微服务系列第七十一季-Introducing Spring Boot