目前在练习hadoop的时候发现每次都要在准备基本环境的时候浪费很多时间,俗话说:“工欲善其事,必先利其器”,干脆横下一条心来,花了两周的时间,整理好了各种集群模板,需要哪项技术就直接克隆模板就好,目前主备的模板大概4套:1..最基本的集群(4台主机),2.基本集群+hive(5台主机),3. hadoop集群的的HA模板(7台主机),4.hadoop集群的HA+Hbase模板(7台主机),如下图所示.:
大数据确实很锻炼人,要求不光有编写代码的能力、理解底层的能力、理解业务的能力,还要具有运维的能力,否则没有“”实操”,那些高大尚的能力根本没机会得到锻炼,很多初学者都会被大数据的环境所难倒,但是不过这一关,是学不好大数据的,在这上面耽误点时间也是值得的,话不多说,将自己整理的hadoop的基础环境安装文档分享一下。
一、主机规划和环境:
机器名 域名 |
IP |
作用 |
hdp-01 |
192.168.33.31 |
NameNode、SecondaryNameNode、ResourceManager |
hdp-02 |
192.168.33.32 |
DataNode、NodeManager |
hdp-03 |
192.168.33.33 |
DataNode、NodeManager |
hdp-04 |
192.168.33.34 |
DataNode、NodeManager |
OS: linux-CentOS6.7 64位
hadoop: hadoop-2.6.4
二、每台机器准备工作
1. 通过root登录
创建hadoop用户
Useradd hadoop
Passwd hadoop
2. 配置好每一台服务器的主机名、网络IP、域名列表
修改主机名称:vi /etc/sysconfig/network
修改IP:vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改主机名和IP的映射关系:vi /etc/hosts
如:192.168.33.31 hdp-01
3. 配置好yum源 每一台机器需要安装scp(yum install -y openssh-clients)、jdk
4. 关闭防火墙
#查看防火墙状态:service iptables status
#关闭防火墙开机启动:chkconfig iptables off
5. 配置hadoop用户的sudo权限vi /etc/sudoers
6. 使用刚创建的hadoop用户登录
三、安装Hadoop集群
1. 先上传hadoop的安装包到服务器上去/home/hadoop/
Alt+p:开启一个上传的bash
sftp> lcd D:/大数据资料/5.hadoop/ sftp> put cenos-6.5-hadoop-2.6.4.tar.gz |
在另一个bash中,运行ll,看到上传成功
[[email protected] ~]$ ll 总用量 176580 -rw-rw-r--. 1 hadoop hadoop 180813065 9月 22 09:23 cenos-6.5-hadoop-2.6.4.tar.gz |
2. 创建在/home/hadoop中创建目录apps/,以后应用都放到这里
[[email protected] ~]$ mkdir apps/ |
3. 解压hadoop到apps/中
[[email protected] ~]$ tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C apps/ |
4. 进到hadoop的安装目录,找到etc目录
[[email protected] ~]$ cd /home/hadoop/apps/hadoop-2.6.4 [[email protected] hadoop-2.6.4]$ ll 总用量 52 drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 bin drwxrwxr-x. 3 hadoop hadoop 4096 3月 8 2016 etc drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 include drwxrwxr-x. 3 hadoop hadoop 4096 3月 8 2016 lib drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 libexec -rw-r--r--. 1 hadoop hadoop 15429 3月 8 2016 LICENSE.txt -rw-r--r--. 1 hadoop hadoop 101 3月 8 2016 NOTICE.txt -rw-r--r--. 1 hadoop hadoop 1366 3月 8 2016 README.txt drwxrwxr-x. 2 hadoop hadoop 4096 3月 8 2016 sbin drwxrwxr-x. 4 hadoop hadoop 4096 3月 8 2016 share -rw-r--r--. 1 hadoop hadoop 4436 3月 8 2016 capacity-scheduler.xml -rw-r--r--. 1 hadoop hadoop 1335 3月 8 2016 configuration.xsl -rw-r--r--. 1 hadoop hadoop 318 3月 8 2016 container-executor.cfg -rw-r--r--. 1 hadoop hadoop 774 3月 8 2016 core-site.xml -rw-r--r--. 1 hadoop hadoop 3670 3月 8 2016 hadoop-env.cmd -rw-r--r--. 1 hadoop hadoop 4224 3月 8 2016 hadoop-env.sh -rw-r--r--. 1 hadoop hadoop 2598 3月 8 2016 hadoop-metrics2.properties -rw-r--r--. 1 hadoop hadoop 2490 3月 8 2016 hadoop-metrics.properties -rw-r--r--. 1 hadoop hadoop 9683 3月 8 2016 hadoop-policy.xml -rw-r--r--. 1 hadoop hadoop 775 3月 8 2016 hdfs-site.xml -rw-r--r--. 1 hadoop hadoop 1449 3月 8 2016 httpfs-env.sh -rw-r--r--. 1 hadoop hadoop 1657 3月 8 2016 httpfs-log4j.properties -rw-r--r--. 1 hadoop hadoop 21 3月 8 2016 httpfs-signature.secret -rw-r--r--. 1 hadoop hadoop 620 3月 8 2016 httpfs-site.xml -rw-r--r--. 1 hadoop hadoop 3523 3月 8 2016 kms-acls.xml -rw-r--r--. 1 hadoop hadoop 1325 3月 8 2016 kms-env.sh -rw-r--r--. 1 hadoop hadoop 1631 3月 8 2016 kms-log4j.properties -rw-r--r--. 1 hadoop hadoop 5511 3月 8 2016 kms-site.xml -rw-r--r--. 1 hadoop hadoop 11291 3月 8 2016 log4j.properties -rw-r--r--. 1 hadoop hadoop 938 3月 8 2016 mapred-env.cmd -rw-r--r--. 1 hadoop hadoop 1383 3月 8 2016 mapred-env.sh -rw-r--r--. 1 hadoop hadoop 4113 3月 8 2016 mapred-queues.xml.template -rw-r--r--. 1 hadoop hadoop 758 3月 8 2016 mapred-site.xml.template -rw-r--r--. 1 hadoop hadoop 10 3月 8 2016 slaves -rw-r--r--. 1 hadoop hadoop 2316 3月 8 2016 ssl-client.xml.example -rw-r--r--. 1 hadoop hadoop 2268 3月 8 2016 ssl-server.xml.example -rw-r--r--. 1 hadoop hadoop 2237 3月 8 2016 yarn-env.cmd -rw-r--r--. 1 hadoop hadoop 4567 3月 8 2016 yarn-env.sh -rw-r--r--. 1 hadoop hadoop 690 3月 8 2016 yarn-site.xml |
5. 进入etc/hadoop目录,修改5个配置文件
v 第一个:修改hadoop-env.sh
先查看JAVA_HOME的路径
[[email protected] hadoop]$ echo $JAVA_HOME /usr/local/jdk1.7.0_45 |
修改hadoop-env.sh中的部分内容
[[email protected] hadoop]$ vi hadoop-env.sh |
将 export JAVA_HOME=${JAVA_HOME}
修改成真正的JAVA_HOME地址 :export JAVA_HOME=/usr/local/jdk1.7.0_45
第二个:修改core-site.xml
<configuration> <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址--> <property> <name>fs.defaultFS</name> <value>hdfs://hdp-01:9000</value> </property> <!-- 指定hadoop运行时产生文件的存储目录--> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hdpdata</value> </property> </configuration> |
第三个:修改hdfs-site.xml
<configuration> <!-- 指定HDFS副本的数量--> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration> |
第四个:修改mapred-site.xml (将文件改名:mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml |
<configuration> <!-- 指定mr运行在yarn上--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
第五个:修改yarn-site.xml
<configuration> <!-- 指定YARN的老大(ResourceManager)的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hdp-01</value> </property> <!-- reducer获取数据的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> |
6. 将hdp-01的apps/下的hadoop分发到其它机器上去(现在是hadoop登录,切换到root用户拷贝)
[[email protected] ~] sudo scp -r apps/ hdp-02:/home/hadoop [[email protected] ~] sudo scp -r apps/ hdp-03:/home/hadoop [[email protected] ~] sudo scp -r apps/ hdp-04:/home/hadoop |
7. 将HADOOP_HOME配置到/etc/profile下
vi /etc/profile |
export JAVA_HOME=/usr/local/jdk1.7.0_45 export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.4 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin |
8. 将/etc/profile拷贝到其它的机器上(现在是hadoop登录,切换到root用户拷贝)
[[email protected] ~] sudo scp /etc/profile hdp-02:/etc/ [[email protected] ~] sudo scp /etc/profile hdp-03:/etc/ [[email protected] ~] sudo scp /etc/profile hdp-04:/etc/ |
9. 格式化namenode(是对namenode进行初始化)
[[email protected] ~] hdfs namenode -format 或者[[email protected] ~] hadoop namenode -format 18/01/05 21:42:33 INFO common.Storage:Storage directory /home/hadoop/hdpdata/dfs/name has been successfully formatted. 18/01/05 21:42:33 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 |
10. 配置免密登录
[[email protected] ~]$ ssh-****** [[email protected] ~]$ ssh-copy-id hdp-01 [[email protected] ~]$ ssh-copy-id hdp-02 [[email protected] ~]$ ssh-copy-id hdp-03 [[email protected] ~]$ ssh-copy-id hdp-04 |
11. 找到hadoop安装目录下的/etc/hadoop/slaves,将要启动的datenode、nodeManager加入到这个文件中
[[email protected] hadoop]$ vi slaves hdp-02 hdp-03 hdp-04 |
现在就可以启动hadoop了。以上的文档,都在本人的机器上调试通过,所整理的文档也是将输入命令记录下来。下一篇将介绍hadoop的集群之上的hive的安装