Zookeeper+Hadoop+Hbase+Hive+Kylin+Nginx集群搭建二(Hadoop篇)

全文请看:https://blog.csdn.net/tktttt/article/details/108578804
大数据集群搭建安装包:https://download.csdn.net/download/tktttt/12879318
大数据集群搭建安装包2:https://download.csdn.net/download/tktttt/12879355
在前文的基础继续进行

三、搭建Hadoop集群

此处集群搭建我们不按host映射来,直接使用的ip

1.hadoop安装

首先,在/usr/local目录下创建hadoop文件夹,之后将hadoop安装到这里,安装之后进入hadoop文件夹:

cd /root        #进入/root文件夹
mkdir hadoop    #创建hadoop文件夹
cd software     #进入hadoop文件夹

之后,使用rz命令从本地将Hadoop安装包(本文使用的是hadoop-2.7.4.tar.gz)上传到该目录,与安装jdk时一样,传输完成之后进行解压:

tar -zvxf hadoop-2.7.4.tar.gz  #解压hadoop到当前目录

同时将hadoop加入环境变量,打开/root/.bash_profile文件:

vi /root/.bash_profile  #打开文件

如同安装jdk配置环境变量时一样进行操作,添加如下内容(路径按实际安装来):

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.4

保存后,执行以下命令使其生效:

source /root/.bash_profile

然后执行hadoop version来检查是否配置成功,若出现如下图这样的信息说明配置成功:
在这里插入图片描述

2.配置修改

  • 配置JAVA_HOME
    hadoop-env.sh
    mapred-env.sh
    yarn-env.sh
    对上述三个文件(位置都在Hadoop安装目录下的etc/hadoop下)都加入:
export JAVA_HOME=JAVA_HOME=/usr/local/java/jdk1.8.0_261
  • 修改hdfs-site.xml文件
    hdfs-site.xml文件位置如下:hadoop安装目录下的etc/hadoop目录下,打开该文件:
cd /usr/local/hadoop/hadoop-2.7.4/etc/hadoop/   #进入到该目录下
vi hdfs-site.xml                                #打开该文件

在hdfs-site.xml文件configuration标签内,添加如下内容:

<configuration>
    <!--指定hdfs中namenode的存储位置-->
    <property>
            <name>dfs.namenode.name.dir</name>
            <value>/usr/data/hadoop/namenode</value>
    </property>
    <!--指定hdfs中datanode的存储位置-->
    <property>
             <name>dfs.datanode.data.dir</name>
             <value>/usr/data/hadoop/datanode</value>
    </property>
    <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
    <property>
            <name>dfs.journalnode.edits.dir</name>
            <value>/usr/data/hadoop/journalnode</value>
    </property>
    <!--指定hdfs保存数据的副本数量-->
    <property>
             <name>dfs.replication</name>
             <value>3</value>
    </property>
    <property>
             <name>dfs.permissions.enabled</name>
             <value>false</value>
    </property>
    <property>
             <name>dfs.namenode.datanode.registration.ip-hostname-check</name>                   
             <value>false</value>
     </property>
</configuration>

创建上述的目录文件:

cd /usr
mkdir data
cd data
mkdir hadoop
cd hadoop
mkdir namenode datanode journalnode
  • 修改core-site.xml文件

该文件在相同的目录下,将core-site.xml文件中configuration标签修改为下述内容(其中IP为自己实际虚拟机IP,前面咱们一直没有将虚拟机IP设为静态IP,用的自有分配的IP,之后下文设置,原因就不说了):

<configuration>
   	<!--指定namenode的地址-->
   	<property>
        	<name>fs.defaultFS</name>
            <value>hdfs://192.168.88.129:9000</value>
   	</property>
   	<!--用来指定使用hadoop时产生文件的存放目录-->
   	<property>
        	<name>hadoop.tmp.dir</name>
        	<value>/usr/data/hadoop/tmp</value>
	</property>
	<!--指定zookeeper地址 (该条配置可先不设置,是后期配置hbase时做的更改,等安装好zookeeper后再设置)-->
	<property>
		<name>ha.zookeeper.quorum</name>
		<value>192.168.88.129:2181,192.168.88.130:2181,192.168.88.131:2181</value>
	</property>>
</configuration>
  • 修改mapred-site.xml文件

也在同目录下,如果没有,则创建:

cp mapred-site.xml.template mapred-site.xml

编辑:

vi mapred-site.xml

在文件标签configuration中输入:

<configuration>
	<!-- 指定mr框架为yarn方式 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>
  • 修改yarn-site.xml文件,将yarn-site.xml文件中configuration标签中内容修改为下述内容,IP应与core-site.xml中的一致:
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>192.168.88.129:8032</value>
	</property>

	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>192.168.88.129:8030</value>
	</property>

	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>192.168.88.129:8031</value>
	</property>

	<property>
		<name>yarn.resourcemanager.admin.address</name>
		<value>192.168.88.129:8033</value>
	</property>

	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>192.168.88.129:8088</value>
	</property>
  • 修改slaves文件,指定datanode

该slaves文件在相同的目录下,将文件修改为下述内容(看实际需要,自由添加配置IP,有几个说明有几个datanode):

192.168.88.129	#主节点IP(最好加上,让主节点启动datanode)
				#当然此处是节省虚拟机资源,实际应用另说
			 	#不加的话最好多配一台子节点
			 	#(即去掉129主节点这台,添加192.168.88.132,下文也自行进行相应更改)
			 	#(所以是一台主节点namenode三台子节点datanode,即总共四台虚拟机)
			 	#(本文是加上了主节点处的datanode和两台子节点的datanode,共三台)
			 	#此处配置三台datanode是为了符合上述hdfs-site.xml配置中设置的副本数
			 	#同时,也是为了之后的Hadoop集群动态缩容作准备
			 	#当副本数为3,且服役的节点datanode小于等于3时,
			 	#缩容的时候,节点是无法退役成功的,需要修改副本数后才能退役
192.168.88.130
192.168.88.131

此处可以设置一下系统快照做个备份,点击其中图标拍摄此虚拟机的快照(设置快照时,虚拟机要求处于关机状态),具体步骤这里就不赘述,可以查看设置快照和克隆
系统快照
完成快照后,会在虚拟机系统桌面形成一个光盘,即上文中系统桌面里的图标

3.克隆并配置其他虚拟机

1.关闭虚拟机
克隆虚拟机前,需要将克隆原虚拟机关闭,选择VMware菜单下:虚拟机->电源->关闭虚拟机,将虚拟机关闭
2.开始克隆
克隆节点1,选择VMware菜单下:虚拟机->管理->克隆,启动虚拟机克隆向导
克隆向导
点击下一步
克隆源
可以按照虚拟机中的当前状态,也可以按现有快照,点击下一步
克隆方法
选择创建完整克隆下一步
名称与位置
自定义名称和位置,位置最好是与原虚拟机别放同一个目录,避免冲突,点击完成,等待克隆完成,之后会在会在VMware主界面生成克隆的虚拟机实例,如下图所示:
实例
3.重复克隆
按之前配置的slaves文件中的个数,进行反复克隆
4.配置
此处将原虚拟机称为node,后来克隆的两台虚拟机分别称为node1、node2(只配置了两台),单纯为了之后书写方便,无实际意义;
VMware中通过用户账号进入node的系统界面,点击图中的有线设置
有线设置
点击下图中有线中齿轮图标:
设置
打开后,点击IPv4,选择手动,配置好自己的IP,如下图:
IPv4配置
IP应与core-site.xml中配置的一致,且应遵循以下配置范围:192.168.88.129-192.168.88.254之间,该范围由以下图中得来:
点击VMware菜单栏中的编辑中的虚拟网络编辑器,打开DHCP设置,查看到起始IP与结束IP
虚拟网络编辑器
node设置好后,node1与node2(即克隆出来的两台虚拟机)也是同理设置IP,IP分别应与slaves文件中配置的IP一致,即下图:(之后将129称为node,130为node1,131为node2)
slaves

4.启动测试

1.格式化
在node(原虚拟机)上,用root账户格式化namenode

hadoop namenode –format

2.启动测试
命令启动hdfs:start-dfs.sh #启动hdfs
命令启动yarn:start-yarn.sh #启动yarn
也可以直接运行:start-all.sh #启动全部
测试是否启动成功:在各个虚拟机上使用jps命令;
node上应该如图:
在这里插入图片描述
node1和node2(即其他虚拟机上)应该如图:
在这里插入图片描述
打开浏览器,分别输入192.168.88.129:50070,192.168.88.129:8088(此处IP应为实际设置的node的IP)进行查看,分别如图:
管理
应用
成功访问,且192.168.88.129:50070的页面处live nodes应为slaves中配置的个数(即克隆次数),本文此处为2,说明配置成功。

5.可能遇到的问题

1.启动hadoop,报错Error JAVA_HOME is not set and could not be found
解决办法:
(1)检查JAVA_HOME是否配置正确(伪分布式环境)
输入java –version,查看jdk是否安装成功;
输入export,查看jdk环境变量是否设置成功;
(2)在集群环境下,即使各结点都正确地配置了JAVA_HOME,也会报该错误
解决办法:
在hadoop-env.sh(文件位置:hadoop安装目录下的etc/hadoop下)中,再显示地重新声明一遍JAVA_HOME,将文件中的原本的JAVA_HOME注释掉改为下图中的(路径按实际jdk安装位置来):

# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/local/java/jdk1.8.0_261

将各虚拟机上的该文件均更改保存后,停止Hadoop(命令stop-all.sh),在node上进入到/usr/data/hadoop/namenode/中将产生的current文件夹删除,若是没有产生则省略这操作;
分别在node1和node2上进入/usr/data/hadoop/datanode/中将current文件夹删除,没有则省略这操作,然后重新进行4.启动测试中的步骤

2.启动hadoop时遇到Host key verification failed
可以参考此处

3.hadoop搭建好,启动服务后,无法从web界面访问50070
其实是防火墙未关闭,参考上文的关闭防火墙步骤

4.hadoop 不使用hostname,使用ip遇到的问题(Datanode denied communication with namenode because hostname cann)及解决方案
也就是说在namenode的hdfs-site.xml 里面添加下文代码即可:

	<property>
		<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
		<value>false</value>
	</property>

参考此处

将各虚拟机上的该文件均更改保存后,停止Hadoop(命令stop-all.sh),在node上进入到/usr/data/hadoop/namenode/中将产生的current文件夹删除,若是没有产生则省略这操作;
分别在node1和node2上进入/usr/data/hadoop/datanode/中将current文件夹删除,没有则省略这操作,然后重新进行4.启动测试中的步骤

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页