一、安装VM10+Ubuntu

下载安装完成后,创建一个用户:xm

二、下载安装JDK

在线安装:sudu apt-get insatll jdk

离线安装:先把离线包拷贝到/home 下当前用户文件夹下,然后执行命令安装。

cd /home/xm/

tar -zxvf jdk-8u45-linux-x64.tar

mv jdk-8u45-linux-x64.tar

解压完之后,创建一个soft文件夹,把解压后文件放进去(也可以不放,无所谓,总之要注意接下来的配置文件中的路径问题)配置环境环境变量,把java变成系统内命令。

sudo apt-get install vim

sudo gedit /etc/profile

添加两行:

export  JAVA_HOME=/home/xm/soft/jdk_1.8
export  PATH=$PATH:$JAVA_HOME/bin

source /etc/profile             //使设置生效

java -version                      //查看java版本

三、hadoop安装

把离线包拷贝到当前用户文件夹下,然后解压。          //如果不是当前用户主目录,需要修改权限,chown.......

bin sbin:sh 文件是命令文件 etc是配置文件

sudo gedit /etc/profile

修改:

export  JAVA_HOME=/home/liu/soft/jdk1.8.0_45
export  HADOOP_HOME=/home/liu/hadoop-2.7.1
export  PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH:$HADOOP_HOME/share/hadoop/common/hadoop-common-2.7.1.jar:$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.1.jar:$HADOOP_HOME/share/hadoop/common/lib/commons-cli-1.2.jar

//注意,各种版本要相互匹配。各种配置不要换行,后面不要加空格,中间不要有多余的空格。

source /etc/profile

cd /home/xm/hadoop-2.7.1/etc/hadoop

sudo gedit hadoop-env.sh

添加两行:

export JAVA_HOME=/home/xm/jdk1.8.0_45

export HADOOP_PREFIX=/home/xm/hadoop-2.7.1

测试是否可用:执行命令

hadoop   //应该会输出option的信息

使用hadoop本地单独模式

一个计数的例子:使用hadoop自带的hadoop-mapreduce-examples-2.6.0.jar 对某目录下的文档进行单词数的统计。

执行命令:

cd  /home/hadoop/hadoop-2.7.1   
mkdir  input
cp   etc/hadoop/*.xml   input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
cat output/*

四、hadoop集群

1.先设置虚拟机的hostname:

sudo vim /etc/hostname   //修改一个合适的主机名 如master  、slave1 ,重启系统后生效

2.设置host文件:

sudo vim /etc/hosts

在环回地址下面添加 192.168.89.129 master  //IP地址 主机名 相当于建立了一个IP地址和主机名字的映射,这样就可以直接ping主机名了(以后克隆了虚拟机后,在每个虚拟机的host文件中加入所有的映射)

3.master主机设置静态IP:

sudo vim /etc/network/interfaces

修改成以下内容:

auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.89.129
netmask 255.255.255.0
network 192.168.89.0
boardcast 192.168.89.255
gateway 192.168.89.2
dns-nameservers 8.8.8.8 8.8.4.4
//注意 IP地址要和本机IP地址匹配 网卡名称ens33也并不影响 有的人是eth0 修改完成后 reboot重启

//有的版本的Ubuntu修改成功后图形界面右上角的连接标志会有变化,变成类似WiFi的形状,有的则不会,依然保持箭头。

//用ifconfig查看接口信息,看是否一致,只要这些修改完成后,能ping通外网、主机名master、主机IP地址、网关地址,就说//明成功

关机,克隆虚拟机,修改第二台虚拟机hostname为slave1,修改hosts文件,修改interfaces文件(由于是克隆,配置文件也完全一样,所以两台虚拟机的IP地址会完全一样,修改第二台虚拟机interfaces文件,把IP地址增1),继续测试ping,看能否ping另一台主机名等等。

4.配置ssh免密码登录

在线安装: sudo apt-get install ssh (不成功的话就先执行一下 sudo apt-get updata ,如果还不行就离线安装)。

离线安装:拷贝包,解压,按顺序安装。

sudo dpkg -i openssh-client_6.6p1-2ubuntu1_amd64.deb

sudo dpkg -i openssh-sftp-server_6.6p1-2ubuntu1_amd64.deb

sudo dpkg -i libck-connector0_0.4.5-3.1ubuntu2_amd64.deb

sudo dpkg -i openssh-server_6.6p1-2ubuntu1_amd64.deb

sudo dpkg -i ssh_6.6p1-2ubuntu1_all.deb

ps -e|grep sshd  //查看ssh服务是否启动

未启动的话:/etc/init.d/ssh start

(1) 先在master主机上配置公钥、私钥

cd /home/xm/

ssh-keygen -t rsa -P ''          //注意命令之间的空格!引号里面为空表示密码为空,rsa表示为RSA加密方式

(2) 导入公钥

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

执行完之后可以在本机测试一下  ssh master   //不需要密码说明成功

如果需要密码,查看一下authorized_keys文件的权限,如果是属于其他用户的,则修改权限:chown 644 .ssh/authorized_keys

(3) 在其它机器上生成公钥、密钥,并将公钥文件复制到master

在slave1上:
scp .ssh/id_rsa.pub xm@master:/home/hadoop/id_rsa_1.pub

master中,查看下/home/hadoop目录,应该有一个新文件id_rsa_1.pub
在master上,导入这二个公钥
执行命令
cat id_rsa_1.pub >> .ssh/authorized_keys

这样,master这台机器上,就有所有2台机器的公钥了。

(4) 将master上的“最全”公钥,复制到其它机器

在master上
执行命令
scp .ssh/authorized_keys xm@slave1:/home/xm/.ssh/authorized_keys

修改其它机器上authorized_keys文件的权限
slave1上执行命令
chmod 600 .ssh/authorized_keys

(5) 验证
在每个虚拟机上,均用命令  ssh+其它机器的hostname
都能正常无密码连接成功
执行命令
ssh  slave1
ssh  master

//成功安装完ssh后,可以XShell软件连接虚拟机进行操作

(6)SSH免密码设置失败解决
权限问题
.ssh目录,以及/home/当前用户 需要700权限,参考以下操作调整
sudo   chmod   777   ~/.ssh
sudo  chmod 700  /home/当前用户
.ssh目录下的authorized_keys文件需要600或644权限,参考以下操作调整
sudo chmod   644   ~/.ssh/authorized_keys   
2、StrictModes问题
sudo gedit /etc/ssh/sshd_config
找到
#StrictModes yes
改成
StrictModes no
如果还不行,可以用ssh -vvv 目标机器ip 查看详情