最近忽然要把大数据跟我们对接的项目接回来我们自己维护,不得不自己搭建一个大数据的集群环境,用来运行该项目。因此记录一下集群环境的搭建,免得以后需要再搭建。
一、架构说明
本次基于hadoop-2.6.0-cdh5.8.0版本进行分布式配置。在此设置一个主节点和两个从节点。
准备3台虚拟机,分别为:
主机名 | IP地址 |
master | 192.168.0.41 |
slave1 | 192.168.0.41 |
slave2 | 192.168.0.75 |
本章节是记录Hadoop的搭建,后续会记录Zookeeper、Scala、Kafka、Spark、Hbase、Hive等的搭建,都是基于该环境的,一主两从模式的。
CDH的hadoop下载地址:http://archive.cloudera.com/cdh5/cdh/5/,首先找到下载的地址,然后再后面加上.tar.gz就可以下载了
或者使用另一个下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/,这是我找的一个镜像服务器地址
二、搭建步骤
1、修改主机名称,把三个节点分别修改hostname,vim /etc/hostname,修改主机名为master,slave1,slave2,修改以后重启虚拟机才能看到修改以后的名字。
2、把三个节点的防火墙关闭,在三个节点分别执行:systemctl stop firewalld
启动: systemctl start firewalld
关闭:systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用: systemctl disable firewalld
开机启用: systemctl enable firewalld
3、在三个节点修改配置hosts文件,在hosts文件中分别配置三个节点的主机名 ip地址映射 (vi /etc/hosts)
192.168.0.41 master
192.168.0.42 slave1
192.168.0.75 slave2
4、在master和slave之间配置SSH互信(master到slave的免密登录)
4.1、在master上生成公钥私钥,在master上输入:ssh-keygen -t rsa,然后一直按回车直到生成公私钥
4.2、将公钥拷贝到slave端,在master上输入:scp -r /root/.ssh/id_rsa.pub root@slaveIP:/root/.ssh
4.3、在master先将公钥算追加到私钥,在master上输入:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
4.4、再将公钥追加到slave端的authorized_keys,在slave上输入:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
4.5、在master上输入:ssh slave的IP ,测试是否成功,若不需要输入密码则成功
5、把JDK和Hadoop安装包上传到master节点下
6、在两个节点下面配置jdk,解压jdk包,我的jdk是安装在:/usr/jdk1.8.0_161
7、两个节点配置java环境变量,可以修改/etc/profile也可以修改~/.bashrc,若修改~/.bashrc则要root用户操作,配置两个环境的区别不懂的自己可以百度,我这里不解释了。我是修改/etc/profile这个文件的
export JAVA_HOME=/home/hadoop/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
修改后 生效 source /etc/profile
8、配置hadoop,在/home下创建一个文件夹,用来存放hadoop相关的,例如hadoop、scala、spark、hbase等等
mkdir /home/hadoop
9、解压hadoop包,在/home/hadoop下:tar -zxvf hadoop-2.6.0-cdh5.8.0.tar.gz
10、配置环境变量,vim /etc/profile
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0-cdh5.8.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
修改以后source /etc/profile使配置生效
11、修改配置文件,vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/slaves,每一行是一个从节点主机名称
12、修改配置文件,vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/jdk1.8.0_161
13、修改配置文件,vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/core-site.xml
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
14、修改配置文件,vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/hdfs-site.xml
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/data/datanode</value>
</property>
<property>
<name>dfs.tmp.dir</name>
<value>/home/hadoop/data/tmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
15、修改配置文件:vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/mapred-site.xml.template
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
16、修改配置文件,vim /home/hadoop/hadoop-2.6.0-cdh5.8.0/etc/hadoop/yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
17、将master上的hadoop-2.6.0-cdh5.8.0文件夹复制到slave1、slave2上
scp -r /home/hadoop/hadoop-2.6.0-cdh5.8.0 root@slave1:/home/hadoop
scp -r /home/hadoop/hadoop-2.6.0-cdh5.8.0 root@slave2:/home/hadoop
同时将jdk以及/etc/profile文件拷贝到slave1上,然后记得source /etc/profile
18、在/home/hadoop 下建立data目录,三个节点都要创建
19、格式化HDFS,在master的/home/hadoop/hadoop-2.6.0-cdh5.8.0目录下,执行如下命令:
bin/hdfs namenode -format
20、启动集群,在master的hadoop解压目录下,执行如下命令:
sbin/start-all.sh
21、查看http://192.168.0.41:8088,出现以下则代表成功
22、查看http://192.168.0.41:50070,出现以下则代表成功