大数据集群,Linux-NAT环境搭建
一、虚拟机Linux安装
-
准备好所需资料
-
安装虚拟机
下一步后选择最大磁盘大小为10G(够用),然后将虚拟磁盘存储为单个文件(为了方便拷贝)
继续下一步,然后点击完成。(CentOs自带python 够用)
二、环境准备NAT配置
1、
其中,网络桥接模式是指我们的虚拟机和我们的主机在网络中,这种配置虽然简单,但不适合用于做实验,因为每个人的网络环境不一样,有的人在公司,有的人在学校,许多场景中的IP地址是分配给你的,一旦使用桥接模式,则申请一个新的IP,会导致机构内部IP地址的错乱,发生许多不必要的网络冲突问题。
因此,建议使用NAT模式,它相当于在window主机的网络环境里面,构建一个独立的局域网络环境。
2、NAT模式,配置方法如下:
点击编辑菜单,里面有一个虚拟网络编辑器。
移除原有的VMNAT8网络,然后添加一个新的VMNAT8网络。
然后在VM信息里面,选择NAT模式,见下图
然后再次点击两台小电脑,将网络连接改成桥接模式,再改成NAT模式,以此来初始化NAT网络。
3、去Terminal内配置IP
使用到的Linux命令有:
补充
{
以CentOS为例,进入VI编辑完成后,按ESC键,进入Command命令模式。输入:wq,保存并且退出编辑器,如果不需要保存,请输入:q!。(注意,需要冒号)
vi的其他保存/退出命令:
:w 保存;
:w filename 另存为filename;
:wq! 保存并强制退出;
:wq! filename 注:以filename为文件名保存后强制退出;
:q! 强制退出;
:x 保存并退出(仅当文件有变化时保存)
}
NAT网络配置命令:
cd /etc/sysconfig/network-scripts/
su //password:输入你的linux密码即可
ls
vim ifcfg-eth0
然后根据你的nat网络,设置IP、网关、掩码、DNS(使用联通的DNS)
DEVICE=“eth0”
BOOTPROTO=“static”
NM_CONTROLLED=“yes”
ONBOOT=“yes”
TYPE=“Ethernet”
UUID=“bde095bd-5848-495c-88e6-19a8034e7f66”
IPADDR=192.168.221.11
NETMASK=255.255.255.0
GATEWAY=192.168.221.2
DNS1=202.106.0.20
保存网络配置之后,ESC->:wq ->保存退出
继续输入Linux命令(用于重启网络):
su
password
/etc/init.d/network restart
命令输入结果如下图:
到此为止,IP地址已经设置好了,我们用curl www.baidu.com 测试一下能否联网,可以
然后再ping一下百度这个地址,看能否Ping的通(使用ctrl+c可以停止ping)
此时NAT网络已经设置好了,而且和本机cmd ,ipconfig中的网络不是一个网段
实际工作中使用终端的方式进行工作:通常使用sercureCRT连接已经配置好的工作环境
通过sercureCRT建立新se
如果有乱码的现象,在crt进行设置,设置终端的环境,改成linux,
三、hadoop集群搭建(服务器网络配置篇)
1 拷贝两个CentOS镜像,用于搭建2\3号服务器
2 将两台虚拟机改名后,用虚拟机打开复制的两个Linux系统
3 用虚拟机将三台Linux同时打开运行(当出现虚拟机移动时,点击我已移动)
4 给三台机器分别命名(master slave1 slave2)
5 由于此时三台电脑的IP相同,因此需要重新配置slave2 和 slave1的ip
相关配置命令:
cd /etc/sysconfig/network-scripts/
ls
su
password:
vim ifcfg-eth0
修改ip配置如下图:
然后重启网络服务
/etc/init.d/network restart
此时,还是上不了网,因为我们在赋值linux系统的时候,势必会将原有系统网卡的属性也复制过来。因此需要将slave1的网卡先卸载掉,步骤如下:
重新添加网卡后,网卡号不同了,此时可以上网了,同样的方法,我们配置slave2.
6配置好系统后,重新设置secureCRT,
至此为止,三台linux服务器已经全部配置完成,nat网络也已经配置完成,
四、hadoop集群搭建(Linux java环境安装篇)
1 由于安装hadoop集群需要java环境,而centos本身不带java,因此我们在保证硬软件统一的情况下(给master多分配内存,给slave多分配磁盘)
2、下载linux java jdk
将这个文件拷贝到三台设备上,通过共享vimware共享目录的方式。
启用后添加要共享的文件夹。
然后利用terminal终端,进入cd /mnt/hgfs/
ls
补充{可能会出现共享文件夹不显示的问题
解决方案1:https://blog.csdn.net/kelvindream/article/details/53503148
解决方案2:https://blog.csdn.net/jiangjundriver/article/details/70245140
具体是哪一个方案,都试一下,总有一个有用
}
2讲这两个资源从共享文件夹拷贝到系统当中
3 进入拷贝好资源你的文件夹src(cd … 用于文件夹后退)
进入后 输入
ll //查看执行权限
然后直接运行jdk
./jdk-6u45-linux-x64.bin
至此,JAVA已经安装完成了,然后我们需要配置一下环境变量。
4 配置java环境变量
①打开根目录src
vim ~/.bashrc
:wq 退出,然后如下图找出jdk的安装路径
安装路径下有一个bin,bin目录下有一个java,直接运行这个java
此时,这个java就可以拿来用了,但是为了让系统能够自动找到这个Bin文件,我们需要把这个bin目录,加到环境变量中去
输入pwd得到jdk文件的目录
②在里面输入下面的语句
首先,赋值bin目录的路径,然后进入到vim ~/.bashrc中,按照如下输入并保存(:wq)
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export CLASSPATH=.:
C
L
A
S
S
P
A
T
H
:
CLASSPATH:
CLASSPATH:JAVA_HOME/lib
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
保存退出后,输入source ~/.bashrc回车,此时就可以不在java目录下,直接使用java语句
至此,java环境变量就配置好了
然后对slave1 和 slave2同样配置java环境
首先,如下图,到资源目录下远程复制资源
scp -rp jdk-6u45-linux-x64.bin 192.168.221.11:/usr/local/src
至此,两台slave都复制完成了,然后取CRT的slave1这台机器上
哦,不对,要用root角色,su一下
slave2使用同样的步骤
至此,Slave1和slave2这两台机器都应经把java安装好了
然后使用vim ~/.bashrc同时修改环境变量
先赋值master中的bashrc文件已修改的内容
至此,所有的及其已经安装完成了linux环境了,接下来呢,我们来正式安装hadoop集群
五、hadoop集群搭建(Linux SSH无密码互连)
1、解压hadoop压缩包,并修改其中相关的文件配置
进入解压后的had文件,在其中新建一个tep文件夹,用于存放hadoop集群运行过程中产生的目录文件。
进入后将localhost改为master
同样的方法,修改slaves文件
继续修改 core-site.xml文件
接下来配置,mapred-site.xml
再修改hdfs-site.xml文件,配置数据在dfs中存储的副本数
接下来配置hadoop-env.sh
至此,我们已经修改了6个文件
2 继续进行本机网络配置
vim /etc/hosts 文件
这样配置该文件的目的是,以后如果想要配置master文件的话,就可以通过ip名称的映射,通过master直接访问主机了。
这是我们虽然配置了,但是还没有生效,因此我们需要使用下面的语句,让其生效起来
但是,上图中的生效只是临时生效,因此需要 修改
vim /etc/sysconfig/network
至此,我们又修改了2个文件
3 接下来,把下图的文件夹分别拷贝给slave1和slave2
4 然后修改slave1和slave2上的
vim /etc/hosts
再修改slave1和slave2上的vim /etc/sysconfig/network
通过修改network文件,让二者HOSTNAME永久生效,而不是hostname master临时生效
4 为了防止以后网络连接出现问题,因此要关闭防火墙
还有另外的原因也可能导致网络连接问题,且问题难排查
因此也要设置一下
setenforce 0
permissive说明已经关闭成功了
5 下面设置如何远程连接节点时不需要输入密码
输入三次回车即可,
然后进入隐藏目录.ssh这个目录下
将master和slave1和slave2该目录下的id_rsa.pub(公钥文件)中的内容(公钥)拷贝给master中的authorized_key(这个文件是自己创建的,创建txt的linux语法为:touch authorized.keys)
具体解释:https://www.oschina.net/question/3177374_2271087?sort=time
完成之后,将authorized.txt这个文件拷贝到slave1和slave2当中去。
小插曲:文件名字输错了
sudo mv auchorized_keys.txt authorized_keys.txt
使用上述命令修改即可
也可参考https://jingyan.baidu.com/article/d2b1d102d14f7d5c7e37d418.html
至此为止,三台机器中都有对方的ssh公钥了,因此他们互相之间连接都不需要密码了
如下图:关系建立起来了
六、hadoop集群搭建(master中启动hadoop集群)
1、
第一次启动hadoop是,需要namenode格式化一下
命令如下:
./hadoop namenode -format
2 格式化之后直接启动
./start-all.sh
3 输入jps测试
然后我们去slave1和 slave2中测试一下
均启动成功
4 验证这个hdfs(分布式文件系统)是否可用
用一个hadoop命令验证
./hadoop fs -ls /
执行成功
再测试一个(看文件可否上传到hdfs中)
./hadoop fs -put /etc/passwd /
再试一下,新建的文件能不能读
至此!!!!!hadoop环境终于搭建好了