说明:主节点IP:192.168.35.134 主机名:master
从节点slave1 IP: 192.168.35.135 主机名:slave1
从节点slave2 IP: 192.168.35.136 主机名:slave2
1、检查环境,安装JDK:
Linux系统:用root用户登陆到系统,用如下命令查看当前安装jdk情况:
显示:java version "1.8.0_131" 若版本过低,用如下命令卸载jdk:
rpm -e --nodeps jdk1.8.0_131
下载好jdk安装包,使用WinSCP工具将安装包上传到主节点目录下。切换至用户模式:su - 用户名(如test)。
新建用户组:
新建用户:
新建jdk安装目录:
执行命令:
tar -zxvf jdk-8u131-linux-x64.tar.gz -C /home/java
将jdk安装在指定目录/home/java下。等待安装,安装完后配置jdk环境变量,配置在/home/test/.bash_profile。
执行命令:
vim /home/test/.bash_profile
键盘按“i”,进入编辑模式,在下方新增如下内容:
export JAVA_HOME=/home/java/jdk1.8.0_131
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
键盘按“:wq!”保存更改的配置项。终端输入:
source /home/test/.bash_profile
检查jdk是否安装成功,终端输入:
显示:则表明安装成功。
2、配置主机名(root身份):
vim /etc/sysconfig/network
修改如下信息:
NETWORKING=yes
HOSTNAME=master
检查是否成功:
显示:master。则表示配置成功。其他从节点主机名均修改成相应的主机名。
3、配置host列表(root身份):
将下面内容添加至文件中:
192.168.35.134 master
192.168.35.135 slave1
192.168.35.136 slave2
住:若不知道本机ip地址,可使用命令:ipconfig或 ip addr show查看。
3、配置时钟同步(root身份),请参考这篇文章:
4、关闭防火墙(root身份):
查看防火墙状态,如下命令,若iptables已开启,需关闭防火墙。
关闭防火墙命令:
5、各服务器节点之间配置SSH免密登录(用户身份登录):
终端输入:
在各节点分别进入/home/hadoop/.ssh目录,在三个节点中分别把公钥id_rsa.pub命名为authorized_keys_master、authorized_keys_slave1和authorized_keys_slave2,使用命令如下:
cd /home/hadoop/.ssh
cp id_rsa.pub authorized_keys_hadoop1
把两个从节点(slave1、slave2)的公钥使用scp命令传送到master节点的/home/hadoop/.ssh文件夹中;
scp authorized_keys_slave1 hadoop@master:/home/hadoop/.ssh--在slave1节点上执行该条命令; scp authorized_keys_slave2 hadoop@master:/home/hadoop/.ssh--在slave2节点上执行该条命令;
在主节点上把三个节点的公钥信息保存到authorized_keys文件中,主节点终端输入如下命令:
cat authorized_keys_master >> authorized_keys cat authorized_keys_slave1 >> authorized_keys cat authorized_keys_slave2 >> authorized_keys
把authorized_keys文件分发到其他两个从节点上,使用如下命令:
scp authorized_keys hadoop@slave1:/home/hadoop/.ssh
scp authorized_keys hadoop@slave2:/home/hadoop/.ssh
在三台机器中使用如下设置authorized_keys读写权限
chmod 400 authorized_keys
测试ssh免密码登录是否生效:
能跳转至其他节点,则表明免密已生效,exit命令退出。
6、安装hadoop:
同样使用WinSCP工具将hadoop安装包上传到主节点目录下,新建hadoop安装目录:
执行命令:
tar -zxvf hadoop-2.8.2.tar.gz -C /home/hadoop
等待安装,安装后,配置环境变量。
6.1 配置hadoop-env.sh环境变量,执行命令:
vim /home/hadoop/hadoop-2.8.2/etc/hadoop/hadoop-env.sh
找到如下一行代码:
export JAVA_HOME=${JAVA_HOME}
将其改为:
export JAVA_HOME=/home/java/jdk1.8.0_131
保存即可。
6.2 配置yarn-env.sh环境变量
6.3 配置组件core-site.xml
6.4 配置文件系统hdfs-site.xml
6.5 配置文件系统yarn-site.xml
6.6 配置计算框架mapred-site.xml
6.7 配置从节点文件slaves
6.8 将上述安装好的hadoop复制到slave1和slave2节点。
6.9 配置hadoop系统环境变量
6.10 创建数据目录
6.11 格式化文件系统
6.12 启动hadoop集群
7、安装spark
8、问题及解决方法
问题一:hadoop的集群无法正常启动,其中jps命令错误。
分析原因:可能是.bash_profile文档需要重新source。Source的功能就是通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。(说明白点就是让修改过的文档重新生效)
解决方案:source下.bash_profile文件。
问题二:Spark提交Pi应用报错,日志显示:ERROR yarn.ApplicationMaster: Uncaught exception: java.lang.ClassNotFoundException: org.apache.spark.examples.SparkPi
分析原因:是jar包有问题
解决方案:换一个好的jar包再执行正确。
问题三:hadoop运行pi任务失败,日志显示:
ERROR client.TransportClient: Failed to send RPC 6920585401247025097 to /192.168.42.162:60956: java.nio.channels.ClosedChannelException java.nio.channels.ClosedChannelException at io.netty.channel.AbstractChannel$AbstractUnsafe.write(...)(Unknown Source)
分析原因:内存溢出
解决方案:在yarn-site.xml中增加两个配置项:
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property> 说明:yarn.nodemanager.vmem-check-enabled是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true。 问题四:启动hadoop后,Spark提交Pi应用报错,日志显示:
pplication application_1511319158710_0002 failed 2 times due to AM Container for appattempt_1511319158710_0002_000002 exited with exitCode: 10
Failing this attempt.Diagnostics: Exception from container-launch.
Container id: container_1511319158710_0002_02_000001
Exit code: 10
分析原因:yarn-site.xml中value配置有空格
解决方案:yarn-site.xml中value配置不能有空格;
|