本文将会从环境搭建前的准备、Linux系统介绍和常用的Shell命令、JDK的安装和配置、安装Scala、Hadoop的安装配置方法和基础操作,以及安装Spark几个模块来分布介绍大数据环境的搭建方法。
1. 环境搭建前的准备
本次环境所需要的安装文件及具体版本如下:
- Ubuntu:ubuntukylin-16.04-desktop-amd64.iso
- JDK:jdk-8u162-linux-x64.tar.gz
- Scala: scala-2.11.8.tgz
- Hadoop:hadoop-2.7.1.tar.gz
- Spark:spark-2.1.0-bin-without-hadoop.tgz
我是在windows系统下下载好所有的安装文件,然后使用WinSCP传到ubuntu中进行安装部署的,所以下面简单介绍一下WinSCP的使用。
- 上WinSCP官网下载安装软件,自定义安装位置,安装即可。
- 在Linux系统终端输入
ifconfig查看IP地址,并在WinSCP中新建会话,输入IP地址,端口为22,用户名hadoop,密码hadoop(前提是已经在虚拟机中安装好ubuntu系统,并创建好hadoop用户,并成功安装SSH服务)。若安装Ubuntu之后没有安装SSH服务,将无法使用WinSCP连接。在终端中运行sudo apt-get install openssh-server即可。 - 确认连接即可在windows和ubuntu之间相互传输文件了。
2. Linux系统介绍和常用的Shell命令
Linux系统:相信不用多说,能学到大数据环境搭建的同志们,肯定对Linux系统或多或少的有所了解,这里就不再当百度词条的搬运工了。
常用Shell命令:
- useradd — 新增用户
- cd — 切换文件路径
- mkdir — 创建文件夹
- tar -zxvf xxxx.tar.gz —解压tar.gz格式文件
- unzip xxxx.zip — 解压zip格式文件
- sudo apt-get install xxx — 安装xxx
此处只是简单列举了一些在本次环境搭建过程中的linux常用命令
由于Linux中的root用户权限过于强大,我们为了防止由于误操作对系统产生毁灭性破坏,故创建hadoop用户来进行本次环境的全程搭建。打开终端,输入:
$ sudo useradd -m hadoop -s /bin/bash
这条命令创建了一个可以登陆的hadoop用户,并使用/bin/bash作为Shell。
接着使用如下命令为hadoop用户设置密码:
$ sudo passwd hadoop
根据提示输入两次密码之后按回车即可。然后,需要为hadoop用户增加管理员权限,这样可以避免在后续软件安装和程序部署过程中可能出现的一些棘手的问题,命令如下:
$ sudo adduser hadoop sudo
完成之后,注销当前用户,并使用hadoop登录Linux系统。
3. JDK的安装和配置
无论是Hadoop还是Spark,都需要java运行环境,因此,需要在Ubuntu中安装JDK。本次环境搭建使用Hadoop2.7.1和Spark2.1.0,要求必须是java8以上版本。因此,我们选择安装Java 8。
下载好jdk-8u162-linux-x64.tar.gz,保存到本地的“~/packages”目录下,然后在终端中执行如下命令对安装文件进行解压缩。
$ cd /usr/lib
$ sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
$ cd ~/packages #JDK安装包jdk-8u162-linux-x64.tar.gz在该目录下
$ sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把文件解压到/usr/lib/jvm目录下(**注意:此处的jvm必须提前创建成功**)
JDK文件解压缩以后,在“/usr/lib/jvm”目录下会产生子目录“jdk1.8.0_162”。
下面进行环境变量配置,在终端中输入如下命令:
$ vim ~/.bashrc
若未安装vim,运行sudo apt-get install vim安装即可。
使用vim编辑器打开.bashrc之后,将光标移动到文件头部,按‘i’进入插入模式,在文件开头插入如下代码:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
完成后按“:”退出插入模式,输入wq保存并退出文件。然后继续执行如下命令,使.bashrc文件的配置立即生效:
$ source ~/.bashrc
这时,可以使用如下命令查看JDK是否安装成功:
$ java -version
若在屏幕中返回jdk的版本信息说明JDK已安装成功。
4. 安装Scala
Scala于2004年1月公开发布1.0版本,目前仍处于快速发展阶段,每隔几个月就会有新的版本发布。Spark从2.0开始都采用Scala2.11进行编译,因为本次环境使用的Spark版本是2.1.0,其对应的Scala版本是2.11.8。需要从Scala官网下载与Linux系统对应的安装包scala-2.11.8.tgz。这里将下载后的文件保存在“~/packages”目录下。
然后,执行如下命令进行安装:
$ cd ~
$ sudo tar -zxf ~/packages/scala-2.11.8.tgz -C /usr/local #解压到/usr/local目录下
$ cd /usr/local
$ sudo mv ./scala-2.11.8.tgz ./scala #将目录名改为scala,方便操作
$ sudo chown -R hadoop ./scala #修改目录权限,给hadoop用户操作scala目录的权限
接下来需要把scala命令添加到PATH环境变量中,使用vim编辑器打开.bashrc文件
$ vim ~/.bashrc
在文件的开头位置添加如下语句:
export PATH=$PATH:/usr/local/scala/bin
保存文件并退出(:wq)。然后执行如下命令使配置文件立即生效:
$ source ~/.bashrc
至此,scala已经安装和配置成功,可以在终端输入$ scala来检验配置是否正确。若是在屏幕上显示Scala和Java版本信息,并进入scala>提示符状态,说明Scala可以正常使用,可以输入Scala语句来调试Scala代码。
5. Hadoop的安装配置方法和基础操作
5.1 安装Hadoop之前的准备工作
5.1.1 更新APT
APT是一个非常优秀的软件管理工具,Linux系统采用APT来安装和管理各种软件。成功安装Linux系统之后需要及时更新APT软件,否则,后续一些软件可能无法正常安装。
在更新APT之前,需要更改软件源。打开电脑“系统设置”->选择“软件和更新”->选择下载自“中国的服务器”->在服务器列表中选择“mirrors.aliyun.com”->输入密码后确认退出。然后打开终端,输入如下命令进行APT更新:
$ sudo apt-get update
5.1.2 安装SSH
Hadoop的名称节点(也就是HDFS中的NameNode)需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现。另外,Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登陆急群众的每台计算机,需要将所有计算机配置为“名称节点可以无密码登录”的形式。
Ubuntu已经默认安装了SSH客户端,因此,这里还需要安装SSH服务器,在终端中输入如下命令:
$ sudo apt-get install openssh-server
安装完成后,可以使用如下命令登录本机:
$ ssh localhost
接下来,配置“无密码登录”,命令如下:
$ cd ~/.ssh/ #若没有该目录,请先执行一次ssh localhost
$ ssh-keygen -t rsa #会有提示,都按<Enter>即可
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权
此时,再执行ssh localhost命令,无须输入密码就能够登录。
5.2 安装Hadoop
Hadoop包括3中安装模式:
- 单机模式:只在一台计算机上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS。
- 伪分布模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台计算机上。
- 分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据几点在不同的计算机上。
本次环境搭建采用伪分布式安装模式安装Hadoop,下面介绍Hadoop伪分布模式的具体安装方法。
5.2.1 下载并解压安装文件
本案例采用的是Hadoop2.7.1版本,大家可以到Hadoop官网下载安装文件。本机的文件路径是“~/packages”。然后,打开终端输入如下命令:
$ cd ~/packages
$ sudo tar -zxf hadoop-2.7.1.tar.gz -C /usr/local #解压到/usr/local目录下
$ cd /usr/local
$ sudo mv ./hadoop-2.7.1/ ./hadoop #将文件夹名称改为hadoop
$ sudo chown -R hadoop ./hadoop #给hadoop用户赋予操作hadoop文件夹的权限
Hadoop解压后就可以使用,可以输入如下命令来检查Hadoop是否安装成功,如果成功,则会打印版本信息。
$ cd /usr/local/hadoop
$ ./bin/hadoop version
此时得到的是Hadoop的单机模式,配置成伪分布式模式,还需要继续修改相关的配置文件。
5.2.2 修改配置文件
进行伪分布式模式配置时,需要修改core-site.xml和hdfs-site.xml两个配置文件,该文件位于“/usr/local/hadoop/etc/hadoop”目录下。
5.2.2.1 配置core-site.xml文件
输入如下命令,使用vim编辑器打开core-site.xml文件,按‘i’进入“插入模式”进行编辑。
$ vim /usr/local/hadoop/etc/hadoop/core-site.xml
修改core-site.xml内容为:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
在上面的配置文件中,hadoop.tmp.dir用于保存临时文件。若没有配置hadoop.tmp.dir参数,默认使用的临时目录为“/tmp/hadoop-hadoop”,而这个目录在Hadoop重启时可能被系统清理,导致一些意想不到的问题,因此,必须配置这个参数。fs.defaultFS参数用于指定HDFS的访问地址,其中,9000是端口号,这个端口号可以自定义,只要不被其他程序占用即可。
5.2.2.2 配置hdfs-site.xml文件
与上一步类似,修改文件内容为:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
在hdfs-site.xml配置文件中,dfs.replication参数用于指定副本的数量,因为,在分布式文件系统中,数据会被冗余存储多份,以保证可靠性和可用性。但是,由于这里采用伪分布式模式,只有一个节点,这就意味着HDFS的数据只可能有一个副本,因此,设置dfs.replication的值为1。dfs.namenode.name.dir用于设定名称节点的元数据的保存目录,dfs.datanode.data.dir用于设定数据节点的数据保存目录,这两个参数必须设定,否则后面会出错。
注意: Hadoop的运行方式是由配置文件决定的,启动时Hadoop灰度区配置文件吗,然后根据配置文件来决定运行在什么模式下。因此,如果需要从为伪布式模式切换到单机模式,只需要删除core-site.xml中的配置项即可。
5.2.3 执行名称节点格式化
修改配置文件以后,要执行名称节点的格式化,命令如下:
$ cd /usr/local/hadoop
$ ./bin/hdfs namenode -format
如果格式化成功,会看到“successfully formatted”和“Exiting with status 0”的提示信息。若提示信息为“Exiting with status 1”,则表示出现错误。
若提示错误信息为“Error:JAVA_HOME is not set and could not be found”,则需要配置JAVA_HOME的环境变量。
5.2.4 启动Hadoop
在Linux终端中输入如下命令启动Hadoop:
$ cd /usr/local/hadoop
$ ./sbin/start-dfs.sh
当出现“Are you sure you want to continue connecting(yes/no)?”时,输入“yes”即可。
Hadoop启动成功之后,可以通过命令jps来判断是否启动成功,若启动成功,则会列出如下进程:NameNode、DataNode和SecondaryNameNode。
5.2.5 运行Hadoop伪分布式实例
若要使用HDFS,首先需要在HDFS中创建用户目录,命令如下:
$ cd /usr/local/hadoop
$ ./bin/hdfs dfs -mkdir -p /usr/hadoop
接着需要把本地文件系统中“/usr/local/hadoop/etc/hadoop”目录中所有的xml文件做为输入文件,复制到分布式文件系统HDFS中的“/user/hadoop/input”目录下,命令为:
$ cd /usr/local/hadoop
$ ./bin/hdfs dfs -mkdir input # 在HDFS中创建hadoop用户对应的input目录
$ ./bin/hdfs dfs -put ./etc/hadoop/*.xml input #把本地文件复制到HDFS中
复制完成后,可以通过如下命令查看HDFS中的文件列表
$ ./bin/hdfs dfs -ls input
现在就可以运行Hadoop自带的grep程序,命令如下:
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-example-*.jar grep input output 'dfs[a-z.]+'
运行结束后,可以通过以下命令查看HDFS中的output文件夹的内容
$ ./bin/hdfs dfs -cat output/*
5.2.6 关闭Hadoop
如果要关闭Hadoop,可以执行以下命令:
$ cd /usr/local/hadoop
$ ./sbin/stop-dfs.sh
再次启动Hadoop时,无须进行名称节点的初始化(否则会出错)。
6.安装Spark
Spark的部署模式主要有4种:Local模式(单机模式)、Standalone模式(集群模式并且使用Spark自带的简单集群管理器)、YARN模式(集群模式并使用YARN作为集群管理器)和Mesos模式(集群模式并且使用Mesos作为集群管理器)。本次部署使用Local模式安装Spark。
Spark和Hadoop可以部署在一起,相互协作,由Hadoop的HDFS、HBASE等组件负责数据的存储和管理,由Spark负责数据的计算。
需要注意的是,只有完成Linux系统、JDK和Hadoop的安装后,才能安装Spark。
6.1 文件下载和安装
本文使用的是Spark2.1.0版本,由Spark官网下载获得。将安装文件存放于“~/packages”目录下。在终端中执行如下命令进行文件的解压:
$ cd ~/packages
$ sudo tar -zxf spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
$ cd /usr/local/
$ mv ./spark-2.1.0-bin-without-hadoop ./spark
$ sudo chown -R hadoop ./spark
6.2 相关文件配置
安装文件解压之后,需要修改Spark的配置文件spark-env.sh。首先,可以复制一份由Spark自带的配置文件模板,命令如下:
$ cd /usr/local/spark
$ cp ./conf/spark-env.sh.template ./conf/spark-env.sh
然后,使用vim编辑器打开spark-env.sh文件,并在文件的第一行添加如下配置信息:
export SPARK_DIST_CLASSPATH=${/usr/local/hadoop/bin/hadoop classpath}
有了上面的配置信息后,Spark就可以把数据存储到分布式文件系统HDFS中,也可以从HDFS中读取数据。如果没有上面的配置信息,Spark就只能读取本地信息。无法读写HDFS中的数据。
配置完成后,就可以直接使用Spark,不需要像Hadoop那样运行启动命令。通过运行Spark自带的实例SparkPi,可以验证Spark是否安装成功,命令如下:
$ cd /usr/local/spark
$ bin/run-example SparkPi
执行时,会在屏幕输出很多信息,我们可以使用如下命令进行过滤:
$ bin/run-example SparkPi 2>&1 | grep "Pi is roughly"
运行结果为:“Pi is roughly 3.14159” 说明Spark已安装成功。
至此,简单的大数据环境已搭建完成!!!
(全文完)

本文详细介绍了在Ubuntu系统上搭建大数据环境的步骤,包括Linux系统介绍、JDK安装、Scala配置、Hadoop的伪分布式安装和配置以及Spark的安装。通过WinSCP传输文件,使用JDK 8、Scala 2.11.8、Hadoop 2.7.1和Spark 2.1.0,重点讲解了Hadoop的配置文件修改、名称节点格式化和启动流程,最后验证了Spark的安装成功。
2437

被折叠的 条评论
为什么被折叠?



