4.2 修改hostname与hosts文件
以master上机器为例,打开终端
可以先查看一下目前的ip是不是我设置的那样
~$ ifconfig #查看ip信息
执行如下的操作
把hostname修改成master:
~$ sudo vi /etc/hostname #打开hostname
将ubuntu改成master
把hosts修改成如下所示的样子:
~$ sudo vi /etc/hosts #打开hosts文件
同样地,在slave1和slave2机器上做相似的操作,分别更改主机名为slave1和slave2,然后把hosts文件更改和master一样。
4.3 创建hadoop用户与hadoop用户
创建hadoop组
~$ sudo addgroup hadoop
在hadoop组创建hadoop用户
~$ sudo adduser -ingroup hadoop hadoop
给hadoop用户添加权限
~$ sudo vi /etc/sudoers #打开sudoers文件
在root ALL=(ALL:ALL) ALL下添加hadoop ALL=(ALL:ALL) ALL,给hadoop用户赋予root用户同样的权限(这里一般会遇到即使用sudo命令打开依然没有修改权限的情况,用<:wq!>指令强制写入然后关闭)
接下来各台主机都用hadoop账户登录进行操作( su + <主机名> )
4.4 配置虚拟机网络,使虚拟机系统之间以及和host主机之间可以通过相互ping通
如果前面安装系统的时候已经选择了NAT模式,那么这里只需要使用 ping + <主机名>指令进行测试即可。分别在3台机器上都进行测试,出现以下情况则表示能连通。
按< Ctrl + C >终止命令,退出连通状态
4.5 配置Java
Java的安装这个不要单独下载jdk文件配置,而直接使用以下三条命令安装:
~ sudo apt-get install openjdk-8-jdk
~$ java -version #查看java版本,确认是否安装成功
配置ssh前建议先将之前调试好的三个系统进行备份,后面的步骤容易出错!!!
4.6 配置ssh
以下步骤三个系统都要做
4.6.1 安装ssh
~$ sudo apt-get install openssh-server
已有ssh或者安装成功了的输入命令
~ ssh localhost
如果出现以下提示说明安装成功
但是笔者一般会遇到以下提示
The authenticity of host 'localhost ( : :1)' can't be established.
看似输完yes后能够输密码登录,实则会对后期产生影响
解决方案如下:
~ cd ~/.ssh
# 进入 .ssh 文件夹
~ sudo chmod 777 /etc/ssh/ssh_config
# 修改ssh_config文件权限
~ vi /etc/ssh/ssh_config
# 打开ssh_config文件
在ssh_config文件最后加上以下两行内容:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
再次输入
没有初出现The authenticity of host 'localhost ( : :1)' can't be established. 说明问题已解决。
4.6.3 生成秘钥对
~$ ssh-keygen -t rsa #命令前不要加sudo!!
输入之后一直选择enter即可。生成的秘钥位于 ~/.ssh文件夹下。可用cd 命令进入查看。
4.6.4 导入authorized_keys
~$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这样,
4.6.5 把master上的authorized_keys拷贝到其他主机的相应目录下,实现远程无密码登录
~ scp authorized_keys hadoop@slave1:~/.ssh/
~/.ssh$ scp authorized_keys hadoop@slave2:~/.ssh/
4.6.6 修改各台主机上authorized_keys文件的权限
所有机器上,均执行命令:
~ ssh slave1
~$ ssh slave2
至此,ssh配置完成,可以保存备份一下。
4.7 配置hadoop(现在master上配置完,然后发给子节点)
4.7.1 直接通过wget命令安在线下载
~$ wget https://archive.apache.org/dist/hadoop/core/hadoop-2.7.3/hadoop-2.7.3.tar.gz
4.7.2 解包移动
解压hadoop包到当前目录
~$ tar -zxvf hadoop-2.7.3.tar.gz 解压
将安装包移到/usr目录下
~$ sudo mv hadoop-2.7.3 /usr/hadoop
4.7.3 新建文件夹
在/usr/hadoop目录下新建如下目录(root)
~ mkdir dfs
/usr/hadoop mkdir dfs/data
/usr/hadoop$ mkdir tmp
4.7.4 配置文件(所有配置文件都在/usr/hadoop/etc/hadoop目录中)
由于前面java环境安装使用通过apt-get install openjdk-8-jdk,因此这里的JAVA_HOME环境变量值可以通过以下命令获得:
~$ ls -l /etc/alternatives/java # 获取java路径
4.7.4.1 配置文件:hadoop-env.sh
修改JAVA_HOME值(改为export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64)
4.7.4.2 配置文件:yarn-env.sh
修改JAVA_HOME值(改为export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64)
4.7.4.3 配置文件:slaves
将内容修改为:
slave1
slave2
4.7.4.4 配置文件:core-site.xml
4.7.4.5 配置文件:hdfs-site.xml
4.7.4.6 配置文件:yarn-site.xml
4.7.6.7 配置文件:mapred-site.xml
先根据文件 mapred-site.xml.template 创建文件 mapred-site.xml
~$ cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
然后修改 mapred-site.xml 文件
4.7.7 将hadoop传输到子节点的usr/hadoop目录
(如果传输时报错说 :权限拒绝,先把文件传送到非/usr目录下,然后在node上把这个文件再移动到/usr/hadoop)
如笔者正是将hadoop先传输到了子节点的/tmp目录下
~ scp -r /usr/hadoop hadoop@slave2:/tmp
然后,再分别从slave1和slave2上,将hadoop文件夹分别放到各自的/usr/hadoop中
在slave1机器:
~$ sudo mv /tmp/hadoop /usr/hadoop
在slave2机器:
~$ sudo mv /tmp/hadoop /usr/hadoop
4.8 配置环境变量
4.8.1 每个子节点都要配置以下一样的环境变量
编辑/etc/profile
~$ sudo gedit /etc/profile
在后边添加就可以
hadoop
export HADOOP_HOME=/usr/hadoop
export PATH=HADOOP_HOME/sbin
export PATH=HADOOP_HOME/bin
执行< source /etc/profile >使更新的配置生效
配置完成的话可以通过< hadoop version >查看hadoop版本
4.8.2 启动hadoop
进入hadoop安装目录
~$ cd /usr/hadoop
格式化之前需要对 /usr/hadoop 目录权限进行修改
修改权限
/usr/hadoop$ sudo chmod -R 777 /usr/hadoop
格式化
/usr/hadoop$ bin/hdfs namenode -format
启动hadoop
/usr/hadoop$ sbin/start-all.sh
4.8.3 查看hadoop是否完全启动
输入jps查看状态
~$ jps
正常情况下应显示如下情况
4.9 配置Scala
4.9.1 安装Scala
~ scala -version
4.9.3 查看Scala路径
由于前面java环境安装使用通过apt-get install scala,因此scala的路径可以通过以下命令获得:
获取scala路径
~$ ls -l /etc/alternatives/scala
4.10 配置spark
4.10.1 下载Spark 2.0.2
~$ wget https://archive.apache.org/dist/spark/spark-2.0.2/spark-2.0.2-bin-hadoop2.7.tgz
文件会下载到当前目录下,不确定的话可以查看一下目录下有没有该文件。
4.10.2 下载完毕后解压文件
~$ tar xvf spark-2.0.2-bin-hadoop2.7.tgz
4.10.3 将解压的文件移动到hadoop用户下
(这里我们可以在hadoop用户下先建一个spark文件夹,也可以不建,直接移到 /usr/hadoop 里,这个路径没有过多要求)
~ cp spark-env.sh.template spark-env.sh
打开该文件
/usr/hadoop/spark/spark-2.0.2-bin-hadoop2.7/conf$ vi spark-env.sh
在文件末尾添加以下内容
export SCALA_HOME=/usr/share/scala-2.11
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/hadoop
export HADOOP_CONF_DIR=LD_LIBRARY_PATH
这里的内容是根据我虚拟机的环境来的,如果安装的版本和路径不一样,可以根据实际情况更改。
4.10.5 接下来设置slaves文件
/usr/hadoop/spark/spark-2.0.2-bin-hadoop2.7/conf vi slaves
slave1
slave2
将内容改为
Spark在一台机器上就算配置完毕,接下来在另外两台机器上也做一模一样的配置即可。
4.10.6 启动Spark
启动spark前要先启动hadoop,然后再spark-2.0.2-bin-hadoop2.7文件夹下执行以下命令启动spark
/usr/hadoop/spark/spark-2.0.2-bin-hadoop2.7$ sbin/start-all.sh
运行jps看看Java进程,发现比Hadoop启动的时候多了Master进程。
切换到slave01节点上,运行JPS,看看进程,这里比Hadoop的时候多了一个Worker进程。说明我们的Spark群集已经启动成功。
5、测试
5.1 启动Hadoop群集与Spark群集
5.1.1启动hadoop
~ /usr/hadoop/spark/spark-2.0.2-bin-hadoop2.7$ sbin/start-all.sh
5.1.3检查能否通过浏览器访问webapp
hdfs管理界面 192.168.230.150:50070
yarn管理界面 192.168.230.150:8088
spark管理界面 192.168.230.150:8080
5.2 hadoop测试——wordcount
~ bin/hdfs dfs -mkdir -p /data/input
# 在虚拟分布式文件系统上创建一个测试目录/data/input
/usr/hadoop bin/hdfs dfs-ls /data/input
# 查看文件系统中是否存在我们所复制的文件
运行如下命令向hadoop提交单词统计任务
/usr/hadoop$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /data/input /data/output/result
查看result,结果在result下面的part-r-00000中
/usr/hadoop$ bin/hdfs dfs -cat /data/output/result/part-r-00000
————————————————
版权声明:本文为CSDN博主「景雨泽」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_35085215/article/details/88952763