VirtualBox下 Centos6.10+Hadoop2.6集群搭建 Windows客户端搭建
1 Centos下载安装
Centos镜像下载地址https://www.centos.org/download/ 我选择的是DVD版本
在VitrualBox里面新建一个虚拟机
硬盘给了10G,其他属性默认,开机,选择启动盘,把下载好的镜像放入,开始安装
趁安装的时候,在虚拟机上面视图,调成自动缩放模式,如果发现鼠标不见了,按一下键盘右边(注意是右边)的Ctrl,安装的时候根据提示操作,最后的安装进度条
安装成功后,先关机,然后设置一下网络,右键虚拟机,设置,选择网络选项卡,添加两块网卡,一个是Host-Only,这个网络连接模式只能在虚拟机和宿主机之间联通,类似一个小型局域网,第二块网卡配置成NAT模式,用于虚拟机的上网
按Ctrl+W,出来主机网络管理界面,开启DHCP服务器,进行如下配置
在windows下执行ipconfig命令,可以看见Host-Only的那块网卡
虚拟机重新开机,还会让你配置一下账号密码之类的东西,配置好之后开机
配置一下打开终端的快捷键,如图打开快捷键设置
找到Run a terminal,修改快捷键
为用户赋予root权限,需要修改/etc/sudoers文件,不建议直接用vi打开修改,使用visudo命令修改可以检查一下语法,避免损坏文件搞出大事情
su root //切换到root用户,这一部会要求输入root密码
visudo //打开/etc/sudoers文件
按一下“G”(注意是大写的),跳到文档末尾,找到##same thing without a password这一项,按照他给的例子复制一行,复制命令是yy,黏贴是p,然后按一下i开始进行文本编辑,移动光标进行文字修改。修改完后按“:”进入vim命令模式,输入wq回车,保存文件并退出。我配置的是无密码切换root模式,因为懒惰,如果你需要密码的可以用上一项
tuan ALL=(ALL) NOPASSWD: ALL
切换回自己的用户,修改一下网卡配置,为Host-Only网络指定Ip,需要修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,这一部需要root权限,如果你的Host-Only网卡是eth1就打开eth1的
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0 //打开配置文件
添加一行IPADDR=192.168.56.21,修改BOOTPROTO为static,修改ONBOOT为yes,保存关闭
sudo service network restart //重启网卡
ifconfig //查看网卡配置
弄好之后,ping一下我们的宿主机,发现ping不通,原因是windows的防火墙默认关闭了icmp,打开防火墙高级设置,在入站规则里面找到下面这条,双击,启用就可以ping通宿主机了,宿主机的Host-Only地址可以通过ipconfig查询
因为开着个界面很占资源,而且我的小破笔记本操作还有点卡,因此开启ssh服务,通过xshell上。关机,启动虚拟机的时候,右键启动—*面启动。注意当虚拟机*面启动显示启动后,还需要等一会才能用ssh连上
sudo chkconfig sshd on //开机启动ssh,可以不配置
service sshd start //启动ssh服务
2 Hadoop集群安装
按照官网文档两篇,分别是单点模式安装和集群模式安装
http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html
http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/ClusterSetup.html
2.1 依赖安装
官网说需要两个依赖:Java7和ssh,Centos6.10都有
但是我不想用Java1.7,升个级
sudo yum remove -y java //旧的不去
sudo yum install -y java-1.8.0* //新的不来
2.2 Hadoop下载
从官网提供的地址下载,直接wget
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz //下载
tar -xf hadoop-2.6.5.tar.gz //解压
mv hadoop-2.6.5 hadoop //改名
2.3 Hadoop配置
所有配置文件都是hadoop目录下的etc/hadoop下,hadoop/share/doc目录下可以找到各种配置文件的dafault版本,用find命令就能找到,如果某个配置项没有配置Hadoop就会使用这些默认配置
2.3.1 hadoop-env.sh和yarn-env.sh
修改JAVA_HOME这一项,java的安装目录可以通过这篇文章的方法找到,我的在/usr/lib/jvm/jre-1.8.0-openjdk.x86_64下面
https://blog.csdn.net/zhpengfei0915/article/details/50963199/
这一项默认是引用环境变量JAVA_HOME的值,干脆在/etc/profile里配置一个环境变量,就不用修改这两个文件了
在/etc/profile中添加
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64
保存退出
source /etc/profile //让环境变量生效
2.3.2 core-site.xml
配置默认的文件系统端口
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
2.3.3 yarn-site.xml
配置ResourceManager的ip地址
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
2.3.4 slave机创建
为了通信方便修改一下/etc/hosts文件,加入如下三行,第一个master对应现在这台虚拟机的ip地址,底下两台是slave机,保存退出
顺便为了后续方便我把Windows的hosts文件也加了这些配置
修改slaves文件,这里面配置的是slave机的ip
退出master机,复制两份为slave1和slave2,修改一下Ip
2.4 启动Hadoop
一切操作都在Hadoop目录下
最开始要初始化一下Namenode,然后会问你是否要清除所有文件云云,按Y就行
./bin/hdfs namenode -format my_hadoop
在master节点上启动Namenode和ResourceManager
./sbin/hadoop-daemon.sh --script hdfs start namenode
./sbin/yarn-daemon.sh start resourcemanager
在两个slave节点上启动Datanode和NodeManager
./sbin/hadoop-daemon.sh --script hdfs start datanode
./sbin/yarn-daemon.sh start nodemanager
最后在浏览器看一下master:50070,结果打不开,这是因为防火墙的问题,简单粗暴地关掉防火墙
sudo chkconfig iptables off
sudo service iptables stop
现在网页可以打开了
3 Windows客户端搭建
对我这种菜鸟在Linux环境开发Java程序很痛苦,所以配一个Windows客户端
直接把服务器上的hadoop打个包,用xshell下载下来
tar -cf hadoop.tar hadoop
sudo yum install lrzsz
sz hadoop.tar
Windows下也需要配置一些环境变量,如图,目录按照自己的来就好
在这个网址下载Hadoop的Windows版命令包https://github.com/steveloughran/winutils,我下的2.6.4可以用,把bin里面的覆盖到hadoop/bin
在cmd里面执行几条命令试一下
C:\Users\Lenovo>hadoop fs -mkdir /test //在hdfs新建一个test目录
C:\Users\Lenovo>hadoop fs -copyFromLocal test.txt /test/test.txt //把本地一个test.txt传到hdfs
C:\Users\Lenovo>hadoop fs -ls /test //查看test目录
上一篇: Windows下开发Cocos2d-x lua 客户端和服务器端
下一篇: zabbix介绍安装配置