Hadoop+spark+hive全分布环境的搭建

来源:互联网 发布:剑指offer python 编辑:程序博客网 时间:2024/05/18 16:36

一、基础环境配置

我采用的是三台虚拟主机,操作系统为centos7。hadoop版本为2.6  、hive2.1.1版本为(可自行到官网下载)、jdk7、Scala2.11.0、zookeeper3.4.5

二、安装教程

(1)jdk的安装

从官网自行下载jdk到本地,然后通过ftp传到linux系统上,直接解压,解压后配置环境变量,我的环境变量配置如下:

JAVA_HOME=/usr/java/jdk1.7.0_80JRE_HOME=$JAVA_HOME/jreCLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/libPATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/binexport JAVA_HOME JRE_HOME CLASS_PATH PATH
source /etc/profile  使得变量生效

通过  java  和javac 可以检测是否安装成功!

(2)配置SSH免密码登录

ssh-keygen

  • 把id_rsa.pub追加到授权的key里面去
  • cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 修改文件”authorized_keys”权限
  • chmod 600 ~/.ssh/authorized_keys
  • 设置SSH配置
vi /etc/ssh/sshd_config// 以下三项修改成以下配置RSAAuthentication yes # 启用 RSA 认证PubkeyAuthentication yes # 启用公钥私钥配对认证方式AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
  • 重启ssh服务
service sshd restart
  • 1
  • 把公钥复制所有的Slave机器上
// scp ~/.ssh/id_rsa.pub 远程用户名@远程服务器IP:~/scp ~/.ssh/id_rsa.pub root@192.168.1.125:~/scp ~/.ssh/id_rsa.pub root@192.168.1.124:~/
  • 在slave主机上创建.ssh文件夹
mkdir ~/.ssh// 修改权限chmod 700 ~/.ssh
  • 追加到授权文件”authorized_keys”
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys// 修改权限chmod 600 ~/.ssh/authorized_keys
  • 删除无用.pub文件
rm –r ~/id_rsa.pub
  • 1

在master主机下进行测试

ssh 192.168.1.125ssh 192.168.1.124// 如果能够分别无密码登陆slave1, slave2主机,则成功配置
(3)hadoop的安装
  将hadoop的文件解压

  • 在”/usr/hadoop”下面创建tmp文件夹
cd /usr/hadoopmkdir tmp
设置环境变量

export HADOOP_HOME=/usr/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile


  • 设置hadoop-env.sh和yarn-env.sh中的java环境变量

  • cd /usr/hadoop/etc/hadoop/vi hadoop-env.sh// 修改JAVA_HOMEexport JAVA_HOME=/usr/java/jdk1.7

  • 配置core-site.xml文件
vi core-site.xml// 修改文件内容为以下

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/hadoop/tmp</value>

<description>A base for other temporary directories.</description>

</property><property><name>fs.default.name</name>

<value>hdfs://Master.Hadoop:9000</value></property></configuration>


  • 配置hdfs-site.xml文件
vi hdfs-site.xml// 修改文件内容为以下<configuration>        <property>                <name>dfs.namenode.name.dir</name>                <value>file:///usr/hadoop/dfs/name</value>        </property>        <property>                <name>dfs.datanode.data.dir</name>                <value>file:///usr/hadoop/dfs/data</value>        </property>        <property>                <name>dfs.replication</name>                <value>1</value>        </property>    <property>        <name>dfs.nameservices</name>        <value>hadoop-cluster1</value>    </property>    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>Master.Hadoop:50090</value>    </property>    <property>        <name>dfs.webhdfs.enabled</name>        <value>true</value>    </property></configuration>

  • 配置mapred-site.xml文件
 vi mapred-site.xml  // 修改文件为以下 <property>                <name>mapreduce.framework.name</name>                <value>yarn</value>                <final>true</final>        </property>    <property>        <name>mapreduce.jobtracker.http.address</name>        <value>Master.Hadoop:50030</value>    </property>    <property>        <name>mapreduce.jobhistory.address</name>        <value>Master.Hadoop:10020</value>    </property>    <property>        <name>mapreduce.jobhistory.webapp.address</name>        <value>Master.Hadoop:19888</value>    </property>        <property>                <name>mapred.job.tracker</name>                <value>http://Master.Hadoop:9001</value>        </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 配置yarn-site.xml文件
vi yarn-site.xml// 修改文件内容为以下        <property>                <name>yarn.resourcemanager.hostname</name>                <value>Master.Hadoop</value>        </property>    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property>    <property>        <name>yarn.resourcemanager.address</name>        <value>Master.Hadoop:8032</value>    </property>    <property>        <name>yarn.resourcemanager.scheduler.address</name>        <value>Master.Hadoop:8030</value>    </property>    <property>        <name>yarn.resourcemanager.resource-tracker.address</name>        <value>Master.Hadoop:8031</value>    </property>    <property>        <name>yarn.resourcemanager.admin.address</name>        <value>Master.Hadoop:8033</value>    </property>    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>Master.Hadoop:8088</value>    </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

配置Hadoop的集群

  • 将Master中配置好的hadoop传入两个Slave中
scp -r /usr/hadoop  root@192.168.1.125:/usr/scp -r /usr/hadoop  root@192.168.1.124:/usr/
  • 1
  • 2
  • 修改Master主机上的slaves文件
cd /usr/hadoop/etc/hadoopvi slaves// 将文件内容修改为Slave1.HadoopSlave2.Hadoop
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 格式化HDFS文件系统
// 在Master主机上输入以下指令hadoop namenode -format
  • 1
  • 2
  • 启动hadoop
// 关闭机器防火墙service iptables stopcd /usr/hadoop/sbin./start-all.sh// 更推荐的运行方式:cd /usr/hadoop/sbin./start-dfs.sh./start-yarn.sh
jps进行验证

(4)mysql的安装

     https://www.cnblogs.com/xxoome/p/5864912.html


(5)hive的安装


tar -xzvf apache-hive-2.1.1-bin.tar.gz    ##解压

设置环境变量:

export HIVE_HOME=/usr/local/hive
export PATH=$HIVE_HOME/bin:$PATH

  1. cp hive-default.xml.template hive-site.xml  
修改mysql的连接

mv hive-default.xml.template hive-site.xmlvi hive-site.xml<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value></property><property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value></property>

hive 测试

(7)ZooKeeper 3.4.5集群搭建 


1、将zookeeper-3.4.5.tar.gz使用WinSCP拷贝到spark1的/usr/local目录下。 
2、对zookeeper-3.4.5.tar.gz进行解压缩:tar -zxvf zookeeper-3.4.5.tar.gz。 
3、对zookeeper目录进行重命名:mv zookeeper-3.4.5 zk。 
4、配置zookeeper相关的环境变量

vi .bashrc   或者  vi /etc/profileexport ZOOKEEPER_HOME=/usr/local/zkexport PATH=$ZOOKEEPER_HOME/binsource .bashrc
  • 1
  • 2
  • 3
  • 4
配置zoo.cfg  在/usr/local/zk/conf目录下vi zoo.cfg修改:dataDir=/usr/local/zk/data新增:server.0=spark1:2888:3888   server.1=spark2:2888:3888server.2=spark3:2888:3888
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

设置zk节点标识

cd zkmkdir datacd datavi myid0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

搭建zk集群 
1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。 
scp -r zk root@slave1:/usr/local/

2、唯一的区别是spark2和spark3的标识号分别设置为1和2。及myid 中的值修改为1 和2

启动ZooKeeper集群

1、分别在三台机器上执行:zkServer.sh start。2、检查ZooKeeper状态:zkServer.sh status。

安装scala 2.11.4 
1、将scala-2.11.4.tgz使用WinSCP拷贝到spark1的/usr/local目录下。 
2、对scala-2.11.4.tgz进行解压缩:tar -zxvf scala-2.11.4.tgz。 
3、对scala目录进行重命名:mv scala-2.11.4 scala 
4、配置scala相关的环境变量

vi .bashrcexport SCALA_HOME=/usr/local/scalaexport PATH=$SCALA_HOME/binsource .bashrc
  • 1
  • 2
  • 3
  • 4

5、查看scala是否安装成功:scala -version 
6、按照上述步骤在spark2和spark3机器上都安装好scala。使用scp将scala和.bashrc拷贝到spark2和spark3上即可。

安装spark包 
1、将spark-1.3.0-bin-hadoop2.4.tgz使用WinSCP上传到/usr/local目录下。 
2、解压缩spark包:tar zxvf spark-1.3.0-bin-hadoop2.4.tgz。 
3、更改spark目录名:mv spark-1.3.0-bin-hadoop2.4 spark 
4、设置spark环境变量

vi .bashrcexport SPARK_HOME=/usr/local/sparkexport PATH=$SPARK_HOME/binexport CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libsource .bashrc
  • 1
  • 2
  • 3
  • 4
  • 5
修改spark-env.sh文件1、cd /usr/local/spark/conf2、cp spark-env.sh.template spark-env.sh3、vi spark-env.shexport JAVA_HOME=/usr/java/latestexport SCALA_HOME=/usr/local/scalaexport SPARK_MASTER_IP=192.168.1.107export SPARK_WORKER_MEMORY=1gexport HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop修改slaves文件spark2spark3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

安装spark集群 
在另外两个节点进行一模一样的配置,使用scp将spark和.bashrc拷贝到spark2和spark3即可。

启动spark集群 
1、在spark目录下的sbin目录 
2、执行 ./start-all.sh 
3、使用jsp和8080端口可以检查集群是否启动成功 
4、进入spark-shell查看是否正常