准备工作:
1.安装VMware Workstation Pro
2.新建三个虚拟机,安装centOS7.0 版本不限
配置工作:
1.准备三台服务器(nameNode10、dataNode20、dataNode30)
2.配置三台机器网络ip分别为(192.168.18.10、192.168.18.20、192.168.18.30)
2.1 进入/etc/sysconfig/network-scripts 修改 ifcfg-ens33 文件,定义网卡 信息如下,三台机器都要配置
ONBOOT=yes
IPADDR=192.168.18.30
GATEWAY=192.168.18.2
DNS1=114.114.114.114
2.2网卡验证
执行命令:ping 192.168.18.30
2.3配置hosts域名 文件位置:/etc/hosts
nameNode10.com、dataNode20.com、dataNode30.com
3.安装jdk (三台机器都要配置)
3.1下载jdk安装包
3.2安装并配置环境变量
3.3生效 source profile
3.4验证:java -version
4.安装Hadoop(三台机器都要配置)
4.1下载hadoop安装包
4.2安装并配置环境变量
4.3生效 source profile
4.3验证:hadoop version
5.配置免密登录(三台机器都要配置)
5.1 配置免密
方法一:
1)分别在四台机器上执行 ssh-keygen 一直按回车
2)。分别在四台机器上执行 ssh-coyp-id "目标机器" 命令
比如:
在nameNode10机器上分别执行
ssh-copy-id dataNode20.com
ssh-copy-id dataNode30.com
在nameNode20机器上分别执行------
ssh-copy-id nameNode10.com
ssh-copy-id dateNode30.com
依次类推
方法二(推荐):
1)检查是否安装了ssh相关软件包(openssh-server + openssh-clients + openssh)
$yum list installed | grep ssh
2)检查是否启动了sshd进程
$>ps -Af | grep sshd
3)在client侧生成公私秘钥对。
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
4)生成~/.ssh文件夹,里面有id_rsa(私钥) + id_rsa.pub(公钥)
5)追加公钥到~/.ssh/authorized_keys文件中(文件名、位置固定)
$>cd ~/.ssh
$>cat id_rsa.pub >> authorized_keys
6)修改authorized_keys的权限为644.
$>chmod 644 authorized_keys
7)在每台机器上发送至目标机器并执行
dataNode20.com===> root@nameNode10.com
dataNode20.com===>ssh-copy-id -i ~/.ssh/id_rsa.pub root@nameNode30.com
依次类推
5.2验证方法
在当前服务器下(nameNode10.com),执行ssh nameNode10.com 会自动进入dataNode20.com 服务器
6.配置core-site.xml 指明nameNode节点
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://nameNode10.com:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/tmp</value>
</property>
</configuration>
7.配置hdfs-site.xml 指明复制个数
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
8.修改hadoop/etc/hadoop/hadoop-env.sh 指定jdk地址
exoprt JAVA_HOME=/opt/jdk
9.配置dataNode节点 vim /hadoop/etc/hadoop/slaves 文件 (高版本需要路径hadoop/etc/hadoop/workers)
dataNode20.com
dataNode30.com
10.格式化nameNode
hadoop namenode -format
11. 在start-dfs.sh stop-dfs.sh配置权限
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
HDFS_JOURNALNODE_USER=root
HDFS_ZKFC_USER=root
12.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
13.启动 ./start-dfs.sh 并上传文件测试:hdfs dfs -put /local/txt /test
查看各控制台
namenode控制台
http://nameNode10.com:9870
hdfs dfs -ls /
hdfs dfs -mkdir /test
hdfs dfs -put /local/txt /test
hdfs dfs -cat /test/txt
....
提交hadoop任务
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input/wc.input /output