Hadoop平台搭建
来源:互联网 发布:常用的mac论文软件 编辑:程序博客网 时间:2024/06/05 01:03
一、VMWare安装
准备工具:
VMware-workstation-full-12.1.1-3770994.exe(VMware安装包)
vm12_keygen.exe(破解工具)
操作步骤:
1、双击“VMware-workstation-full-12.1.1-3770994.exe”按正常步骤安装;
2、安装完毕,打开VMware,打开“vm12_keygen.exe”,输入VMware Workstation12的许可证密钥;
3、破解成功;
二、Linux安装
准备工具:
CentOS-6.5-x86_64-bin-DVD1.iso(CentOS镜像)
CentOS-6.5-x86_64-bin-DVD2.iso(CentOS镜像)
VMware Workstation12
操作步骤:
1、打开VM,创建新的虚拟机。
2、“典型(推荐)” -> 安装程序光盘影像文件(ISO) -> 浏览 -> “CentOS-6.5-x86_64-bin-DVD1.iso”。
3、最大磁盘大小,默认20G,可以先设置10G,最小不要低于5G。
4、虚拟机名称“CentOS 64 位”(随意,后期可以修改),位置“E:\学习\Hadoop\八斗学院\vm\CentOS_6.5”。
5、将虚拟磁盘存储为单个文件(好处:便于拷贝,拆分多个文件会容易漏内容,导致启动不起来)。
6、其他配置默认。
7、保存,等待虚拟机安装完毕,进入系统。
技巧:
Ctrl+Alt,可以让虚拟机中把鼠标释放。
遇到问题:
1、已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。
重启电脑,点按“F1”进入BOIS,在Security中找到Virtualization Technology,改为“Enable”。
三、网络配置
准备工具:
1、已安装系统的虚拟机
2、SecureCRT
目的:
配置IP(与主机统一局域网,能通过主机上网)
操作步骤:
1、虚拟机设置网络,“NAT模式”,构造独立的局域网环境,不受外部干扰。
2、VM - 编辑 - 虚拟网络编辑器 - 更改设置 - 选中VMnet8,移除网络 (VM给我们虚拟出来的几种网络设备,VMnet8是供NAT模式使用的)
3、添加网络 - 添加新的VMnet8 - 在VMnet信息中,选中NAT模式
VMnet8对应的子网地址是 192.168.153.X ,以后要遵循这个IP段,注意也不一定是153,要看移除后添加自动分配的为准
看下自己电脑的IP,cmd - ipconfig ,可以看出跟 192.168.153.X 完全不是一个子网段,所以192.168.153.X不会跟自己的主机冲突
NAT模式 - NAT设置,可以看到待会需要配置的网关,我这里是192.168.153.2
4、NAT模式也需要VM自动获取IP的服务,先桥接模式进行初始化。
5、桥接模式确定后,再选择NAT模式,确定后,ifconifg可以看到,当前没有分配IP(UP BROADCAST RUNNIG MULTICAST)
-----------------------------------------------------------------------------------------
为什么不用桥接模式?
桥接模式,由于每个人的网络环境不一样,IP地址提前分配,如果再设一个独立的IP,会有IP冲突的风险。
课程用NAT模式,即可满足上网需求,同时不用配同样的网段地址,相当于自己的主机中配置一个独立的局域网模式。
搞清楚VM中几种网络模式,桥接、NAT等
-----------------------------------------------------------------------------------------
6、编辑网卡eth0
进入网络配置: cd /etc/sysconfig/network-scripts/
编辑eth0网卡信息: vim ifcfg-eth0
这时默认的配置为:
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:0C:29:C0:F3:22"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
改为(把不要的行删掉):
DEVICE="eth0"
BOOTPROTO="static" #改为静态
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.153.10 #设置本机的IP地址,最后一位可以随意设置,与上述步骤子网段一致即可
NETMASK=255.255.255.0 #子网掩码,固定
GATEWAY=192.168.153.2 #网关,与上述步骤在NAT设置中一致即可
DNS1=202.106.0.20 #这个是常用的联通的DNS
7、重启网络
Ctrl+Shift+T,新增一个终端标签,切换至root,然后找到命令重启。
su (由于权限问题,需切换至root)
/etc/init.d/network restart
ifconfig,可以看到,已经改为刚才设置的地址
cmd下,ipconfig可以看到,自己的IP为 192.168.199.214,因此不冲突。
8、测试网络情况,看是否能上外网
curl www.baidu.com (可以上网)
ping wwww.baidu.com (可以ping通)
9、配置SecureCRT
实际上,工作中用终端方式,远程操作(SecureCRT)
安装 “scrt73-x64.exe”
破解步骤:https://jingyan.baidu.com/article/066074d644a927c3c31cb076.html
1)选中Session - New Session
2)下一步 - Hostname “192.168.153.10” - Username “allen” (根据需要连接的IP和用户名,其他不用选)
3)双击进入新建的Session,输入密码,保存密码,确认
4)ifconfig,发现与上述一致
5)curl www.baidu.com 发现有乱码
6)点击“192.168.153.10”标签右键 - Session Options (设置终端的环境)
Terminal - Emulation 中 Terminal 改为 “Linux”,Scrollback Buffer 改为 128000 (改为linux,缓存改大)
Appearance 中Current color scheme 改为 “Traditional” ,Character encoding 改为 “UTF-8” (乱码消失)
四、Hadoop1.0安装
准备工具:
1、hadoop-1.2.1-bin.tar.gz,hadoop安装包
2、jdk-6u45-linux-x64.bin,java1.6
3、已经完成NAT网络配置的虚拟机环境,已经可以上外网
操作步骤:
A 搭建集群环境
模拟真实分布式环境,必然涉及到多台机器(学习阶段做三台),并且都是NAT环境。
1、打开虚拟机
2、把192.168.153.10作为主节点
做一个集群,需要一个主节点(master),再搭建两个从节点(slave)
Master(153.10),Slave1(153.11),Slave2(153.12)
3、把Master的VMware镜像,复制成两个独立的VMware镜像
4、挂起/关闭虚拟机(运行时数据会有变动,运行时拷贝会不全,很容易丢失数据)
5、找到镜像路径,找到“E:\学习\Hadoop\八斗学院\vm\CentOS_6.5”文件夹,复制两个副本
6、VM中打开两台复制的虚拟机镜像,在弹出框中,点击“我已复制虚拟机”
7、把虚拟机分别改名为master、slave1、slave2
8、查看master的IP(不变),查看是否能上网(可以)
查看slave1的IP(不变),查看是否能上网(不可以,地址冲突)
9、修改slave1、slave2的IP为约定好的11、12,并重启服务
su
[root@bogon network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@bogon network-scripts]# /etc/init.d/network restart
curl www.baidu.com (还是上不了网,是因为网卡的属性也复制过来了)
10、卸载网卡,点击VM右下角网络适配器 - 配置
移除硬件中的“网络适配器” - 添加“网络适配器” - NAT模式不变 - 确定
这个时候,新增了eth1的网卡,网卡物理地址发生改变,也能上网了
11、打开Secure,复制两个Session,右键Properties,修改SSH的Hostname为11、12
12、登录Session,查看IP,查看是否能上网
主节点会有额外资源开销,在真实生产环境中要配置多点内存,从节点要多存储。
B 安装Java
1、把jdk-6u45-linux-x64.bin通过VM共享目录的方式,拷贝到虚拟机中
2、在网络适配器 - 设置 - 选项 - 共享文件夹 - 总是启用 - 添加 - 增加一个“share_folder”(名字可以自己取) - 确定
3、复制 hadoop 和jdk 文件到,share_folder文件夹下
hadoop-1.2.1-bin.tar.gz
jdk-6u45-linux-x64.bin
4、进入终端,查看[allen@bogon ~]$ cd /mnt/hgfs/ 目录下是否有share_folder,里面是否有刚才复制的两个文件
5、把文件拷贝到src下
[allen@bogon share_folder]$ su
Password:
[root@bogon share_folder]# ls
hadoop-1.2.1-bin.tar.gz jdk-6u45-linux-x64.bin
[root@bogon share_folder]# cp * /usr/local/src
[root@bogon share_folder]# cd /usr/local/src/
[root@bogon src]# ll
total 107604
-rwxr-xr-x. 1 root root 38096663 Aug 6 02:07 hadoop-1.2.1-bin.tar.gz
-rwxr-xr-x. 1 root root 72087592 Aug 6 02:07 jdk-6u45-linux-x64.bin
6、安装jdk
[root@bogon src]# ./jdk-6u45-linux-x64.bin
done
7、编辑环境变量
[root@bogon src]# vim ~/.bashrc (修改根目录下bashrc文件)
/usr/local/src/jdk1.6.0_45 这个目录为Java的安装路径,改路径下有bin,bin下有java可以直接执行。
因此,需要把这个bin目录加到环境变量中。
[root@bogon bin]# pwd
/usr/local/src/jdk1.6.0_45/bin
在~/.bashrc中添加Java环境变量(下面三行,JAVA_HOME根据安装的目录)
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@bogon bin]# source ~/.bashrc (修改立即生效)
8、这时不用进入Java目录,可以直接使用
[root@bogon bin]# which java
/usr/local/src/jdk1.6.0_45/bin/java
9、复制java包到slave1、slave2
[root@bogon bin]# cd /usr/local/src
[root@bogon src]# ls
hadoop-1.2.1-bin.tar.gz jdk1.6.0_45 jdk-6u45-linux-x64.bin
[root@bogon src]# scp -rp jdk-6u45-linux-x64.bin 192.168.153.11:/usr/local/src/ (复制到11上)
The authenticity of host '192.168.153.11 (192.168.153.11)' can't be established.
RSA key fingerprint is bb:4b:d3:90:54:f9:d8:de:57:80:c5:76:f4:65:a0:1a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.153.11' (RSA) to the list of known hosts.
reverse mapping checking getaddrinfo for bogon [192.168.153.11] failed - POSSIBLE BREAK-IN ATTEMPT!
root@192.168.153.11's password:
jdk-6u45-linux-x64.bin 100% 69MB 34.4MB/s 00:02
10、切换到slave1、slave2进行安装
到目录下安装,然后修改环境变量,最后source(与上述步骤一致)
[root@bogon ~]$ cd /usr/local/src/ (进入安装目录)
[root@bogon src]# ./jdk-6u45-linux-x64.bin (安装jdk)
[root@bogon src]# vim ~/.bashrc (修改环境变量,与上述一致)
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib
export PATH=:$PATH:$JAVA_HOME/bin
[root@bogon src]# source ~/.bashrc (生效环境变量)
最后slave1、slave2的java都安装完毕。
C 安装Hadoop集群
1、解压hadoop压缩包
[root@bogon src]# pwd
/usr/local/src
[root@bogon src]# ls
hadoop-1.2.1-bin.tar.gz jdk1.6.0_45 jdk-6u45-linux-x64.bin
[root@bogon src]# tar xvzf hadoop-1.2.1-bin.tar.gz
生成新的目录 hadoop-1.2.1
[root@bogon src]# ls
hadoop-1.2.1 hadoop-1.2.1-bin.tar.gz jdk1.6.0_45 jdk-6u45-linux-x64.bin
2、新增tmp文件夹
进入目录,新增tmp目录,用于存放之后的临时文件,包括后续hadoop运行中生成的临时文件,在这目录下统一管理
[root@bogon src]# cd hadoop-1.2.1
[root@bogon hadoop-1.2.1]# mkdir tmp
3、修改hadoop配置
修改conf/下的masters 和slaves文件
[root@bogon hadoop-1.2.1]# cd conf/
[root@bogon conf]# vim masters
master文件中,填写
master
[root@bogon conf]# vim slaves
slaves文件中,填写(两个从节点)
slave1
slave2
修改conf/下的core-site.xml文件
9000端口是给namenode作准备
[root@bogon conf]# vim core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop-1.2.1/tmp</value>
</property>
<property>
<name>fs.default.name<name>
<value>hdfs://192.168.153.10:9000</value>
</property>
</configuration>
修改conf/下的mapred-site.xml(配置mapreduce的job tracker)
[root@bogon conf]# vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://192.168.153.10:9001</value>
</property>
</configuration>
修改conf/下的vim hdfs-site.xml (配置数据在HDFS存储的副本数,默认是3个,我们配置为3个)
[root@bogon conf]# vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
配置conf/下的hadoop-env.sh(在最后增加JAVA_HOME)
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
4、本地网络配置
配置hostname以及hostname与IP的映射关系(修改/etc/hosts和/etc/sysconfig/network)
[root@bogon conf]# vim /etc/hosts
在最下面增加host,访问master的时候,可以通过配置这个对应关系,直接通过hostname访问/登录这台机器,配置当前机器dns
192.168.153.10 master
192.168.153.11 slave1
192.168.153.12 slave2
生效hostname(临时,重启就会消失)
[root@bogon conf]# hostname master
[root@bogon conf]# hostname
master
生效hostname(永久,重启后直接读network文件的配置)
[root@bogon conf]# vim /etc/sysconfig/network
HOSTNAME=master
接下来对slave1和slave2配置,因为master上的配置已经修改完毕,直接远程传给11和12
注意:这时候slaves的hostname还没生效,所以还是要用IP来传
[root@bogon conf]# cd /usr/local/src
[root@bogon src]# scp -rp hadoop-1.2.1 192.168.153.11:/usr/local/src
[root@bogon src]# scp -rp hadoop-1.2.1 192.168.153.12:/usr/local/src
这时进入slave1和slave2,发现/usr/local/src下已经有文件夹hadoop-1.2.1拷贝过来
修改slave1和slave2的hostname和hostname与IP的映射关系(修改/etc/hosts和/etc/sysconfig/network)
192.168.153.10 master
192.168.153.11 slave1
192.168.153.12 slave2
因为每台机的hostname不一样
[root@bogon conf]# vim /etc/sysconfig/network
11配置为HOSTNAME=slave1
12配置为HOSTNAME=slave2
分别在两台机上手动制定hostname(该命令可以让系统不重启的情况下生效)
[root@bogon conf]# hostname slave1 (在11上输入)
[root@bogon conf]# hostname slave2 (在12上输入)
5、因为每个人的系统或网络环境配置不一样,为了避免网络连接的问题
因此需要尽量把防火墙关闭。
分别在三台机上操作
关闭防火墙
[root@bogon src]# /etc/init.d/iptables stop (关闭防火墙)
[root@bogon src]# iptables -L (检查防火墙是否关闭)
关闭selinux
[root@bogon src]# setenforce 0
[root@bogon src]# getenforce
Permissive
6、免密认证
执行ssh-keygen(接着三个回车,不执行这个语句,就不会有~/.ssh/目录和里面的文件)
[root@bogon src]# ssh-keygen
进入隐藏目录
[root@bogon src]# cd ~/.ssh/
将公钥id_rsa.pub拷贝给authorized_keys
[root@bogon .ssh]# cat id_rsa.pub > authorized_keys
查看是否一致
在11和12上分别执行ssh-keygen ,进入~/.ssh/中,把id_rsa.pub中的公钥复制到10的authorized_keys中
拷贝完后,相当于master中包含了三行公钥(分别是三台主机的公钥)
把master的公钥,拷贝到slave1和slave2上(相当于三台机都有互相访问的公钥)
[root@bogon .ssh]# scp -rp authorized_keys slave1:~/.ssh/
[root@bogon .ssh]# scp -rp authorized_keys slave2:~/.ssh/
这个时候可以ssh到不同的机器,互信关系已建立起来。
7、启动hadoop集群
ssh进入master,第一次启动需要对namenode进行格式化
[root@master ~]# cd /usr/local/src/hadoop-1.2.1/bin/
[root@master bin]# ./hadoop namenode -format (对namenode格式化)
[root@master bin]# ./start-all.sh (启动)
启动完毕后,输入jps,查看当前的进程
master上(只有是这四个的时候才是正常,其他的情况请检查上面的配置文件)
[root@master bin]# jps
29161 NameNode
29447 Jps
29330 SecondaryNameNode
28559 JobTracker
drwxr-xr-x - root supergroup 0 2017-08-07 09:02 /usr
[root@master bin]# ./hadoop fs -put /etc/passwd / (复制文件到该目录下)
[root@master bin]# ./hadoop fs -ls / (查看,发现passwd文件已经上传到集群中)
Found 1 items
-rw-r--r-- 3 root supergroup 1432 2017-08-06 07:31 /passwd
[root@master bin]# ./hadoop fs -cat /passwd (这个文件可以读)
使用slave1、slave2执行查看命令,结果一样(集群中/下已经新增了passwd文件)
[root@bogon bin]# ./hadoop fs -ls /
Found 1 items
slave1上(只有是这三个的时候才是正常,其他情况请检查是否传输过来的配置文件有误)
[root@bogon .ssh]# jps
28517 Jps
28449 TaskTracker
28364 DataNode
slave2上(只有是这三个的时候才是正常,其他情况请检查是否传输过来的配置文件有误)
[root@bogon .ssh]# jps
28996 Jps
28924 TaskTracker
28839 DataNode
8、验证hadoop是否能用
[root@master bin]# ./hadoop fs -ls /
Found 1 itemsf
-rw-r--r-- 3 root supergroup 1432 2017-08-06 07:31 /passwd
阅读全文
0 0
- hadoop平台搭建
- Hadoop平台的搭建
- hadoop平台的搭建
- hadoop 平台搭建
- hadoop平台搭建详解
- linux搭建hadoop平台
- hadoop平台安装搭建
- Hadoop/Spark平台搭建
- hadoop平台搭建
- Hadoop平台的搭建
- Ubuntu 搭建hadoop平台
- Hadoop平台搭建
- hadoop平台搭建的经验总结
- Hadoop平台研究和搭建
- hadoop 安装 配置 平台搭建
- Hadoop平台搭建(1)
- centos下搭建hadoop平台
- centos6.5 搭建hadoop平台
- STL之函数对象和谓词
- Jupyter Notebook 快捷键
- 基于Unity3D的相机功能的实现(二)——AR相机
- win10 Python3.6.0下安装pytorch
- OSI七层模型
- Hadoop平台搭建
- 自然语言处理(二 RNN语言模型)
- gulp配置笔记
- Disjoint Sparse Table(不相交散列表)模板
- TCP连接的建立与终止
- leetCode-Shortest Unsorted Continuous Subarray
- windows10下JAVA中环境变量的设置
- I
- BP神经网络示例(Matlab)