搭建Hadoop集群(二)
文章目录
- 1. 搭建HA的Hadoop集群
- 1. 创建另外两个虚拟机
- 2. 配置集群ssh免密码登录
- 4. 安装Hadoop包
- 5.另外两台机器上搭建hadoop
- 6.启动hdfs集群
- 7. hdfs管理界面(50070端口)
- 2. Hive 0.13.1安装
- 1. 安装hive包
- 2. 安装mysql
- 3. 安装zookeeper-3.4.5-cdh5.3.6
- 4. kafka_2.9.2-0.8.1集群搭建
- 1. 安装scala-2.11.4
- 2. 安装Kafka包
- 3. 启动kafka集群
- 5. 安装flume
【Task 2】搭建Hadoop集群(3day)
- 搭建HA的Hadoop集群并验证,3节点(1主2从),理解HA/Federation,并截图记录搭建过程
- 阅读Google三大论文,并总结
- Hadoop的作用(解决了什么问题)/运行模式/基础组件及架构
- 学会阅读HDFS源码,并自己阅读一段HDFS的源码(推荐HDFS上传/下载过程)【可选】
- Hadoop中各个组件的通信方式,RPC/Http等
- 学会写WordCount(Java/Python-Hadoop Streaming),理解分布式/单机运行模式的区别
- 理解MapReduce的执行过程
- Yarn在Hadoop中的作用
1. 搭建HA的Hadoop集群
1. 创建另外两个虚拟机
为了搭建Hadoop集群,需要多个虚拟机实现,这里创建三个虚拟机,为了减少创建虚拟机的麻烦,我这里直接适用了虚拟机的克隆(复制)功能,复制完成后,修改网卡文件中的ip就可以了,由于第一个虚拟机设置的ip为192.168.1.105,复制后的两个分别为192.168.1.106和192.168.1.107。
同样地,分别连接上Xshell就可以了。
三个虚拟机的名字分别为SUN,SUN1,SUN2。
这里我发现我的三台虚拟机的主机名都一样, 都是[root@SUN],可能是复制过来的原因,因此为了有所区别,在这里改一下主机名,分别为spark1,spark2,spark3。
Centos7直接使用命令:hostnamectl;重点:重启生效
~]# hostnamectl set-hostname #####
如果是临时使用的,则使用~]# hostname ##### 即可;
2. 配置集群ssh免密码登录
- 在三台机器的/etc/hosts文件中,都配置对三台机器的p-hostname的映射。
vi /etc/hosts
都在Xshell中操作
2. 首先在三台机器上配置对本机的ssh免密登录,生成本机的公匙,过程中不断敲回车即可,ssh-keygen命令默认将公匙放在/root/.ssh目录下
ssh-keygen -t rsa
将公匙复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了
cd /root/.ssh/
cp id_rsa.pub authorized_keys
ssh spark1
- 接着配置三台机器互相之间的ssh免密码登录。
在spark1中,使用ssh-copy-id -i spark2匹配spark2,使用ssh-copy-id -i spark3匹配spark3;在spark2,spark3中,做法相同。(将本机的公匙拷贝到指定机器的authorized_keys文件中)
4. 安装Hadoop包
- 下载Hadoop包,下载地址:https://pan.baidu.com/s/1drI1TO
参考:hadoop-2.5.0-cdh5.3.6集群搭建
安装目录为:/usr/local
将下载的hadoop-2.5.0-cdh5.3.6.tar.gz,上传到/usr/local目录下。
- 将hadoop包进行解压缩
tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz
- 对hadoop目录进行重命名
mv hadoop-2.5.0-cdh5.3.6 hadoop
- 配置hadoop相关环境变量
#配置环境变量
vi ~/.bashrc
#添加hadoop环境变量
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin/bin:$HADOOP_HOME/sbin#使配置的环境变量生效
source ~/.bashrc
这里特别说明下,由于我将jdk安装到了 /usr/lib/jvm下,所以我还需要对环境变量再进行修改。`
将上面一行改一下
export JAVA_HOME=/usr
5. 修改配置文件
以下配置文件在:/usr/local/hadoop/etc/hadoop/目录下
修改core-site.xml
cd hadoop/etc/hadoop
vi core-site.xml
<property><name>fs.default.name</name><value>hdfs://spark1:9000</value>
</property>
修改hdfs-site.xml
vi hdfs-site.xml
<property><name>dfs.name.dir</name><value>/usr/local/data/namenode</value>
</property>
<property><name>dfs.data.dir</name><value>/usr/local/data/datanode</value>
</property>
<property><name>dfs.tmp.dir</name><value>/usr/local/data/tmp</value>
</property>
<property><name>dfs.replication</name><value>2</value>
</property>
属性说明:
dfs.replication:hdfs副本数。
总共3个节点,1个master,2个slave。所以设置成2个block副本
修改mapred-site.xml
重命名mapred-site.xml.template为mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>
修改yarn-site.xml
vi yarn-site.xml
<property><name>yarn.resourcemanager.hostname</name><value>spark1</value>
</property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
修改slaves文件
vi slaves
spark2
spark3
5.另外两台机器上搭建hadoop
使用如上spark1上配置hadoop,在另外两台机器上搭建hadoop。可以使用scp命令将spark1上面的hadoop安装包和~/.bashrc配置文件都拷贝到spark2、spark3。
cd /usr/local
scp -r hadoop root@spark2:/usr/local
scp ~/.bashrc root@spark2:~/
在spark2上执行
配置环境的文件已经拷过来了。
接着在spark2上执行
#对.bashrc文件进行source,以让它生效。
source ~/.bashrc
#创建data目录。
mkdir /usr/local/data
将sparkproject1上的hadoop复制到spark3
按照上面同样的步骤,同样的方式将spark1上面的hadoop安装包和~/.bashrc配置文件都拷贝到spark3。
6.启动hdfs集群
格式化namenode
在spark1上执行以下命令
hdfs namenode -format
启动hdfs集群
start-dfs.sh
改bug改了好久,都是因为不认真,不过终于搞定了
7. hdfs管理界面(50070端口)
如果登录不上,可以在hdfs-site.xml中,添加开放端口的绑定IP:
<property><name>dfs.http.address</name><value>0.0.0.0:50070</value></property>
我这里无法用过spark1:50070连接,但是可以通过ip连接
Hadoop
测试hdfs
vi hello.txt
hello world
hdfs dfs -put hello.txt /hello.txt
上传成功
重点:一定要关闭linux防火墙
几个比较有用的命令
#查看端口连接情况
netstat -an|grep 50070
删除data下所有文件
rm -rf /usr/local/data/
创建data目录
mkdir /usr/local/data/
开启所有进程
start-dfs.sh
关闭防火墙
systemctl stop firewalld.service
禁止防火墙开机启动
systemctl disable firewalld.service
yum install net-tools
8088端口
yarn
2. Hive 0.13.1安装
1. 安装hive包
- 下载后传输到、usr/local目录下
- 解压缩hive包:
tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz
- 重命名hive目录
mv hive-0.13.1-cdh5.3.6 hive
- 配置hive相关的环境变量
vi ~/.bashrc
export JAVA_HOME=/usr
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:HIVE_HONE/bin
source ~/.bashrc
2. 安装mysql
参考:黑桃
- 在spark1上安装mysql
#查看可用的内存
free
- 使用yum安装mysql server
yum install -y mysql-server
service mysqld start
chkconfig mysqld on
安装时提示No package mysql-server available.
百度解决方案:https://typecodes.com/web/centos7yuminstallmysql5.html
https://blog.csdn.net/gongchenupc/article/details/68066990
亲测有效
- 使用yum安装mysql connector
yum install -y mysql-connector-java
- 将mysql connectoor拷贝到hive的lib包中
cp /usr/share/java/mysql-connector-java.jar /usr/local/hive/lib
- 在mysql上创建hive元数据库,创建hive账号,并对hive进行授权
create database if not exists hive_metadata;
grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';
grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';
flush privileges;
use hive_metadata;
- 复制hive-default.xml.template为hive-site.xml
mv hive-default.xml.template hive-site.xml
<property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value><description>JDBC connect string for a JDBC metastore</description>
</property>
<property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description>
</property>
<property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>hive</value><description>password to use against metastore database</description>
</property>
- 配置hive-env.sh
mv hive-env.sh.template hive-env.sh
- 配置hive-config.sh
vi /usr/local/hive/bin/hive-config.sh
export JAVA_HOME=/usrexport HIVE_HOME=/usr/local/hiveexport HADOOP_HOME=/usr/local/hadoop
测试的时候出现了问题,找不到hive命令
使用echo $PATH来解决bash: command not found
找到配置文件 ~/.bashrc发现我把HIVE_HOME中的M写成了N,一直没发现,改过来就正常了。
9. 测试hive
创建一个空的users.txt文件
vi users.txt
hivecreate table users(id int, name string);load data local inpath '/usr/local/users.txt' into table users;select name from users;
3. 安装zookeeper-3.4.5-cdh5.3.6
1.将zookeeper-3.4.5-cdh5.3.6.tar.gz传输到/usr/local目录下
解压
tar zxvf zookeeper-3.4.5-cdh5.3.6.tar.gz
删除压缩包
rm -rf zookeeper-3.4.5-cdh5.3.6.tar.gz
重命名
mv zookeeper-3.4.5-cdh5.3.6 zk
- 配置环境变量
vi ~/.bashrcexport ZOOKEEPER_HOME=/usr/local/zk
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/binsource ~/.bashrc
- 配置zoo.cfg
cd zk/conf/mv zoo_sample.cfg zoo.cfgvi zoo.cfgdataDir=/usr/local/zk/data
在最后添加这三行
server.0=spark1:2888:3888
server.1=spark2:2888:3888
server.2=spark3:2888:3888
- 创建data目录
cd zk
mkdir data
cd datavi myid
文件中只写一个0
0
5.搭建zk集群
在另外两个节点上按照上述步骤配置Zookeeper,使用奢scp将zk和.bashrc拷贝到spark2和spark3上极客==即可
唯一的区别是spark2和spark3的标识号(myid)分别设置为1和2
scp -r zk root@spark2:/usr/local/scp ~/.bashrc root@spark2:~/
在spark2上查看是否拷贝成功了
cat ~/.bashrcsource ~/.bashrc
cd zk/data/
vi myid
将0改为1
现在已经把spark2改好了,同样的步骤改spark3就好了。
- 启动Zookeeper集群
先是在三台机器上执行:zkServer.sh start。
然后检查Zookeeper状态:zkServer.sh status,应该是一个leader,两个follwer。
jps看一下进程,是否启动了QuorumPeerMain。
4. kafka_2.9.2-0.8.1集群搭建
1. 安装scala-2.11.4
1.将scala-2.11.4.tgz传输到/usr/local目录下
解压
tar zxvf scala-2.11.4.tgz
删除压缩包
rm -rf scala-2.11.4.tgz
重命名
mv scala-2.11.4 scala
- 配置环境变量
vi ~/.bashrcexport SCALA_HOME=/usr/local/scala
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME=/bin:$SCALA_HOME/binsource ~/.bashrc
- 查看scala是否安装成功
scala -version
- 按照上述步骤在spark1和spark2上安装好scala,即使用scp将scala和./bashrc拷贝到spark2和spark3上即可。
scp -r scala root@spark2:/usr/local/scp ~/.bashrc root@spark2:~/
在spark2上查看是否拷贝成功了
cat ~/.bashrcsource ~/.bashrcscala -version
现在已经把spark2改好了,同样的步骤改spark3就好了。
2. 安装Kafka包
1.将kafka_2.9.2-0.8.1.tgz传输到/usr/local目录下
解压
tar zxvf kafka_2.9.2-0.8.1.tgz
删除压缩包
rm -rf kafka_2.9.2-0.8.1.tgz
重命名
mv kafka_2.9.2-0.8.1 kafka
- 配置kafka
vi /usr/local/kafka/config/server.properties
对文件中broker.id进行配置,依次增长的整数,0、1、2,集群中broker的唯一id
配置文件末尾有一个zookeeper.connect,将其改为
zookeeper.connect=192.168.1.105:2181,192.168.1.106::2181,192.168.1.107:2181
- 安装slf4j
将slf4j-1.7.26.zip直接在windows上解压缩,将里面的slf4j-nop–1.7.26.jar复制到kafka的libs目录下
mv slf4j-nop-1.7.26.jar kafka/libs/
- 搭建kafka集群
按照上述步骤在spark1和spark2上安装好kafka,即使用scp将scala和./bashrc拷贝到spark2和spark3上即可。唯一的区别是要将配置文件server.properties中的broker.id分别设置为1和2
scp -r kafka root@spark2:/usr/local/vi /usr/local/kafka/config/server.properties
将broker.id设置为1
现在已经把spark2改好了,同样的步骤改spark3就好了。
3. 启动kafka集群
- 解决kafka Unrecognized VM option 'UserCompressedO ops’问题
vi /usr/local/kafka/bin/kafka-run-class.sh
将上面这个文件中有一个#JVM performance options,
将里面的 -XX:+UserCompressedO ops删去即可,注意要将三台机器都按照同样的方法删去
2. 在三台机器上执行下面命令
先进入kafka目录
cd /usr/local/kafka
开始启动
nohup bin/kafka-server-start.sh config/server.properties &
查看文件
cat nohup.out
查看jps中kafka是否启动
没问题!
5. 安装flume
1.将scala-2.11.4.tgz传输到/usr/local目录下
解压
tar zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz
删除压缩包
rm -rf flume-ng-1.5.0-cdh5.3.6.tar.gz
重命名
mv apache-flume-1.5.0-cdh5.3.6-bin flume
- 配置scala相关的环境变量
vi ~/.bashrcexport FLUME_HOME=/usr/local/scalaflume
export FLUME_CONF_DIR=$FLUME_HOME/conf
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME=/bin:$SCALA_HOME/bin:$FLUME_HOME/binsource ~/.bashrc
- 修改flume配置文件
cd flume/conf/
mv flume-conf.properties.template flume-conf.properties
vi flume-conf.properties
配置时需要修改的内容
#配置agent
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1#配置source
agent1.sources.source1.type=spooldir
agent1.sources.source1.spoolDir=/usr/local/logs
agent1.sources.source1.channels=channel1
agent1.sources.source1.fileHeader=false
agent1.sources.source1.intercepters=i1
agent1.sources.source1.intercepters.i1.type=timestamp#配置channel
agent1.channels.channel1.type = file
agent1.channels.channel1.checkpointDir = /usr/local/logs_tmp_cp
agent1.channels.channel1.dataDirs = /usr/local/logs_tmp#配置sink
agent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path = hdfs://spark1:9000/logs
agent1.sinks.sink1.hdfs.fileType = Datastream
agent1.sinks.sink1.hdfs.writeFormae = TEXT
agent1.sinks.sink1.hdfs.rollInterval = 1
agent1.sinks.sink1.channel = channel1
agent1.sinks.sink1.hdfs.filePrefix = %y-%m-%d
配置agent
source这一部分删除
配置成下面这样
channel配置
配置sink
4. 创建需要的文件夹
cd /usr/local
mkdir logs
hdfs dfs -mkdir /logs
hdfs dfs -ls /
- 启动flume-agent
flume-ng agent -n agent1 -c conf -f/usr/local/flume/conf/flume-conf.properties -Dflume.root.logger=DEBUG.console
- 测试flume
新建一份文件,移动到/usr/local/logs目录下,flume就会自动上传到HDFS的/logs目录中。
我这里报错了,需要在配置文件中添加一行命令
agent1.sinks.sink1.hdfs.useLocalTimeStamp = true
如下图所示
测试成功
搞定
搭建Hadoop集群(二)相关推荐
- 华为云Centos7搭建hadoop集群二:yum源替换,ssh免密处理,hadoop用户sudo
华为云Centos7搭建hadoop集群二:yum源替换,ssh免密处理,hadoop用户sudo 新建hadoop用户并设置密码,密码不要设置为简单的123456等,我这里已经创建过了hadoop用 ...
- mac搭建hadoop集群二之hadoop安装
上一篇我们已经准备好三台虚拟机,计划一主两从搭建hadoop集群.没安装的可以参考一下. 虚拟机安装传送门:mac搭建hadoop集群之虚拟机安装 集群规划 主机 角色 node1 NN DN RM ...
- Hadoop(二)搭建Hadoop集群
在了解Hadoo基础之后,借助于docker快速实现虚拟化,搭建Hadoop集群,进一步了解Hadoop,实地测试,实地操作,更进一步的了解Hadoop. 首先需要了解Hadoop的各个模块概念已经功 ...
- Hadoop实战(二) 搭建Hadoop集群
搭建Hadoop集群 安装SSH并设置无密码登录 查看有没有ssh: rpm -qa | grep ssh 没有则安装: yum install openssh-server SSH命令需要安装客户端 ...
- 华为云 和 阿里云 跨服务器搭建Hadoop集群
目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...
- Docker学习七:使用docker搭建Hadoop集群
本博客简单分享了如何在Docker上搭建Hadoop集群,我的电脑是Ubuntu20,听同学说wsl2有些命令不对,所以建议在虚拟机里按照Ubuntu或者直接安装双系统吧 Docker学习一:Dock ...
- 微信棋牌源码虚拟机搭建Hadoop集群
虚拟机搭建Hadoop集群 安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk ...
- 利用云服务器搭建hadoop集群
利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...
- 利用闲置电脑安装虚拟机搭建hadoop集群
文章目录 前言 一.虚拟机环境的准备 二.连接虚拟机上的集群 1.整理需要连接的端口 2.配置VMware上虚拟机的端口转发 3.测试连接 总结 前言 本人刚开始学习大数据,记录自己的一些学习笔记.大 ...
- 三台Ubuntu虚拟机搭建 Hadoop集群 (第一次搭)
最近因为要搭Hadoop集群,确实花了好大的心血在里面,因为我的Linux也是前两天速成的,好多东西都还是边查资料边搭.但我最终确实成功了,留了一点点小问题在里面.(当Hadoop集群start-al ...
最新文章
- 用狄拉克函数来构造非光滑函数的光滑近似
- 计算机视觉各领域前沿算法积累
- 如何把一个软件嵌入另一个软件_新增一个软件一个游戏
- 2016 ACM/ICPC 沈阳站 小结
- 计算机wind10切换桌面wind7系统,win10一键切回win7桌面方法_Win10桌面切换成Win7界面的方法...
- 电力LED时钟系统解决方案实现精确时间同步
- 可编程控制器PLC概述
- 个人/团队/企业/组织申请计算机软件著作权的流程
- 51单片机 普中V2 超声波测距 报警 显示 基于MCS51单片机的超声波测距模块的开发
- 任务管理器不显示gpu_Windows 10将在任务管理器中显示GPU温度
- KF、EKF、UKF、ESKF、PF对比
- websocket 技术文档
- 雅虎财经股票数据API获取
- HanLP极致简繁转换
- 最新防伪和代{过}{滤}理授权查询系统网站源码V1.3
- java方法调用之单分派与多分派(二)
- win10 电脑u盘读不出来怎么办
- HCL/异丙醇湿法处理制备洁净的InAs表面
- MySQL修改字段类型之modify
- JAVA 日期Date加减整理