搭建Hadoop和Spark集群
1、搭建Hadoop
表一:搭建单机版Hadoop
关键步骤 | 操作命令 | 备注说明 |
创建hadoop用户组和用户,并给hadoop用户赋予root权限 | $ sudo addgroup hadoop $ sudo adduser -ingroup hadoop hadoop $ sudo gedit /etc/sudoers | 编辑sudoers文件,在root ALL=(ALL:ALL)下添加hadoop ALL=(ALL:ALL) |
安装JDK | $ cd /usr/local $ sudo mkdir java $ sudo scp jdk-8u20-linux-x64.gz /usr/local/java/ $ sudo tar xzvf jdk-8u20-linux-x64.gz $ sudo gedit ~/.bashrc $ source ~/.bashrc $ java -version | 编辑~/.bashrc文件,把JAVA_HOME、JRE_HOME路径加入其中,并将bin目录加入到PATH路径。 最后显示出正确的java版本表示安装成功。 |
安装ssh服务 | $ sudo apt-get install openssh-server $ sudo apt-get update $ ssh-keygen -t rsa -P "" $ cd ~/.ssh $ cat id_rsa.pub >> authorized_keys $ ssh localhost | 这里配置的是ssh免密码登陆本机,需要联网 |
搭建Hadoop | $ sudo scp hadoop-2.6.0.tar.gz /usr/local/ $ sudo tar xzvf hadoop-2.6.0.tar.gz $ sudo mv hadoop-2.6.0 hadoop $ sudo chown -R hadoop:hadoop hadoop $ cd /usr/local/hadoop/etc/hadoop/ $ sudo gedit hadoop-env.sh $ sudo gedit yarn-env.sh $ sudo gedit slaves $ sudo gedit core-site.xml $ sudo gedit hdfs-site.xml $ sudo gedit mapred-site.xml $ sudo gedit yarn-site.xml $ sudo gedit ~/.bashrc $ source ~/.bashrc | 解压hadoop安装包到指定文件路径,并编辑hadoop配置文件,最后通过编辑 ~/.bashrc文件修改环境变量 |
启动Hadoop | $ cd /usr/local/hadoop $ bin/hadoop namenode –format $ sbin/start-all.sh $ jps | 格式化hadoop,然后启动,jps检查启动进程,验证安装 |
表一详细的列出了搭建单机版Hadoop过程中需要用到的操作命令,环境配置可以根据实际的集群资源状况合理设置,本实验中我们在三台机器上执行相同的配置,jdk安装路径统一为/usr/local/java/jdk1.8.0_20,Hadoop安装路径统一为/usr/local/hadoop。确保三台机器成功安装Hadoop之后,开始搭建分布式集群,主要由以下两个步骤:
2、对应主机名与IP
将集群中的主机名与IP一一对应,主要通过编辑/etc/hosts文件完成:
$ ifconfig #检查机器IP地址
$ sudo gedit /etc/hosts
编辑hosts文件,将主机名与IP一一对应,本实验中内容如下:
172.16.82.195 master
172.16.82.196 slave1
172.16.82.197 slave2
3、SSH集群免密码登录
搭建Hadoop集群时,需要集群间SSH免密码登录,这样集群工作过程中,互相访问就不用再输入密码,可以方便的互相传输数据进而处理数据。配置SSH免密码登录过程如下,这里以master免密码登录slave1为例进行详细说明,其他情况基本与此相同。
在master节点:先前配置单机版本时,已经在~/.ssh目录下生成了公钥和私钥,将生成的公钥复制到slave1节点上
$ cd ~/.ssh
$ scp id_rsa.pubhadoop@slave1:~/
在slave1节点:将拷贝过来的公钥追加到authorized_keys
$ cat id_rsa.pub>> ~/.ssh/authorized_keys
由于authorized_keys的权限需要是600。所以我们再执行以下操作:
$ sudo chmod 600authorized_keys
在master节点首次登录slave1时要输入yes确认,这样就实现了master免密码登录slave1。
搭建完分布式集群之后,需要启动并测试,启动方法与单机版Hadoop一样,验证方法也类似,按照上述操作即可。
4、搭建Spark集群
表二:搭建Spark集群
关键步骤 | 操作命令 | 备注说明 |
安装scala | $ cd /usr/local/ $ sudo mkdir scala $ sudo cp scala-2.10.4.tgz /usr/local/scala $ sudo tar -zxf scala-2.10.4.tgz $ sudo gedit ~/.bashrc $ source ~/.bashrc $ scala -version | 解压scala安装包到指定路径下,编辑~/.bashrc文件,将SCALA_HOME路径加入其中,并将bin目录加入到PATH路径,显示出正确的scala版本说明安装成功。 |
安装Spark | $ cd /usr/local/ $ sudo mkdir spark $ sudo cp spark-1.6.0-bin-hadoop2.6.tgz /usr/local/spark/ $ sudo tar -zxf spark-1.6.0-bin-hadoop2.6.tgz $ sudo gedit ~/.bashrc $ source ~/.bashrc | 解压spark安装包到指定路径,编辑~/.bashrc文件,将SPARK_HOME路径加入其中,并将bin目录加入到PATH路径。 |
配置Spark | $ cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6/conf/ $ sudo cp spark-env.sh.template spark-env.sh $ sudo gedit spark-env.sh $ sudo cp slaves.template slaves $ sudo gedit slaves | 根据实际集群配置conf目录下的文件 |
赋予权限 | $ sudo chmod -R 777 spark | 给Spark赋予权限 |
在三台机器上执行相同的操作,待全部安装成功,开始启动测试。先启动Hadoop,之后,通过Spark安装目录下的sbin中的start-all.sh脚本来启动Spark集群,通过jps检查启动的进程。也可以通过Spark自带的wordcount程序示例验证安装。
第一次写博客,不是特别全面,可能有很多不足之处,还请多多包涵,还是希望能够给各位朋友一些帮助,如果遇到任何问题可以给我联系