1、首先准备软件
vmware14下载地址:百度下载
centos7下载地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0-alpha4/
jdk8下载地址: http://www.Oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
hadoop-3.0.0-alpha4 下载地址http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0-alpha4/hadoop-3.0.0-alpha4.tar.gz
2、安装centos时,遇到的几个问题:
a、vmware14无法上网, 解决办法为设置网络为nat,
一、安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子网掩码和网关,后面修改静态IP会用到。
二、检查宿主机VM8 网卡设置,打开网络和共享中心→ 更改适配器设置→,在VMware Network Adapter VMnet8上单击右键,选择属性按钮打开属性对话框。
三、添加host映射
gedit /etc/hosts
192.168.153.66 cMaster
192.168.153.67 cSlave0
192.168.153.68 cSlave1
方案一:自动获取ip,重启会动态改变ip;
首先用 ifconfig命令查看第一个网络设备如eth0,然后执行下面语句
[root@localhost ~]# nmcli connection modify eth0 \
> connection.autoconnect yes \
> ipv4.method auto
方案二:设置静态ip
编辑网路ip等设置
gedit /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=none
IPADDR=192.168.153.66
NETMASK=255.255.255.128
GATEWAY=192.168.153.2
设置DNS
/etc/resolv.conf
search cMaster
nameserver 114.114.114.114
然后重启网络
systemctl restart network.service
b、安装vmware tool 报找不到gcc,解决办法安装gcc:yum -y install gcc
c、提示
The path "" is not a valid path to the 3.10.0-693.el7.x86_64 kernel headers.
解决办法安装kernel:
yum -y install kernel-devel
d、更新依赖: yum -y update 然后重启系统;
e、安装vmware-tool方便文件拷贝:菜单栏-虚拟机-安装vmware-tool 将tar文件拷贝到一个目录,然后执行解压缩: tar zxvf VMwareTools-10.1.15-6627299.tar.gz
解压完执行进行安装:./vmware-install.pl 一直按enter确定完成;
3、修改机器名。
打开终端,切换到root用户下修改机器名称。
$ sudo su
$ vim /etc/sysconfig/network
在其中添加“HOSTNAME=cMaster”,然后重启当前虚拟机,再查看机器名就是cMaster了。
o插入一行
:wq 保存
4、关闭当前机器的防火墙。
在root权限下执行以下两条指令,关闭防火墙并阻止其开机启动。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
5、安装jdk:rpm -ivh jdk-8u151-linux-x64.rpm 安装完后执行javac命令看是否安装成功
6、解压hadoop,部署hadoop
a、tar–zxvf /home/joe/ hadoop-3.0.0-alpha4.tar.gz 命令解压 ;
解压完成后需要在解压后目录/etc/hadoop下修改hadoop的配置文件。
b.使用如下指令编辑hadoop-env.sh文件
gedit hadoop-env.sh
在文件中找到export JAVA_HOME=${JAVA_HOME}
修改为export JAVA_HOME=/usr/java/jdk1.8.0_151(填写自己安装的jdk的路径)
c.修改core-site.xml文件
使用命令gedit core-site.xml
在<configuration>标签之间插入以下内容。
<property><name>hadoop.tmp.dir</name><value>/home/joe/cloudData</value></property>
<property><name>fs.defaultFS</name><value>hdfs://cMaster:8020</value></property>
d.修改yarn-site.xml文件
使用以下命令修改gedit yarn-site.xml
在<configuration>标签之间插入以下内容
<property><name>yarn.resourcemanager.hostname</name><value>cMaster</value></property>
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
e.修改mapred-site.xml
并用命令gedit mapred-site.xml
在<configuration>标签之间加入如下内容:
<property><name>mapreduce.framework.name</name><value>yarn</value></property>
f.启动hadoop
首先格式化主节点命名空间,使用命令:
./hadoop-3.0.0-alpha4/bin/hdfs namenode –format
其次在主节点上启动存储服务和资源管理主服务。使用命令:
./sbin/hadoop-daemon.sh start namenode #启动主存储服务
./sbin/yarn-daemon.sh start resourcemanager # 启动资源管理服务。
最后在从节点上启动存储从服务和资源管理从服务(以下两条命令要在两台机器上分别执行)
./sbin/hadoop-daemon.sh start datanode #启动从存储服务
./sbin/yarn-daemon.sh start nodemanager #启动资源管理从服务
g、hadoop无法启动namenode问题,format失败,本次主要发现两个问题,一个是 core-site.xml文件的 hadoop.tmp.dir 存储路径需手工创建且用户要有权限;第二是删除master和slave的这个文件夹里面的数据重新format才可以;
h、Hadoop启动无法访问50070端口问题,
hdfs-site.xml 添加如下解决:
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
i、start-all.sh启动报
Starting namenodes on [cMaster]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
编辑
gedit sbin/start-dfs.sh
gedit sbin/stop-dfs.sh
行首空白处加:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
报错
Starting resourcemanager
ERROR: Attempting to launch yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting launch.
Starting nodemanagers
ERROR: Attempting to launch yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting launch.
编辑
gedit sbin/start-yarn.sh
gedit sbin/stop-yarn.sh
行首空白处加
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
j、报错
localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
查看是否安装了相关软件:
rpm -qa|grep -E "openssh"
显示结果含有以下三个软件,则表示已经安装,否则需要安装缺失的软件
openssh-ldap-6.6.1p1-35.el7_3.x86_64
openssh-clients-6.6.1p1-35.el7_3.x86_64
openssh-6.6.1p1-35.el7_3.x86_64
openssh-askpass-6.6.1p1-35.el7_3.x86_64
openssh-server-6.6.1p1-35.el7_3.x86_64
openssh-keycat-6.6.1p1-35.el7_3.x86_64
openssh-server-sysvinit-6.6.1p1-35.el7_3.x86_64
安装缺失的软件:
sudo yum install openssh*
SSH配置
的集群中的每台主机上打开配置
sudo vim /etc/ssh/sshd_config
开启下面的选项
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
生成SSH密钥
的集群中的每台主机上执行下面命令,一路回车,可生成本机的rsa类型的密钥。
ssh-keygen -t rsa
执行完之后在~/.ssh/目录下会生成一个保存有公钥的文件:id_rsa.pub
把公钥写入authorized_keys文件
把自己的公钥拷贝到集群中的Master机(包括master自己也要执行一次)
ssh-copy-id hadoop@HadoopMaster
最终在Master机上生成如下的内容的~/.ssh/authorized_keys文件:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArYU2kMXsu75Gzwvuby7OoGzC7GVwxVo+ol/7nJVD BpKpJLRHRe/d2HSNe9ZZRWLK2tU0e41baMxrYRoAKJA2ujcWfy7t57c3ArO9hA7KJy7MqMiT8WHQ M3I2Afsx6sVKeQU/czDLXHn+KjwKbR8z0tuycgtxgkaWx1PCpCKeFDAXDVvxYcurSUNaIGL5Egzu Iy97N52ld/WxUZnRRsTPdpW88JkhWdOV1Bdo4O67rNv5tSYKHXfPwqi8NekqoHIExgVRsHLvM8fe xvV4mo8lXYdQPRCyrtM9/V+4kSW8eaBO7w6hM9YVZIspSqx0+OqibWTvqSmiAVh0JmUT0MCeVQ== hadoop@HadoopMaster ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7n27x4qSzRQNGQAL+rT1+91IQnM9cwZYFeSUzrJD GDfwCTJMKnRBYxrDMxTAM6MKjfwwkPzXnbKHLQnDiJKUSdF8H2xcgDMBJLssVQjOc2jSEg/VppQN hJwObbIL3k1FbU2KxkOp7yW5PIodZrgUwlH5wdXtfsPKimvv72uA1KUiqPbYA3ZJqXw9Bt87K6Sv IAkvUjshnfaS+wNEBVwW1dhXyz6DHuY+Tn9330+1oYfdmgSjS4ZqvZVothhhV58DNwzAYwINCpBA tkjFbk/SOf0q/4rSJRpe2yH9xOuZdwqXMfk3dkp0UFZkV2EVSLyaCNKwTbSuKN75FWhgl8QB7w== hadoop@HadoopSlave1 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAw91O/1NWnbr6/vop+xwnqR/XYNpwkWselzyHNqgD PYgXXsDHsvOZbpTX7pgOTgVSmlZetCdX4C1lsc/PO8IitvvBS/qWU216lXaqlW61RcliCrYH/RwN f8XTLx/Ga04w2qEIFlLOiuH6x/KA22muOLYaSIefXv38xj0Hj41iE5ZIseaLuJogn7iqJ6Fq0wQH i6ueF9BasSWnOHhn6CJamYz3FC9r2m3vwPMkgagPp1FdYyDxodK+MZlwu6TxqP6QQ7BY/Wh5DZK8 C8zpDOZGQgWOrghF58TlZSmJYmukv1NqsY8PCFuoj7vfoUzVKQkyKcEiohwBcTb50vGPl06bMQ== hadoop@HadoopSlave2
把HadoopMaster的authorized_keys拷贝到HadoopSlave1和HadoopSlave2
scp ~/.ssh/authorized_keys hadoop@HadoopSlave1:~/.ssh/ scp ~/.ssh/authorized_keys hadoop@HadoopSlave2:~/.ssh/
重启SSH服务
sudo service sshd restart
测试连接
ssh HadoopSlave1
常见免密码登录失败分析
配置问题
- 检查配置文件/etc/ssh/sshd_config是否开启了AuthorizedKeysFile选项
- 检查AuthorizedKeysFile选项指定的文件是否存在并内容正常
目录权限问题
- ~权限设置为700
- ~/.ssh权限设置为700
- ~/.ssh/authorized_keys的权限设置为600
sudo chmod 700 ~ sudo chmod 700 ~/.ssh sudo chmod 600 ~/.ssh/authorized_keys
设置完了记得重启ssh服务
参考链接:http://www.linuxidc.com/Linux/2016-11/137244.htm(hadoop)
https://www.cnblogs.com/keitsi/p/5653520.html (ssh)