您的位置:首页 > 运维架构

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

2017-11-26 19:54 411 查看

一、基础环境配置

我采用的是三台虚拟主机,操作系统为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_80
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATHsource /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.125
ssh 192.168.1.124

// 如果能够分别无密码登陆slave1, slave2主机,则成功配置

(3)hadoop的安装
  将hadoop的文件解压

在”/usr/hadoop”下面创建tmp文件夹
cd /usr/hadoop
mkdir 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&g
19ca2
t;
</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/hadoop
vi slaves

// 将文件内容修改为
Slave1.Hadoop
Slave2.Hadoop
1
2
3
4
5
6
7
格式化HDFS文件系统
// 在Master主机上输入以下指令
hadoop namenode -format
1
2
启动hadoop
// 关闭机器防火墙
service iptables stop

cd /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

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/profile
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$ZOOKEEPER_HOME/bin
source .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:3888
server.2=spark3:2888:3888
1
2
3
4
5
6
7

设置zk节点标识
cd zk
mkdir data
cd data

vi myid
0
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 .bashrc
export SCALA_HOME=/usr/local/scala
export PATH=$SCALA_HOME/bin
source .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 .bashrc
export SPARK_HOME=/usr/local/spark
export PATH=$SPARK_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
source .bashrc
1
2
3
4
5
修改spark-env.sh文件
1、cd /usr/local/spark/conf
2、cp spark-env.sh.template spark-env.sh
3、vi spark-env.sh
export JAVA_HOME=/usr/java/latest
export SCALA_HOME=/usr/local/scala
export SPARK_MASTER_IP=192.168.1.107
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop

修改slaves文件
spark2
spark3
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查看是否正常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hadoop hive spark