Hadoop3 :
(2条消息) hadoop 3.2.1集群高可用(HA)搭建_半斤米粉闯天下的博客-CSDN博客
(2条消息) Hadoop全面讲解(三)Hadoop+yarn高可用_束安的博客-CSDN博客
Zookeeper安装
服务器IP | 主机名 | myid的值 |
---|---|---|
192.168.174.100 | node01 | 1 |
192.168.174.110 | node02 | 2 |
192.168.174.120 | node03 | 3 |
第一步:下载zookeeeper的压缩包,下载网址如下
http://archive.apache.org/dist/zookeeper/
我们在这个网址下载我们使用的zk版本为3.4.9
下载完成之后,上传到我们的linux的/export/softwares路径下准备进行安装
第二步:解压
解压zookeeper的压缩包到/export/servers路径下去,然后准备进行安装
1 | cd /export/software |
第三步:修改配置文件
第一台机器修改配置文件
1 | cd /export/servers/zookeeper-3.4.9/conf/ |
vim zoo.cfg
1 | dataDir=/export/servers/zookeeper-3.4.9/zkdatas |
第四步:添加myid配置
在第一台机器的
/export/servers/zookeeper-3.4.9/zkdatas /这个路径下创建一个文件,文件名为myid ,文件内容为1
echo 1 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第五步:安装包分发并修改myid的值
安装包分发到其他机器
第一台机器上面执行以下两个命令
scp -r /export/servers/zookeeper-3.4.9/ node02:/export/servers/
scp -r /export/servers/zookeeper-3.4.9/ node03:/export/servers/
第二台机器上修改myid的值为2
echo 2 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第三台机器上修改myid的值为3
echo 3 > /export/servers/zookeeper-3.4.9/zkdatas/myid
第六步:三台机器启动zookeeper服务
三台机器启动zookeeper服务
这个命令三台机器都要执行
/export/servers/zookeeper-3.4.9/bin/zkServer.sh start
查看启动状态
/export/servers/zookeeper-3.4.9/bin/zkServer.sh status
eNode | 是 | 否 | 否 |
---|---|---|---|
dataNode | 是 | 是 | 是 |
ResourceManager | 是 | 否 | 否 |
NodeManager | 是 | 是 | 是 |
Hadoop安装
第一步:上传apache hadoop包并解压
解压命令
1 | cd /export/softwares |
第二步:修改配置文件
修改core-site.xml
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | <configuration> |
修改hdfs-site.xml
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | <configuration> |
修改hadoop-env.sh
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | export JAVA_HOME=/export/servers/jdk1.8.0_141 |
修改mapred-site.xml
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | <configuration> |
修改yarn-site.xml
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | <configuration> |
修改mapred-env.sh
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | export JAVA_HOME=/export/servers/jdk1.8.0_141 |
修改slaves
修改slaves文件,然后将安装包发送到其他机器,重新启动集群即可
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/etc/hadoop |
1 | node01 |
第一台机器执行以下命令
1 | mkdir -p /export/servers/hadoop-2.7.5/hadoopDatas/tempDatas |
安装包的分发
第一台机器执行以下命令
1 | cd /export/servers/ |
第三步:配置hadoop的环境变量
三台机器都要进行配置hadoop的环境变量
三台机器执行以下命令
1 | vim /etc/profile |
1 | export HADOOP_HOME=/export/servers/hadoop-2.7.5 |
配置完成之后生效
1 | source /etc/profile |
分发Hadoop
scp -r xxx xxx
第四步:启动集群
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个模块。
注意: 首次启动 HDFS 时,必须对其进行格式化操作。 本质上是一些清理和
准备工作,因为此时的 HDFS 在物理上还是不存在的。
hdfs namenode -format 或者 hadoop namenode –format
准备启动
第一台机器执行以下命令
1 | cd /export/servers/hadoop-2.7.5/ |
三个端口查看界面
http://node01:50070/explorer.html#/ 查看hdfs
http://node01:8088/cluster 查看yarn集群
http://node01:19888/jobhistory 查看历史完成的任务
Hive 的安装
这里我们选用hive的版本是2.1.1
下载地址为:
http://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz
下载之后,将我们的安装包上传到第三台机器的/export/softwares目录下面去
第一步:上传并解压安装包
将我们的hive的安装包上传到第三台服务器的/export/softwares路径下,然后进行解压
1 | cd /export/softwares/ |
第二步:安装mysql
已安装跳过
第一步:在线安装mysql相关的软件包
yum install mysql mysql-server mysql-devel
第二步:启动mysql的服务
/etc/init.d/mysqld start
第三步:通过mysql安装自带脚本进行设置
/usr/bin/mysql_secure_installation
第四步:进入mysql的客户端然后进行授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
第三步:修改hive的配置文件
修改hive-env.sh
1 | cd /export/servers/apache-hive-2.1.1-bin/conf |
1 | HADOOP_HOME=/export/servers/hadoop-2.7.5 |
修改hive-site.xml
1 | cd /export/servers/apache-hive-2.1.1-bin/conf |
1 |
|
第四步:添加mysql的连接驱动包到hive的lib目录下
hive使用mysql作为元数据存储,必然需要连接mysql数据库,所以我们添加一个mysql的连接驱动包到hive的安装目录下,然后就可以准备启动hive了
将我们准备好的mysql-connector-java-5.1.38.jar 这个jar包直接上传到/export/servers/apache-hive-2.1.1-bin/lib
这个目录下即可
至此,hive的安装部署已经完成,接下来我们来看下hive的三种交互方式
第五步:配置hive的环境变量
node03服务器执行以下命令配置hive的环境变量
1 | sudo vim /etc/profile |
1 | export HIVE_HOME=/export/servers/apache-hive-2.1.1-bin |
Sqoop安装
…
总结
一、Hadoop环境搭建
1、伪分布式
1)解压hadoop包 tar -zxvf hadoop….2.6.0.gz -C /usr/local/src
2) cd /usr/local/src mv hadoop.2.6.0… hadoop
3) 配置环境变量:
vim /root/.bash_profile
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /root/.bash_profile
4) 输入 hadoop version查看是否成功
5)开始修改hadoop相关配置文件(/usr/local/src/hadoop/etc/hadoop/)
a> hadoop-env.sh 改jdk环境变量位置
b> core-site.xml
1 | <configuration> |
c> hdfs-site.xml
d> mapred-site.xml(需要先复制一个出来)
e> yarn-site.xml
6) 配置完毕之后,格式化namenode
hdfs namenode -format
7) 启动hadoop
a》简单粗暴型:start-all.sh 停止:stop-all.sh
b》单独启动namenode和datanode、resourcemanager
start-dfs.sh
start-yarn.sh
c》单一节点启动:
namenode ---- hadoop-daemon.sh start namenode
datanode --- hadoop-daemon.sh start datanode
8)启动完毕之后,使用浏览器访问虚拟机中的IP对应点 hadoop文件系统界面:
http://192.168.xx.xxx:50070
2、分布式
删掉刚才存储元数据的文件夹
1) hdfs-site.xml修改副本数量,如3
2) slaves文件,修改datanode的节点
3)将hadoop完全拷贝至其他机器上
4)环境变量文件也需要拷贝,并且source一下
5)格式化hadoop
6)启动
测试:在本地创建一个文本文件,随便放入一些单词,以空格分开
a》将本地文件上传至已经启动的hdfs中 hdfs dfs -put /本地目录/本地文件.txt /
b》运行mapreduce示例(/usr/local/src/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar)
hadoop jar hadoop-mapreduce-examples-2.6.0.jar wordcount /hello.txt /test1
注意:/hello.txt是hdfs中的文件路径和名称
/test1是mapreduce结果输出到hdfs的目录,该目录存在则直接报错,所以该目录不能存在
3、zookeeper(集群之间进行协调管理,同步,故障检测等作用)
1)解压zookeeper到/usr/local/src目录下,重命名
2)配置环境变量,并且生效
3)配置文件: zoo_sample.cfg拷贝一个
cp zoo_sample.cfg zoo.cfg
修改内容:
dataDir=/usr/local/src/zookeeper/zkdata/data (自己创建的数据存放目录)
dataLogDir=/usr/local/src/zookeeper/zkdata/log (自己创建的日志目录)
server.1=主机名1:2888:3888 (集群配置)
server.2=主机名2:2888:3888 (集群配置)
server.3=主机名3:2888:3888 (集群配置)
4)在刚才配置的dataDir目录下新建一个 名为myid的文件,vim myid
在里面写上数字编号:1
5)将zookeeper远程拷贝至其他机器上。
6)修改拷贝后其他机器上zookeeper中myid的编号
7)将环境变量也同步拷贝到其他机器上,并且在其他机器上source一下
8)分别在集群机器上启动zookeeper:
启动: zkServer.sh start
查看状态: zkServer.sh status
停止: zkServer.sh stop
4、高可用