Hadoop集群搭建和配置

一、jdk安装和配置环境

  • (一)Windows:

     	1.jdk安装
     		jdk工具来源:[http://www.oracle.com]
     		JDK(java开发工具包)+ JRE(java运行环境)
     	2.jdk配置环境
     		进入系统:高级系统设置---》环境变量---》系统变量---》新建---》
     		环境变量配置:变量名:JAVA_HOME,变量值:jdk安装路径
     							   变量名:CLASS_HOME,变量值:,%JAVA_HOME%;
     							  path:前面加上%JAVA_HOME%:
         验证:开始菜单---》运行---》输入CMD
     			  java -version,javac -version	
    
  • (二) Linux:

     	1、 上传 jdk-8u73-linux-x64.tar.gz
     	2、 解压到/usr/local 目录下
     			tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
     	3、 配置环境变量
     		    a)  vi /etc/profile
     			b)  在最后加入两行:
     				export JAVA_HOME=/usr/local/jdk1.8.0_73
     				export PATH=$PATH:$JAVA_HOME/bin
     			c)  保存退出
     	4、 source /etc/profile
     	5、 检测是否安装成功,输入命:java -version
    

二、hadoop集群搭建

  • (一)基础集群环境准备

     	1.修改主机名
     		vi /etc/sysconfig/network(在root用户下,下同)
     		 或 sudo vi /etc/sysconfig/network(在普通用户下,下同)
     		修改:NETWORKING=YES
     			 HOSTNAME=主机名
     	2.设置系统默认启动级别
     		vi /etc/inittab
     		修改:id:3:initdefault:
     		3:多用户模式,不启动图形界面
     		默认为5:图形界面模式
     	3.配置hadoop用户sudoer权限
     		vi /etc/sudoers
     		找到:root ALL=(ALL) ALL
     		添加:hadoop  ALL=(ALL) ALL
     	4.配置IP
     		vi /etc/sysconfig/network-scripts/ifcfg-eth0
     		修改:IPADDR=IP地址
     		重启网路服务:service network restart
     	5.关闭防火墙/关闭selinux
     		关闭防火墙:service iptables stop
     		关闭selinux:
     		vi /etc/selinux/config
     		修改:SELINUX=disabled
     	6.添加内网域名映射
     		vi /etc/hosts
     		添加:IP地址   主机名(如:192.168.2.101    hadoop01)
     	7.安装jdk
     		1) 上传 jdk-8u73-linux-x64.tar.gz
     		2) 解压到/usr/local 目录下
     				tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
     		3) 配置环境变量
     			a)  vi /etc/profile
     			b)  在最后加入两行:
     				export JAVA_HOME=/usr/local/jdk1.8.0_73
     				export PATH=$PATH:$JAVA_HOME/bin
     			c)  保存退出
     		4) source /etc/profile
     		5) 检测是否安装成功,输入命令:java -version
     	8.同步服务器时间(先更改时区)
     		ntpdate 时间同步服务器
     		sudo ntpdate ntpl.aliyun.com
     	9.配置免密登录两种方式
     		1)第一种
     			a)  在 hadoop 登录状态下,输入命令 ssh-keygen 或者 ssh-keygen -t rsa
     			b)  之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件
     			c)  复制公钥文件到授权列表
     					cat ./id_rsa.pub >> authorized_keys
     			d)  修改文件权限
     					chmod 600 ./authorized_keys
     			e)  将该授权文件 authorized_keys 文件复制到 slave 节点
     					scp ./authorized_keys hadoop@hadoop02:~/.ssh/
     			f)  检查免密登录是否设置成功
     					ssh hadoop02
     					看看是不是能登录进入 hadoop02 的服务器
     		2)第二种
     			a)  在 hadoop 登录状态下,输入命令 ssh-keygen 或者 ssh-keygen -t rsa
     			b)  之后你会发现,在/home/hadoop/.ssh 目录下生成了公钥文件
     			c)  使用一个更简单的方式,使用命令:
     					ssh-copy-id hadoop02
     					建立 hadoop01 到 hadoop02 的免密登录
    
  • (二)集群环境安装

  • 伪分布式模式安装

     	基础集群环境准备完毕
     	1. 修改 hadoop-env.sh 配置文件,添加 jdk 安装目录配置
     			vi hadoop-env.sh
     			export JAVA_HOME=/home/hadoop/apps/jdk1.8.0_73
     	2. 修改 core-site.xml   核心文件配置文件    三个模块的公共的配置
     			vi core-site.xml
     		<property>
     			配置项的名字 不可以改的 文件系统的默认访问路径
     			<name>fs.defaultFS</name>  
     			<value>hdfs://model:9000</value>  配置项的值
     		</property>
     		hdfs://model(主机名):9000(端口号)
     		jdbc:mysql://localhost
     	3.	hdfs-site.xml    hdfs的相关配置
     		<property>
     			<name>dfs.replication</name>  文件存储的分数
     			<value>1</value>
     		</property>
     	4.	cp mapred-site.xml.template mapred-site.xml
     		<property>
     			<name>mapreduce.framework.name</name>  mapreduce程序的资源调度框架
     			<value>yarn</value>
     		</property>
     	5.	yarn-site.xml
     		<property>
     	        <name>yarn.nodemanager.aux-services</name>
     	        <value>mapreduce_shuffle</value>
     	    </property>					
     	6. 修改 slaves
     			vi slaves
     			hadoop01
     			从节点的信息  主机
     			一行一个主机名   主机名输完之后不要加空格  回车也不要
     	7. 添加 hadoop 环境变量
     			export HADOOP_HOME=/home/hadoop/apps/hadoop-2.6.5
     			export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
     	8. 格式化 namenode
     			hadoop namenode -format
     			最后出现successful formatted,则表示格式化成功
     	9. 启动 hdfs
     			start-dfs.sh
     			jps查看进程有:namenode,datanode,secondarynamenode
     	10. 启动 yarn
     			start-yarn.sh
     			jps查看进程有:namenode,datanode,secondarynamenode,nodemanager,resourcemanager
     	11. 检查集群启动是否成功
     			利用 jps 工具检测各进程是否启动成功
     			Web UI 查看
     			HDFS:http://hadoop01:50070/
     			MapReduce:http://hadoop01:8088/cluster/cluster
    
  • 完全分布式安装

     	基础集群环境准备完毕
     	hadoop02  hadoop03远程发送
     			scp -r jdk1.8.0_73 hadoop02:/home/hadoop/apps/
     			scp -r jdk1.8.0_73 hadoop03:$PWD
     	sudo scp /etc/profile hadoop02:/etc/
     			sudo scp /etc/profile hadoop03:/etc/
     	source /etc/profile
     	1.上传安装包,并解压到相关目录
     			put c:/hadoop-2.6.5-centos-6.7.tar.gz
     			tar -zxvf hadoop-2.6.5-centos-6.7.tar.gz -C /home/hadoop/apps
     	2.修改 hadoop-env.sh
     			export JAVA_HOME=/usr/java/jdk1.8.0_73
     	3.修改 core-site.xml
     			<property>
     	            配置项的名字 不可以改的 文件系统的默认访问路径
     	            <name>fs.defaultFS</name>  
     	            <value>hdfs://model:9000</value>  配置项的值
     	        </property>
     	4.修改 hdfs-site.xml
     			<property>
     				<name>dfs.namenode.name.dir</name>
     				<value>/home/hadoop/hadoopdata/name</value>
     			<description>为了保证元数据的安全一般配置多个不同目录</description>
     			</property>
     			<property>
     				<name>dfs.datanode.data.dir</name>
     				<value>/home/hadoop/hadoopdata/data</value>
     			<description>datanode 的数据存储目录</description>
     			</property>
     			<property>
     				<name>dfs.replication</name>
     				<value>2</value>
     				<description>HDFS 的数据块的副本存储个数</description>
     			</property>
     			<property>
     				<name>dfs.secondary.http.address</name>
     				<value>hadoop03:50090</value>
     				<description>secondarynamenode 运行节点的信息,和 namenode 不同节点  </description>
     			</property>
     	5.修改 mapred-site.xml(集群只有 mapred-site.xml.template,可以从这个文件进行复
     		制,或者直接改名也可)
     		<property>
     			<name>mapreduce.framework.name</name>
     			<value>yarn</value>
     		</property>
     	6.修改 yarn-site.xml
     		<property>
     			<name>yarn.resourcemanager.hostname</name>
     			<value>hadoop04</value>
     		</property>
     		<property>
     			<name>yarn.nodemanager.aux-services</name>
     			<value>mapreduce_shuffle</value>
     			<description>YARN 集群为 MapReduce 程序提供的 shuffle 服务</description>
     		</property>
     	7.修改 slaves 文件,添加以下内容,该内容是从节点列表
     		hadoop02
     		hadoop03
     		hadoop04
     	8.分发安装包到各个节点,Hadoop 集群的每个节点都需要安装 Hadoop 安装包
     		scp -r hadoop-2.6.5 hadoop02:$PWD
     		scp -r hadoop-2.6.5 hadoop03:$PWD
     	9.在 HDFS 主节点上执行命令进行初始化 namenode
     		hadoop namenode -format
     	10.在 HDFS 上的主节点启动 HDFS,其实在哪里启动并无关系
     		start-dfs.sh
     	11.在 YARN 主节点启动 YARN,要求在 YARN 主节点进行启动,否则 ResourceManager 主进
     		程会启动不成功,需要额外手动启动
     		start-yarn.sh
     	12.检测 hdfs 是否启动成功
     		hadoop fs -ls /
    
  • 高可用模式安装(HA)

     	基础集群环境准备完毕
     	1. 找到官网下载 hbase 安装包 hbase-1.2.4-bin.tar.gz
     			[http://hbase.apache.org/1.2/book.html]
     	2. 上传安装包到服务器,并解压到对应的安装目录
     			 tar -zxvf hbase-1.2.4-bin.tar.gz -C /home/hadoop/apps/
     	3.  vi hbase-env.sh
     			export JAVA_HOME=/usr/local/jdk1.8.0_73,表示修改为自己的 jdk 目录
     			export HBASE_MANAGES_ZK=false,表示不引用 hbase 自带的 zookeeper,用我们自己安装的,保存退出
     	4. 修改 core-site.xml
     		<configuration> 
     			<!-- 指定 hdfs 的 nameservice 为 bd1804 --> 
     			<property> 
     				<name>fs.defaultFS</name> 
     				<value>hdfs://bd1804/</value> 
     			</property>  
     			<!-- 指定 hadoop 工作目录 --> 
     			<property> 
     				<name>hadoop.tmp.dir</name> 
     				<value>/home/centos/data/hadoopdata/</value> 
     			</property>  
     			<!-- 指定 zookeeper 集群访问地址 --> 
     			<property> 
     				<name>ha.zookeeper.quorum</name> 
     				<value>centos01:2181,centos02:2181,centos03:2181</value> 
     			</property> 
     		</configuration>
     	5.修改 hdfs-site.xml
     		<configuration> 
     			<!-- 指定副本数 --> 
     			<property> 
     			    <name>dfs.replication</name> 
     			    <value>2</value> 
     			</property>  
     			
     			<!--指定 hdfs 的 nameservice 为 bd1804,需要和 core-site.xml 中保持一致--> 
     			<property> 
     			    <name>dfs.nameservices</name> 
     			    <value>bd1804</value> 
     				<!-- bd1804 下面有两个 NameNode,分别是 nn1,nn2(namenode的映射) --> 
     			<property> 
     			<property>
     			    <name>dfs.ha.namenodes.bd1804</name> 
     			    <value>nn1,nn2</value> 
     			</property> 
     			
     			<!-- nn1 的 RPC 通信地址 --> 
     			<property> 
     			    <name>dfs.namenode.rpc-address.bd1804.nn1</name> 
     			    <value>centos01:9000</value> 
     			</property> 
     			 
     			<!-- nn1 的 http 通信地址 --> 
     			<property> 
     			    <name>dfs.namenode.http-address.bd1804.nn1</name> 
     			    <value>centos01:50070</value> 
     			</property> 
     			 
     			<!-- nn2 的 RPC 通信地址 --> 
     			<property> 
     			    <name>dfs.namenode.rpc-address.bd1804.nn2</name> 
     			    <value>centos02:9000</value> 
     			</property> 
     			 
     			<!-- nn2 的 http 通信地址 --> 
     			<property> 
     			    <name>dfs.namenode.http-address.bd1804.nn2</name> 
     			    <value>centos02:50070</value> 
     			</property> 
     			
     			 
     			<!-- 指定 NameNode 的 edits 元数据在 JournalNode 上的存放位置 qjournal:协议--> 
     			<property> 
     			    <name>dfs.namenode.shared.edits.dir</name> 
     			<value>qjournal://centos01:8485;centos02:8485;centos03:8485/bd1804</value> 
     			</property> 
     			 
     			<!-- 指定 JournalNode 在本地磁盘存放数据的位置 --> 
     			<property> 
     			    <name>dfs.journalnode.edits.dir</name> 
     			    <value>/home/centos/data/hadoopdata/journaldata</value> 
     			</property> 
     			 
     			<!-- 开启 NameNode 失败自动切换 --> 
     			<property> 
     			    <name>dfs.ha.automatic-failover.enabled</name> 
     			    <value>true</value> 
     			</property> 
     			 
     			<!-- 配置失败自动切换实现方式 -->
     			<!-- 此处配置在安装的时候切记检查不要换行--> 
     			<property> 
     			    <name>dfs.client.failover.proxy.provider.bd1804</name> 
     				<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 
     			</property> 
     			 
     			<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--> 
     			<property> 
     			    <name>dfs.ha.fencing.methods</name> 
     			    <value> 
     			    sshfence 
     			    shell(/bin/true) 
     			    </value> 
     			</property> 
     			 
     			<!-- 使用 sshfence 隔离机制时需要 ssh 免登陆 --> 
     			<property> 
     			    <name>dfs.ha.fencing.ssh.private-key-files</name> 
     			    <value>/home/centos/.ssh/id_rsa</value> 
     			</property> 
     			 
     			<!-- 配置 sshfence 隔离机制超时时间 毫秒 --> 
     			<property> 
     			    <name>dfs.ha.fencing.ssh.connect-timeout</name> 
     			    <value>30000</value> 
     			</property> 
     			</configuration> 
     	6.修改 mapred-site.xml 
     			<configuration> 
     			
     			<!-- 指定 mr 框架为 yarn 方式 --> 
     			<property> 
     			    <name>mapreduce.framework.name</name> 
     			    <value>yarn</value> 
     			</property> 
     			 
     			 <!-- 设置 mapreduce 的历史服务器地址和端口号 --> 
     			 <property>   
     			  <name>mapreduce.jobhistory.address</name>   
     			  <value>centos02:10020</value> 
     			 </property>   
     			 
     			 <!-- mapreduce 历史服务器的 web 访问地址 --> 
     			 <property>   
     			  <name>mapreduce.jobhistory.webapp.address</name>   
     			  <value>centos02:19888</value>   
     			 </property> 
     			 
     			</configuration>
     	7.修改 yarn-site.xml
     			<configuration> 
     			<!-- 开启 RM 高可用 --> 
     			<property> 
     			    <name>yarn.resourcemanager.ha.enabled</name> 
     			    <value>true</value> 
     			</property> 
     			 
     			<!-- 指定 RM 的 cluster id --> 
     			<property> 
     			    <name>yarn.resourcemanager.cluster-id</name> 
     			    <value>yrc</value> 
     			</property> 
     			 
     			<!-- 指定 RM 的名字 --> 
     			<property> 
     			    <name>yarn.resourcemanager.ha.rm-ids</name> 
     			    <value>rm1,rm2</value> 
     			</property> 
     			 
     			<!-- 分别指定 RM 的地址 --> 
     			<property> 
     			    <name>yarn.resourcemanager.hostname.rm1</name> 
     			    <value>centos02</value> 
     			</property> 
     			 
     			<property> 
     			    <name>yarn.resourcemanager.hostname.rm2</name> 
     			    <value>centos03</value> 
     			</property> 
     			 
     			<!-- 指定 zk 集群地址 --> 
     			<property> 
     			    <name>yarn.resourcemanager.zk-address</name> 
     			    <value>centos01:2181,centos02:2181,centos03:2181</value> 
     			</property> 
     			 
     			<!-- 要运行 MapReduce 程序必须配置的附属服务 --> 
     			<property> 
     			    <name>yarn.nodemanager.aux-services</name> 
     			    <value>mapreduce_shuffle</value> 
     			</property> 
     			 
     			<!-- 开启 YARN 集群的日志聚合功能 --> 
     			<property> 
     			    <name>yarn.log-aggregation-enable</name> 
     			    <value>true</value> 
     			</property> 
     			 
     			<!--  YARN 集群的聚合日志最长保留时长 --> 
     			<property> 
     			    <name>yarn.log-aggregation.retain-seconds</name> 
     			    <value>86400</value> 
     			</property> 
     			 
     			<!-- 启用自动恢复 --> 
     			<property> 
     			    <name>yarn.resourcemanager.recovery.enabled</name> 
     			    <value>true</value> 
     			</property> 
     			 
     			<!-- 制定 resourcemanager 的状态信息存储在 zookeeper 集群上--> 
     			<property> 
     			    <name>yarn.resourcemanager.store.class</name> 
     				<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> 
     			</property>
     			 
     			</configuration>
     	8.vi hbase-site.xml
     		增加以下配置:
     			<configuration>
     				<property>
     				<!-- 指定 hbase 在 HDFS 上存储的路径 -->
     					<name>hbase.rootdir</name>
     					<value>hdfs://myha01/hbase</value>
     				</property>
     				<property>
     				<!-- 指定 hbase 是分布式的 -->
     					<name>hbase.cluster.distributed</name>
     					<value>true</value>
     				</property>
     				<property>
     				<!-- 指定 zk 的地址,多个用“,”分割 -->
     					<name>hbase.zookeeper.quorum</name>
     					<value>hadoop03:2181,hadoop04:2181,hadoop05:2181</value>
     				</property>
     			</configuration>
     	9.修改 regionservers
     			vi regionservers
     			hadoop02
     			hadoop03
     			hadoop04
     			hadoop05
     	10.修改 backup-masters,指定备用的主节点
     			hadoop05
     	11.最最重要的一步,要把 hadoop 的 hdfs-site.xml 和 core-site.xml 放到 hbase/conf 下
     			cp ~/apps/hadoop-2.6.5/etc/hadoop/core-site.xml ~/apps/hbase-1.2.4/conf/
     			cp ~/apps/hadoop-2.6.5/etc/hadoop/hdfs-site.xml ~/apps/hbase-1.2.4/conf/
     	12.分发安装到各节点
     			scp -r hbase-1.2.4 root@hadoop02:/home/hadoop/apps/
     			scp -r hbase-1.2.4 root@hadoop03:/ home/hadoop /apps/
     			scp -r hbase-1.2.4 root@hadoop04:/ home/hadoop /apps/
     	13.同步时间
     	14.配置环境变量
     			vi ~/.bashrc
     			export HBASE_HOME=/home/hadoop/apps/hbase-1.2.4
     			export PATH=$PATH:$HBASE_HOME/bin
     			保存退出!!!别忘了执行 source ~/.bashrc,使配置生效	
     	15.启动 zookeeper 集群
     			zkServer.sh start	
     	16.启动 hdfs 集群
     			start-dfs.sh
     	17.启动 hbase
     			在主节点上启动:start-hbase.sh
     	18.查看启动是否正常,是否成功
     		1)检查各进程是否启动正常
     			主节点和备用节点都启动 hmaster 进程
     			各从节点都启动 hregionserver 进程
     		2)通过访问浏览器页面,格式为“主节点:16010”
     			http://hadoop02:16010/
     	19.如果有节点相应的进程没有启动,那么可以手动启动
     			hbase-daemon.sh start master
     			hbase-daemon.sh start regionserver
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值