学习搭建方法,搭建3台机器
使用安装包:
将上一篇Linux搭建的虚拟机作为主节点
1.将主节点挂起/关闭,找到主节点所在目录
2.复制2个主节点文件夹并改名slave1和slave2
3.在虚拟机中加载新建的两个文件夹作为新的虚拟机并运行和重命名
4.slave1 → su → cd /etc/sysconfig/network-scripts/ → ls → vim ifcfg-eth0 修改IP地址
5.重启网卡 : /etc/init.d/network restart
Linux解决Device eth0 does not seem to be present,delaying initialization问题:
https://www.linuxidc.com/Linux/2018-08/153408.htm
6.网络适配器 → 设置 → 移除网络适配器
7.添加网络适配器
8.查看是否能上网: curl www.baidu.com
解决centos 错误curl: (6) Couldn’t resolve host:
https://www.jianshu.com/p/c57027fa159a
9.slave2同上
使用SecureCRT连接
1.复制上次配置的终端并重命名
2.右键进一步设置
3.打开三个连接,分别检查IP地址
4.分别查看是否能上网
curl www.baidu.com
ping www.baidu.com
5.使用Xshell也可以
----------------------------------------------------------------------------------
安装master上的Java
1.将安装包拷贝到三台机器上
(1)点击虚拟机master右键设置 → 选项 → 共享文件夹 → 总是启用 → 添加 →
(2)查看是否共享成功:cd /mnt/hgfs/,若不显示共享文件夹,则可以使用Xftp传输文件
使用Xftp在linux文件夹下不能修改权限
https://jingyan.baidu.com/article/d169e1865c8c5e436611d8fb.html
(3)我使用了Xftp传输至如下路径:cd /home/kyoya/Downloads/share/
(4)移动文件夹:
cp jdk-6u45-linux-x64.bin ^C
cp * /usr/local/src/
(5)进入目录:cd /usr/local/src/
(6)查看权限:ll
(7)赋予权限并运行:
chmod 777 jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin
(8)找到安装路径:
/usr/local/src/jdk1.6.0_45
(9)编辑环境变量:vim ~/.bashrc
export JAVA_HOME=/usr/local/src/jdk1.6.0_45
export CLASSPATH=.:\(CLASSPATH:\)JAVA_HOME/lib
export PATH=\(PATH:\)JAVA_HOME/bin
(10)运行java:
source ~/.bashrc → cd → ls → java
得到路径:which java
/usr/local/src/jdk1.6.0_45/bin/java
安装slave1和slave2上的Java
(1)复制Java包过去
cd /usr/local/src/ → ls → scp -rp jdk-6u45-linux-x64.bin 192.168.144.11:/usr/local/src/ → scp -rp jdk-6u45-linux-x64.bin 192.168.144.12:/usr/local/src/
中间到输入密码的时候可能会比较慢,耐心等待
(2)切换到slave1
su → cd /usr/local/src/ → ls → ./jdk-6u45-linux-x64.bin → vim ~/.bashrc →添加环境变量 → bash → java
(3)slave2重复上一步
安装Hadoop集群
(1)检查IP和集群
(2)安装Hadoop
tar xvzf hadoop-1.2.1-bin.tar.gz → ls → cd hadoop-1.2.1
新建tmp文件存储之后的临时文件:mkdir tmp
进入文件夹:cd conf/ → ls
修改文件: vim masters ↓
vim slaves ↓
vim core-site.xml ↓
vim mapred-site.xml ↓
vim hdfs-site.xml ↓
vim hadoop-env.sh ↓
(3)查看修改的6个文件:ls -rlt
(4)配置当前机器DNS
ctrl+c → vim /etc/hosts
(5)设定hostname
临时:hostname master → hostname
永久:vim /etc/sysconfig/network
- 重新连接终端
(6)拷贝目录到slave1和slave2
cd /usr/local/src/ → ls → scp -rp hadoop-1.2.1 192.168.144.11:/usr/local/src/ → scp -rp hadoop-1.2.1 192.168.144.12:/usr/local/src/
(7)切换slave1,查看是否拷贝完成
cd hadoop-1.2.1/ → cd conf/ → ls → cat core-site.xml → cat mapred-site.xml → cat hdfs-site.xml → cat hadoop-env.sh → cat masters → cat slaves
(8)修改文件
vim /etc/hosts → vim /etc/sysconfig/network
(9)slave2同样执行7和8
(10)关闭防火墙 :/etc/init.d/iptables stop → iptables -L
(11)排除:setenforce 0 → getenforce
(12)建立关系(访问另两台机器不用输入密码)
在master节点上:cd /usr/local/src/ → ssh-keygen → 回车3次
进入隐藏目录:cd ~/.ssh/
将公钥内容拷贝到authorized_keys文件:cat id_rsa.pub > authorized_keys
查看公钥内容:cat id_rsa.pub → cat authorized_keys
(13)在slave1和slave2上执行:ssh-keygen
分别登录相应ssh文件夹查看公钥:cd ~/.ssh/ → cat id_rsa.pub
(14)将上面两条公钥复制到master的authorized_keys文件夹里:vim authorized_keys → cat authorized_keys
(15)将authorized_keys拷贝到slave1和slave2 :scp -rp authorized_keys slave1:~/.ssh/
(16)在master节点上验证是否能读取其他两台机器:ssh slave1
(17)在master上启动Hadoop集群:(第一次启动需格式化)
cd /usr/local/src/hadoop-1.2.1/bin → ./hadoop namenode -format → ./start-all.sh → jps
(18)验证是否启动:./hadoop fs -ls /
尝试上传文件: ./hadoop fs -put /etc/passwd /
尝试读取文件: ./hadoop fs -ls /
查看上传的文件:./hadoop fs -cat /passwd
完结撒花✿✿ヽ(°▽°)ノ✿