@DFFuture
2017-03-28T12:28:00.000000Z
字数 2993
阅读 1325
Hadoop
- 操作系统:Ubuntu 14.04(安装过程可参见安装Ubuntu 16)
- 硬件:4台Dell Precison Tower 7810,1台交换机
- 软件包:jdk-7u80-linux-x64.tar.gz
主机名与IP地址如下表所示:
hostname | IP | username |
---|---|---|
hadoop01 | 192.168.1.11 | hadoop |
hadoop02 | 192.168.1.12 | hadoop |
hadoop03 | 192.168.1.13 | hadoop |
hadoop04 | 192.168.1.14 | hadoop |
下面以hadoop01为例配置网络
快捷键Alt + Ctrl + T调出终端Terminal
查看用户名是否是hadoop
whoami
查看主机名是否和标签上的主机名一致
# 查看主机名
hostname
如果不一致,修改主机名,重启
# 修改主机名
sudo vim /etc/hostname
# 重启
sudo reboot
[注] Ubuntu不自带Vim编辑器,需要另外安装(也可以用gedit进行编辑)
# 更新源
sudo apt-get update
# 安装vim
sudo apt-get install -y vim
修改hosts
sudo vim /etc/hosts
注释掉127.0.1.1那一行,再添加以下内容(和表1的对应关系一致)
192.168.1.11 hadoop01
192.168.1.12 hadoop02
192.168.1.13 hadoop03
192.168.1.14 hadoop04
查看网络配置,结果如下图所示
ifconfig
eth0代表第一块网卡,为该网卡配置静态IP
sudo vim + /etc/network/interfaces
添加以下内容,注意主机名与IP地址的对应关系
auto eth0
# 静态IP
iface eth0 inet static
# IP地址
address 192.168.1.11
# 子网掩码
netmask 255.255.255.0
# 网关
gateway 192.168.1.1
# DNS
dns-nameservers 202.120.111.3
重启使配置生效
都配置完后,查看是否配置成功
查看IP是否正确
ifconfig
主机之间是否能ping通
ping hadoop01 -c 3
ping hadoop02 -c 3
ping hadoop03 -c 3
ping hadoop04 -c 3
下图说明可以hadoop02可以ping通hadoop01(ping通其他主机结果类似)
默认情况下,Ubuntu是没有安装ssh服务端,所以先安装openssh-server
sudo apt-get install -y openssh-server
安装open-server后,可以通过SSH远程登录服务器进行操作
4台主机都安装openssh-server后,再进行以下步骤
仍以hadoop01为例
生成ssh公钥
# 如果没有~/.ssh目录,通过下面命令会自动生成该目录
ssh localhost
# 进入.ssh目录
cd ~/.ssh
# 如果之前生成过密钥,先删除以前的密钥
rm ./id_rsa*
# 生成密钥
ssh-keygen -t rsa -P "" #一直按回车就可以了
# 将公钥添加到autorized_keys中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将公钥传输到其他节点上(需要输入密码)
scp ~/.ssh/id_rsa.pub hadoop@hadoop02:~
scp ~/.ssh/id_rsa.pub hadoop@hadoop03:~
scp ~/.ssh/id_rsa.pub hadoop@hadoop04:~
进入其他主机系统的主目录,ls
可以看到公钥id_rsa.pub,将公钥添加到authorized_keys中,然后删除公钥
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm -rf id_rsa.pub
如果都能无密码登陆,说明配置成功(第一次ssh登录需要输入yes
)
ssh hadoop01
ssh hadoop02
ssh hadoop03
ssh hadoop04
这样通过SSH连接,在一台主机就可以登录所有的主机进行管理
设置root密码(可选)
sudo passwd root
修改配置文件
sudo vim /etc/ssh/sshd_config
修改如下:
#PermitRootLogin without-password
PermitRootLogin yes
root用户登录
sudo su
操作和上一节类似,只要将hadoop改为root即可
进入软件包所在目录,将jdk-7u80-linux-x64.tar.gz解压并移到/usr/java/目录下
sudo mkdir /usr/java/
sudo chown hadoop:hadoop /usr/java/
# 解压移动JAVA软件包
tar -zxvf jdk-7u80-linux-x64.tar.gz
sudo mv jdk1.7.0_80 /usr/java/jdk1.7
可以通过scp将软件复制到其他主机上,这里先复制Java,等配置完Hadoop后,再复制Hadoop
scp -r /usr/java/jdk1.7 hadoop@hadoop02:/usr/java/
scp -r /usr/java/jdk1.7 hadoop@hadoop03:/usr/java/
scp -r /usr/java/jdk1.7 hadoop@hadoop04:/usr/java/
为JAVA设置环境变量
打开并编辑配置文件~/.bashrc(不是/etc/profile)
# 编辑bashrc
vim ~/.bashrc
如下图所示,输入以下变量
export JAVA_HOME=/usr/java/jdk1.7
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
保存后执行source ~/.bashrc
使配置生效
查看环境变量配置是否成功,如下图所示,说明配置成功
# 查看JAVA版本
java -version
通过scp将.bashrc复制到其他主机上
scp ~/.bashrc hadoop@hadoop02:~
scp ~/.bashrc hadoop@hadoop03:~
scp ~/.bashrc hadoop@hadoop04:~
因为主机另带有一块3T的机械硬盘,所以需要将硬盘家在到系统中
# 查看硬盘分区
fdisk -lu
# 格式化硬盘
sudo mkfs -t ext4 /dev/sdb
# 新建挂载点
sudo mkdir /mnt/hdfs1
# 挂载
sudo mount -t ext4 /dev/sdb /mnt/hdfs1/
# 修改拥有者
sudo chown -R hadoop:hadoop /mnt/hdfs1/
设置开机自动挂载
sudo vim + /etc/fstab
在末尾输入输入
# 设备名称 挂载点 文件系统类型
/dev/sdb /mnt/hdfs1 ext4 defaults 0 0