从0开始搭建hadoop伪分布式集群(一:虚拟机配置)

集群配置

三台虚拟机(05,06,07)
05 06 07
nn1 nn2
zkfc1 zkfc2
zk1 zk2 zk3
jn1 jn2 jn3
dn1
rm rm nm

配置050607
namenodenn1nn2x
zkfczkfc1zkfc2x
zookeeperzk1zk2zk3
journalnadejn1jn2jn3
datanodexxdn1
resourcemanagerrm1rm2x
namenodemanagerxxnm

配置虚拟机

centos.zip 解压3个(虚拟机重命名,在VMware的界面,上方菜单栏打开虚拟机,打开设置,在选项界面更改虚拟机名称)

我的三台虚拟机属性
全名
hadoop
虚拟机名称
HA3VM01(address:192.168.2.156)
HA3VM02(address:192.168.2.159)
HA3VM03(address:192.168.2.158)
同户名
hadoop

内存设为2G
网路适配器
VMnet8(NAT)

控制面板>网络和Internet>网络和共享中心>更改配适器设置>VMware Network Adapter VMnet8,右键启动

在VMware的界面,上方菜单栏打开edit,打开虚拟网络编辑器

在这里插入图片描述
点击NAT 设置
在这里插入图片描述
再次进入控制面板>网络和Internet>网络和共享中心>更改配适器设置>VMware Network Adapter VMnet8,右键查看属性,查看
在这里插入图片描述
核对网关是否一致
在这里插入图片描述
启动创建完成的一个虚拟机,若出现
在这里插入图片描述
如果是I copied it,就会知道有另一个和这台同样虚拟机,为了避免相同网关的冲突,会在copy的时候更改网关。
如果是I moved it,那么就不会更改网关。
这里点I moved it。方便自己改网关。不然虚拟机会新建一个网关,这样的话还要再改别的东西。
这里,第一个虚拟机选择I moved it, 之后的选择I copied it,如果都是moved it,那么虚拟机不会生成新的mac地址,如果想要手动配置,参照
http://blog.sina.com.cn/s/blog_15b9821340102wpjb.html
修改完mac地址后,网卡中会出现新的eth,这个对应的是新的mac地址,对这个eth进行修改,才能保证正常使用。

在这里插入图片描述选yes

进入后,为确保虚拟机能连接网络,要开启vmware相关服务(也可以直接从,windows的服务里面打开)
在这里插入图片描述之后,在网络连接按钮右键,点击edit connection

在这里插入图片描述编辑一个网卡并使用,不能让网关是自动获取的

在这里插入图片描述

打开terminal,输入setup命令
在这里插入图片描述
↑键↓键移动,选择Network configuration,回车确定。
选择Device configuration,选择刚刚编辑的网卡,核对是否一致。

若不一致,更改后选择ok,save,save&quit,quit来保存并退出

输入su 进入root,输入命令service network restart
在这里插入图片描述

成功后,ifconfig查看一下详细信息
然后ping 192.168.2.1,发现不通(因为防火墙)
在windows,打开cmd,输入ping 192.168.2.156,可以。(说明以上步骤执行正确)

关闭图形界面

terminal 输入init 3,可以关闭图形界面
但是这样,在下次启动的时候还会进入图形界面。(ctrl + alt,鼠标从虚拟机命令行切出到windows)

使用SecureCRTPortable连接虚拟机

打开SecureCRTPortable
点击quick connect
在这里插入图片描述在这里插入图片描述

选择accept&save

右键调整字体
在这里插入图片描述
在这里插入图片描述
其中font为 16

接下来,为了能够使用sudo指令,要进行相应的配置
执行su指令
再执行vi /etc/sudoers
在root ALL=(ALL) ALL下面加入
hadoop ALL=(ALL) ALL
(这里的hadoop是我的用户名)
然后输入exit指令,退出root
在这里插入图片描述

接下来,来设置开机时不进入图形界面。
输入指令
sudo vi /etc/inittab
将id:5:initdefault:改成id:3:initdefault:

在这里插入图片描述

接下来更改localhost主机名
输入指令
sudo vi /etc/sysconfig/network
将文件内容更改为HOSTNAME=你的主机名
在这里插入图片描述再保存并退出文件,输入指令sudo hostname HA3VM01
再重新登陆,localhost就会变为我们的主机名

接下来将主机名和ip关联起来
输入指令
sudo vi /etc/hosts
进入文件后
将我们的所有机器的ip和主机名成对分行地添加进去并保存退出
在这里插入图片描述
之后,由于其他机器还未添加,因此ping本机(HA3VM01)来测试
执行ping HA3VM01

使用FileZilla向虚拟机传送文件
主机192.168.2.156
用户名hadoop
密码
端口22

在这里插入图片描述
点击确定
然后拖入
jdk-7u65-linux-i586.tar.gz
zookeeper-3.4.5.tar.gz

创建文件夹app,用来存放hadoop相关文件
执行指令mkdir app

同时把一些没用的文件夹全删了

在这里插入图片描述

安装JDK

将jdk解压到app文件夹下
tar -zxvf jdk-7u65-linux-i586.tar.gz -C app/

进入系统配置文件配置系统变量
sudo vi /etc/profile
在文件末尾加入
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65(你的jdk安装路径)
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
之后保存,执行指令
source /etc/profile
使得更改生效
这时,cd 退到主目录,也可执行java -version指令来查看java版本,执行成功,则为配置成功。

安装mysql

先卸载之前的版本

执行
rpm -qa|grep mysql
在这里插入图片描述执行
sudo rpm -e mysql-libs-5.1.66-2.el6_3.i686 --nodeps
强制卸载
执行
sudo find / -name mysql
sudo whereis mysql
把找到的都删除了,

之后再执行一遍,复查看删没删干净

进行安装
sudo rpm -ivh MySQL-server-5.1.73-1.glibc23.i386.rpm
在这里插入图片描述

执行命令:find / -name mysql 来寻找mysql-server的安装位置,如下:

/etc/logrotate.d/mysql
/etc/rc.d/init.d/mysql ---- 启动文件
/usr/share/mysql ---- 包含my-default.cnf文件

/usr/bin/mysql
/usr/lib/mysql
/var/lib/mysql ---- 数据库文件存放目录

然后启动mysql-server,执行: /etc/init.d/mysql start

提示启动成功之后执行:ps -el | grep mysql

系统会列出mysqld的相关进程信息,说明mysql-server安装成功!

3 安装client
sudo rpm -ivh MySQL-client-5.1.73-1.glibc23.i386.rpm
执行命令,设置密码为hadoop
/usr/bin/mysqladmin -u root password ‘hadoop’
/usr/bin/mysqladmin -u root -h HA3VM01 password ‘hadoop’

4 运行mysql
mysql -u root -p
输入密码:hadoop
(输入exit;,退出mysql)

启动集群步骤

启动zookeeper集群(分别在05、06、07上启动zk)

app/zookeeper-3.4.5/bin/zkServer.sh start

#查看状态:一个leader,两个follower
./zkServer.sh status

启动kafka

cd cd kafka_2.10-0.8.1.1/
bin/kafka-server-start.sh config/server.properties

创建话题mygirls
bin/kafka-topics.sh --create --zookeeper weekend05:2181 --replication-factor 3 --partitions 1 --topic mygirls

查看
bin/kafka-topics.sh --list --zookeeper weekend05:2181

创建话题myboys
bin/kafka-topics.sh --create --zookeeper weekend05:2181 --replication-factor 3 --partitions 1 --topic myboys

向mygirls写入数据
bin/kafka-console-producer.sh --broker-list weekend05:9092 --topic mygirls

创建消费者
bin/kafka-console-consumer.sh --zookeeper weekend05:2181 --from-beginning --topic mygirls

查看
bin/kafka-topics.sh --describe --zookeeper weekend05:2181 --topic mygirls

启动在后台
bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
(将标准输出重定向到空文件,(2>&1的意思是错误输出定位到和标准输出同一个地方去)(&是运行在后台))

启动Storm

在nimbus主机上(05)
./storm nimbus
在supervisor主机上()
./storm supervisor

启动journalnode(分别在05、06、07上执行)

app/hadoop-2.4.1/sbin/hadoop-daemon.sh start journalnode

#运行jps命令检验,weekend05、weekend06、weekend07上多了JournalNode进程

(若是刚刚配置完成)
2.7格式化HDFS
#在weekend05上执行命令:
hdfs namenode -format
#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/weekend/hadoop-2.4.1/tmp,然后将/weekend/hadoop-2.4.1/tmp拷贝到weekend02的/weekend/hadoop-2.4.1/下。
scp -r tmp/ weekend02:/home/hadoop/app/hadoop-2.4.1/
##也可以这样,建议hdfs namenode -bootstrapStandby

	2.8格式化ZKFC(在weekend05上执行即可)
		hdfs zkfc -formatZK

启动HDFS(在05上执行)

app/hadoop-2.4.1/sbin/start-dfs.sh

启动Hbase(在05上执行)

cd hbase-0.96.2-hadoop2/bin
./start-hbase.sh
(如果是7台,在03执行完该语句之后,在04执行bin/hbase-daemon.sh start master)
(Hbase,命令行客户端启动,在bin里的。/hbase shell)

启动YARN(#####注意#####:在05上执行start-yarn.sh。如果机器足够多,可以把namenode和resourcemanager分开,因为性能问题,他们都要占用大量资源,他们分开了就要分别在不同的机器上启动)

app/hadoop-2.4.1/sbin/start-yarn.sh

验证与测试

到此,hadoop-2.4.1配置完毕,可以统计浏览器访问:
	http://192.168.1.201:50070
	NameNode 'weekend01:9000' (active)
	http://192.168.1.202:50070
	NameNode 'weekend02:9000' (standby)

验证HDFS HA
	首先向hdfs上传一个文件
	hadoop fs -put /etc/profile /profile
	hadoop fs -ls /
	然后再kill掉active的NameNode
	kill -9 <pid of NN>
	通过浏览器访问:http://192.168.1.202:50070
	NameNode 'weekend02:9000' (active)
	这个时候weekend02上的NameNode变成了active
	在执行命令:
	hadoop fs -ls /
	-rw-r--r--   3 root supergroup       1926 2014-02-06 15:36 /profile
	刚才上传的文件依然存在!!!
	手动启动那个挂掉的NameNode
	sbin/hadoop-daemon.sh start namenode
	通过浏览器访问:http://192.168.1.201:50070
	NameNode 'weekend01:9000' (standby)

验证YARN:
	运行一下hadoop提供的demo中的WordCount程序:
	hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /out

OK,大功告成!!!

测试集群工作状态的一些指令 :
bin/hdfs dfsadmin -report 查看hdfs的各节点状态信息

bin/hdfs haadmin -getServiceState nn1 获取一个namenode节点的HA状态

sbin/hadoop-daemon.sh start namenode 单独启动一个namenode进程

./hadoop-daemon.sh start zkfc 单独启动一个zkfc进程

七台虚拟机的配置

1 nn zkfc kafka
2 nn zkfc kafka
3 rm hmaster kafka
4 rm hmaster
5 zoo jn dn nm hbase
6
7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值