Hadoop——伪分布搭建

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31851531/article/details/88966955

这里记录一次Hadoop伪分布搭建步骤,系统软件版本如下:

操作系统:Centos7
JDK:1.8
Hadoop:2.7

1、使用1台linux虚拟机,设置IP地址和主机名,使得虚拟机和主机互通

(1)编辑/etc/sysconfig/network-scripts/ifcfg-ens32文件,修改IP地址
在这里插入图片描述
这里的DNS可以设置8.8.8.8,我这里是内网,只能设置这个才行。
(2)编辑/etc/sysconfig/network和/etc/hostname文件,修改主机名为chenjinyu
(3)编辑/etc/hosts文件,配置名字解析
(4)检查虚拟机能够使用名字ping通
在这里插入图片描述

2、配置ssh免密码登录,使用ssh可以免密码登录本机

(1)安装openssh-clients,并使用#ssh-keygen  -t  rsa生成密钥对

(2)把公钥复制到authorized_keys文件(这个文件没有,执行下面这个命令会自动创建该文件)
在这里插入图片描述
(3)使用ssh免密码登录localhost进行测试
在这里插入图片描述

3、安装jdk,配置环境变量

(1)下载jdk,解压到jdk安装目录/usr/java/jdk1.8
(2)编辑/etc/profile文件,设置环境变量,截图3
export JAVA_HOME=/usr/java/jdk1.8
CLASSPATH=.: J A V A H O M E / j r e / l i b / r t . j a r : {JAVA_HOME}/jre/lib/rt.jar: {JAVA_HOME}/lib/dt.jar: J A V A H O M E / l i b / t o o l s . j a r e x p o r t P A T H = {JAVA_HOME}/lib/tools.jar export PATH= PATH:${JAVA_HOME}/bin
(3)使用# source /etc/profile命令执行刷新脚本
(4)使用# java -version 检查java环境
在这里插入图片描述

4、安装hadoop集群(伪分布)

1、安装hadoop,编辑配置文件

(1)建立hadoop工作目录/var/hadoop

# mkdir  /var/hadoop/tmp
# mkdir  /var/hadoop/var
# mkdir  -p  /var/hadoop/dfs/name
# mkdir  -p  /var/hadoop/dfs/data

(2)下载hadoop软件并上传到master虚拟机,并解压到/usr/hadoop2.7

# tar  -xvzf  hadoop-2.7.7.tar.gz

(3)修改环境变量配置文件/etc/profile,添加如下内容,并使其生效

export HADOOP_HOME=/usr/hadoop2.7
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONFIG_DIR=$HADOOP_HOME/etc/hadoop

(4)编辑/usr/hadoop2.7/etc/hadoop下的配置文件
1)hadoop-env.sh

export  JAVA_HOME=/usr/java/jdk1.8

2)yarn-env.sh

export  JAVA_HOME=/usr/java/jdk1.8

3)mapred-env.sh

export  JAVA_HOME=/usr/java/jdk1.8

4)core-site.xml

<configuration>
	<property>
 		<name>hadoop.tmp.dir</name>
 		 <value>/var/hadoop/tmp</value>
 	</property>
	 <property>
 		 <name>fs.default.name</name>
  		<value>hdfs://chenjinyu:9000</value>
 	</property>
</configuration>

5)hdfs-site.xml

<configuration>
	<property>
		<name>dfs.name.dir</name>
		<value>/var/hadoop/dfs/name</value>
	</property>
	<property>
 		<name>dfs.data.dir</name>
		<value>/var/hadoop/dfs/data</value>
	 </property>
  	 <property>
  		<name>dfs.replication</name>
     	<value>1</value>
   	</property>
</configuration>

6)yarn-site.xml

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name> 
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>chenjinyu:8032</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>chenjinyu:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>chenjinyu:8031</value>
	</property>
</configuration>

7)mapred-site.xml (需要拷贝 mapred-site.xml.template 模板)

# cp  mapred-site.xml.template  mapred-site.xml

以下内容在mapred-site.xml中添加

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
 	<property>  
  		 <name>mapreduce.jobhistory.address</name>  
		<value>chenjinyu:10020</value>  
	</property>
</configuration>

8)slaves

chenjinyu

注:以上所有配置文件中的“chenjinyu”需要设定为自己的hostname,如果你前面跟我设置的一样,这里不用修改

2、执行hdfs初始化
# hadoop  namenode  -format

出现以下内容,证明成功
在这里插入图片描述

4、启动Hadoop

(1)使用脚本启动hadoop

# start-all.sh

(2)使用jps命令检查hadoop是否启动

# jps

如果出现以下6个进程证明启动成功:
在这里插入图片描述
(3)使用浏览器访问master的相关端口,如果都能打开,说明启动应该是没什么问题了。记得关闭Linux防火墙或者开放相应端口,否则无法访问。

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld

50070:hdfs文件管理
在这里插入图片描述
8088:ResourceManager
在这里插入图片描述
8042:NodeManager
在这里插入图片描述
如果上面三个页面均能显示,那么恭喜你,你搭建也许成功了,可以进入下面的测试了。

4、使用hadoop集群运行自带Demo:wordcount

(1)查看hdfs根目录

# hdfs  dfs  -ls  /          

在这里插入图片描述
在这里我遇到了一个问题,执行上面命令之后显示一个“hadoop command…”具体是啥忘了,后来去logs目录下查看日志,显示“java.io.EOFException”异常,然后我重启了hadoop一次,就没有这个问题了,至今没有再碰到过,祝你好运。
(2)在根目录建立input目录

# hdfs  dfs  -mkdir  /input    

在这里插入图片描述
(3)上传文件到input

# hdfs  dfs  -put  /usr/hadoop2.7/LICENSE.txt  /input 

在这里插入图片描述
(4)进入Hadoop根目录下面的自带Demo目录:

# cd  /usr/hadoop2.7/share/hadoop/mapreduce

(5)运行程序

# hadoop  jar  hadoop-mapreduce-examples-2.7.7.jar  wordcount  /input/LICENSE.txt  /output 
//hadoop命令 jar(我要运行jar包) 指定jar包路径 执行哪一个main函数 需要输入的文件在哪里 把结果输出到哪里  (我是上一条命令的解释) 

在这里插入图片描述
(6)查看wordcount程序输出结果

# hdfs  dfs  -ls /output

在这里插入图片描述

# hdfs  dfs  -cat  /output/part-r-00000

在这里插入图片描述

恭喜你,伪分布搭建完成,并且进行了一次案例测试。
这就是大数据的经典案例——词频统计,每一个单词出现次数的小Demo。

猜你喜欢

转载自blog.csdn.net/qq_31851531/article/details/88966955