赞
踩
实验环境: Vmware workstation + CentOS 7 + Hadoop 3.1.3
目录
下载地址:下载 VMware Workstation Pro | CN
点击自定义硬件,如果点击弹框有问题,就先点击完成,然后在外边点击自定义硬件(见第二个图)
以上就完成虚拟机的安装了
进去后,创建文件夹
mkdir -p /export/data
mkdir -p /export/servers
mkdir -p /export/software
搭建集群需要3个虚拟机,hadoop01,hadoop02,hadoop03,已经安装了hadoop01,剩下两个需要用到虚拟机克隆
相同的方法克隆hadoop03
三个虚拟机的ip分别为
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
编辑-虚拟网络编辑器
然后点击确定,再点确定
设置本机网络(win10举例)
vi /etc/hostname
修改hadoop02和hadoop03的hostname为 hadoop02 和 hadoop03
(注:这是CentOS7的修改方法,CentOS6修改/etc/sysconfig/network)
vi /etc/hosts
在文件末尾添加以下3行
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
同时修改hadoop02和hadoop03
在hadoop01上(如果文件中的参数都没有引号“”,则需要去掉)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static"
ONBOOT="yes"
新增以下ip设置
IPADDR="192.168.121.134"
NETMASK="255.255.255.0"
GATEWAY="192.168.121.2"
DNS1="114.114.114.114"
然后在hadoop02和hadoop03上分别设置成121.135和121.136
reboot
完成重启后测试下网络是否OK,命令ping www.baidu.com
1. 确认ssh服务已开启(默认已开启)
ps -e | grep sshd
2. 三台机器生成公钥和私钥
ssh-keygen -t rsa
执行该命令,按3下回车
3. 拷贝公钥到另外两台机器
在hadoop01,hadoop02和hadoop03上分别执行以下三行
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh-copy-id hadoop03
都执行完毕后,三台机器就可以使用ssh连接而无需输入密码了
测试一下:
在hadoop02上输入ssh hadoop03,能够免密登录
然后exit退出回来hadoop02
========================== 快照 ==================================
在jave网站上下载
Java Archive Downloads - Java SE 8
jdk-8u161-linux-x64.tar.gz(网站上下载需要注册,可以从群共享里获取)
上传JDK到linux(SecureCRT工具里使用SecureFXPortable,MobaxTerm里使用自带的tftp功能,注意上传位置,是 /export/software/)
使用MobaxTerm里使用自带的tftp功能
执行解压缩操作:解压到 /export/servers
cd /export/software/
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /export/servers/
cd /export/servers/
重命名为jdk
mv jdk1.8.0_161/ jdk
vim /etc/profile
添加如下内容
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改完成之后记得使用命令source /etc/profile,使修改生效
java -version
同样通过mobaxterm的上的SFTP功能(或其他工具)上传到/export/software目录下,然后解压到/export/servers目录下
cd /export/software
mobaxterm的上的SFTP功能
tar -zxvf hadoop-3.1.3.tar.gz -C /export/servers/
vim /etc/profile
配置环境变量
export HADOOP_HOME=/export/servers/hadoop-3.1.3
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
同时添加hadoop为root用户,否则启动的HDFS的时候可能会报错
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
执行source /etc/profile命令,让配置生效
hadoop version
========================== 快照 ==================================
集群配置如下:
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim hadoop-env.sh
找到export JAVA_HOME的位置修改
export JAVA_HOME=/export/servers/jdk
主要是配置主进程NameNode的运行主机和运行生成数据的临时目录
vim core-site.xml
写入以下内容
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-3.1.3/tmp</value>
</property>
</configuration>
设置HDFS数据块的副本数量以及second namenode的地址
vim hdfs-site.xml
写入以下内容
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
</configuration>
设置MapReduce的运行时框架
vim mapred-site.xml
写入以下内容
<configuration>
<!-- 指定MapReduce运行时框架,这里指定在Yarn上,默认是local -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
设置yarn集群的管理者
vim yarn-site.xml
写入以下内容
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
该文件用来记录从节点的主机名(hadoop 2.x中为slaves文件)
打开该配置文件,先删除里面的内容(默认localhost),然后配置如下内容。
vim workers
删除默认内容,添加以下内容
hadoop01
hadoop02
hadoop03
完成Hadoop集群主节点hadoop01的配置后,还需要将系统环境配置文件、JDK安装目录和Hadoop安装目录分发到其他子节点hadoop02和hadoop03上,具体指令:
scp /etc/profile hadoop02:/etc/profile
scp /etc/profile hadoop03:/etc/profile
scp -r /export/ hadoop02:/
scp -r /export/ hadoop03:/
传完之后要在hadoop02和hadoop03上分别执行 source /etc/profile 命令,来刷新配置文件
如果使用scp时需要输入密码,请重新检查ssh配置!
初次启动HDFS集群时,必须对主节点进行格式化处理。在hadoop01上执行
格式化文件系统指令如下:
hdfs namenode -format
不要多次格式化主节点!
脚本一键启动:
hadoop01主节点上执行:
start-dfs.sh
可以通过jps看到
在主节点上执行
start-yarn.sh
如果想要关闭,输入stop-dfs.sh即可(不要执行)
在3台虚拟机上均执行以下命令
本次临时关闭防火墙、永久关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
打开C:\Windows\System32\drivers\etc下的hosts文件,添加以下内容(注:如果没有notepad++这类软件,可以通过记事本保存在其他位置,然后拖动到该文件夹下)
192.168.121.134 hadoop01
192.168.121.135 hadoop02
192.168.121.136 hadoop03
在浏览器输入
http://hadoop01:9870
http://hadoop01:8088
即可访问HDFS和Yarn
========================== 快照 ==================================
统计word.txt中各单词出现的次数
在Hadoop01创建如下目录,并添加测试文件
mkdir -p /export/data
cd /export/data
vi word.txt
写入下列内容
hello world
hello hadoop
hello students
在HDFS上创建 /wordcount/input目录
hadoop fs -mkdir -p /wordcount/input
创建完成后可以在HDFS的网站上看到
将word.txt上传到该目录下
hadoop fs -put /export/data/word.txt /wordcount/input
执行该程序(参考下文中可能遇到的问题,问题1、2为必现问题,建议直接修改)
cd /export/servers/hadoop-3.1.3/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.1.3.jar wordcount /wordcount/input /wordcount/output
查看结果如下:
找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster
解决方法:
输入 hadoop classpath
复制返回的信息
修改yarn-site.xml
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim yarn-site.xml
新增以下内容
<property>
<name>yarn.application.classpath</name>
<value>输入刚才返回的Hadoop classpath路径</value>
</property>
Container killed on request. Exit code is 143
解决方法:
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim mapred-site.xml
<property>
<name>mapreduce.map.memory.mb</name>
<value>2048</value>
<description>maps的资源限制</description>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>2048</value>
<description>reduces的资源限制</description>
</property>
无法找到路由
解决方法:
关闭hadoop02和hadoop03的防火墙
A JNI error has occured,please check your installation and try again
解决方法:
Hadoop的JAVA_HOME版本设置未更改,例如未去掉注释等,三台虚拟机全都改好后重启hdfs和yarn
cd /export/servers/hadoop-3.1.3/etc/hadoop
vim hadoop-env.sh
part-r-00000 下载不成功
解决方法:
windows下ip映射有问题
ERROR: Cannot set priority of namenode process XXXXXX
解决方法:
仔细检查xml文件,一般是前边第七步的xml文件写错了,或者修改了hadoop01没有同时修改hadoop02/03导致的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。