所谓的伪分布式集群搭建指的是单主机的环境,所以我的暂时只需要一台虚拟机即可
本次使用的是hadoop-2.8.0版本
1.配置主机环境
Hadoop的搭建依赖于JDK 所以在搭建之前需要将JDK安装完毕
1.1 修改主机名称 本次我会使用使用 hadooop-alone 的名称
`vim /etc/hostname`
1.2 在hosts文件中进行主机的注册(tips:如果不注册在启动Hadoop时候报错)
vim /etc/hosts
网络编辑器的模式建议使用 <NAT模式> 以避免ip的重复带来的不便
1.3 配置SSH免登陆连接
- 删除现在已经有的ssh配置
rm -r ~/.ssh
(tips:如果之前没有配置过 会显示No such file or directory) - 生成新的 ssh-key :
ssh-keygen -t rsa
(生成新的ssh-key 以rsa加密的方式)
- 为本机进行公钥的注册写入
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
在配置完后可以用cat ~/.ssh/authorized_keys
查看公钥
1.4测试SSH连接
ssh root@hadoop-alone
(@后为需要SSH连接的主机名称) <测试后可以用exit退出>
2.进行 Hadoop的安装
我们可以选择将安装包下载到本地上传到系统之中 或者可以选择用wget命令直接通过服务器获取 wget http://apache.fayea.com/hadoop/common/hadoop-2.8.0/hadoop-2.8.0.tar.gz
(本次我选择从本地上传) <利用FTP工具>
2.1 将hadoop的开发包上传到Linux系统中,并将其解压
tar xzvf /srv/ftp/hadoop-2.8.0.tar.gz -C /usr/local/
x : 从 tar 包中把文件提取出来
z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
v : 显示详细信息
f xxx.tar.gz : 指定被处理的文件是 xxx.tar.gz
2.2 文件夹的更名操作
由于解压后的文件名称过于冗长还会包括到版本的名称 所以将文件夹进行更名
mv /usr/local/hadoop-2.8.0/ /usr/local/hadoop
mv命令具有移动和更名的作用
2.3 修改profile配置文件 追加配置路径
- 打开profile配置文件
vim /etc/profile
在最后追加导入操作
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 保存后使其配置文件生效
source /etc/profile
2.4手工配置JDK
Hadoop是基于JAVA的开发包,但是有时候他会找不到profile里配置的JAVA_HOME,所以我们需要手工配置下JDK以保证Hadoop的正确运行
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
找到其里面的JAVA_HOME的配置 将其改为
export JAVA_HOME=/usr/local/jdk
2.5测试Hadoop
Hadoop 安装完成之后有一个测试的环境命令 用于单词的统计
- 设置输入的路径 在此进行统计的普通文本文件
mkdir -p /usr/test/hadoop/input
- 将Hadoop下的
README.txt
文件拷贝到此路径下
cp /usr/local/hadoop/README.txt /usr/test/hadoop/input/
2.6进行统计操作
- 路径:
/usr/local/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar
程序类 :org.apache.hadoop.examples.WordCount
- 使用Hadoop命令进行统计测试
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.8.0-sources.jar org.apache.hadoop.examples.WordCount /usr/test/hadoop/input /usr/test/hadoop/output
可以使用cat /usr/test/hadoop/output/part-r-00000
查看输出目录
3. 搭建Hadoop伪分布式集群
- 伪分布式集群中有三个核心的配置文件
core-site.xml
,hdfs-site.xml
,yarn-site.xml
- 其所有的配置文件都保存在
/usr/local/hadoop/etc/hadoop
目录下
3.1 修改core-site.xml的配置文件 <是Hadoop在运行时候的核心文件>
- 建立一个保存临时目录的路径 :
mkdir -p /usr/data/hadoop/tmp
Hadoop默认启动的时候使用的是系统下的 /temp 目录下,但是在每一次重启的时候系统都会将其自动清空 ,如果没有临时的储存目录有可能会在下一次启动Hadoop的时候出现问题 - 编辑core-site.xml配置文件
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/data/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-alone:9000</value>
</property>
</configuration>
3.2 修改hdfs-site.xml的配置文件 <进行HDFS 分布式储存的配置>
- 建立 namenode 进程的保存路径 :
mkdir -p /usr/data/hadoop/dfs/name
- 建立 datanode 进程的保存路径 :
mkdir -p /usr/data/hadoop/dfs/data
如果此时Hadoop网络环境发生了变化,两个目录需要清空 否则启动不了 - 编辑配置文件 :
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/data/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/data/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
3.3 修改yarn-site.xml的配置文件 <进行yarn 分析结构使用>
- 修改配置文件
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop-alone:8033</value>
</property>
<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.resource-tracker.address</name>
<value>hadoop-alone:8025</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-alone:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop-alone:8050</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop-alone:8030</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop-alone:8088</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>hadoop-alone:8090</value>
</property>
</configuration>
3.4修改从节点的配置文件
- 修改配置文件
vim /usr/local/hadoop/etc/hadoop/slaves
将其修改为与主机名称一致hadoop-alone
3.5将数据目录格式化
- 现在的数据保存在了
/usr/data/hadoop/{name,data}
目录下,如果想使用,就必须将目录格式化操作 -->hdfs namenode -format
3.6启动Hadoop所有进程 start-all.sh
3.7 使用jps命令 查看Java的进程信息
3.8 可使用netstat -nptl
查看其端口
3.9 修改windows主机的hosts配置
- 文件路径
C:\Windows\System32\drivers\etc\hosts
添加此操作192.168.5.130 hadoop-alone
随后访问 http://hadoop-alone:50070/