1、使用VMware安装3台ubuntu-16.04.3-server
hadoop-master、hadoop-node1、hadoop-node2
安装是用户都是zhang
2、启用root登录并设计密码
sudo passwd root
3、开启和设置防火墙ufw
master开启22和50070或更多端口
node1和node2开启22和9000或更多端口
4、安装ssh、vim或其他软件
sudo apt-get install -y ssh vim
5、设置固定ip
hadoop-master 192.168.1.150
hadoop-node1 192.168.1.151
hadoop-node2 192.168.1.152
命令:sudo vim /etc/network/interfaces
修改:
# The primary network interface
auto ens33
iface ens33 inet static
address 192.168.1.150
gateway 192.168.1.1
netmask 255.255.255.0
dns-nameservers 192.168.0.1, 192.168.1.1
6、修改主机名
sudo vim /etc/hostname
hadoop-master 是 master
hadoop-node1 是 node1
hadoop-node2 是 node2
7、修改hosts文件
sudo vim /etc/hosts
每台此文件都增加三条:
192.168.1.150 master
192.168.1.151 node1
192.168.1.152 node2
8、配置无密码的相互访问ssh
用户目录下执行:ssh-keygen
默认路径,无密码,会在当前用户的文件夹中产生一个.ssh文件夹。
接下来我们先处理master这台机器的访问。我们进入这个文件夹,
cd .ssh
然后允许无密码访问,执行:
cp id_rsa.pub authorized_keys
然后要把node1和node2的公钥传给master,进入node1
scp ~/.ssh/id_rsa.pub zhang@master:/home/zhang/.ssh/id_rsa.pub.node1
然后在node2上也是:
scp ~/.ssh/id_rsa.pub zhang@master:/home/zhang/.ssh/id_rsa.pub.node2
将 node1 和 node2 的公钥信息追加到 master 的 authorized_keys文件中,切换到master机器上,执行:
cat id_rsa.pub.node1>> authorized_keys
cat id_rsa.pub.node2>> authorized_keys
现在authorized_keys就有3台机器的公钥,可以无密码访问任意机器。只需要将authorized_keys复制到node1 和node2 即可。在master上执行:
scp authorized_keys zhang@node1:/home/zhang/.ssh/authorized_keys
scp authorized_keys zhang@node2:/home/zhang/.ssh/authorized_keys
测试一下,在master上运行
ssh node1
ssh node2
9、安装JDK
把jdk-8u121-linux-x64.tar.gz放到/home/zhang/awin/目录下
cd /home/zhang/awin/
tar xvzf jdk-8u161-linux-x64.tar.gz
在/home/zhang/.bashrc最后加上
# Java Env
export JAVA_HOME=/home/zhang/awin/jdk1.8.0_161
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
执行source ~/.bashrc
使配置生效
测试:java -version
10、下载、解压Hadoop、配置环境变量
http://archive.apache.org/dist/hadoop/common/hadoop-2.7.4/hadoop-2.7.4.tar.gz
把hadoop-2.7.4.tar.gz放到/home/zhang/awin/目录下
cd /home/zhang/awin/
tar xvzf hadoop-2.7.4.tar.gz
在/home/zhang/.bashrc最后加上
# Hadoop Env
export HADOOP_HOME=/home/zhang/awin/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source ~/.bashrc
使配置生效
测试:hadoop version
11、配置Hadoop
在node1和node2上只做11.1和11.2的配置
cd /home/zhang/awin/hadoop-2.7.4/etc/hadoop
11.1、修改hadoop-env.sh,最后增加
# my config
export JAVA_HOME=/home/zhang/awin/jdk1.8.0_161
export HADOOP_PREFIX=/home/zhang/awin/hadoop-2.7.4
11.2、修改core-site.xml
hadoop.tmp.dir
/home/zhang/hadooptemp
A base for other temporary directories.
fs.defaultFS
hdfs://master:9000
指定一个临时文件夹路径,这个路径必须存在并有权限访问,创建一个~/hadooptemp
目录
11.3、修改hdfs-site.xml
设置HDFS复制的数量
dfs.replication
3
11.4、最后打开slaves文件,设置有哪些slave节点,master即是Name Node又是Data Node
master
node1
node2
12、启动Hadoop
回到master节点,运行:hdfs namenode -format
格式化NameNode,然后执行:start-all.sh
这里master会启动自己的服务,同时也会启动node1和node2上的对应服务
运行jps
查看有哪些进程,三台机器都可以运行查看
master上运行jps结果:
zhang@master:~$ jps
1712 Jps
1558 ResourceManager
1674 NodeManager
1082 NameNode
1196 DataNode
1374 SecondaryNameNode
node1和node2上运行jps结果:
zhang@node1:~$ jps
1025 NodeManager
914 DataNode
1131 Jps
浏览器中访问:
http://192.168.1.150:50070/
http://192.168.1.150:8088/cluster