Hadoop所需环境配置
操作系统:Ubuntu1604-64位
Hadoop版本:Apache hadoop 2.6.1
配置集群hostname
Hadoop集群由一个master节点和一个slave节点组成:
hostname | IP | 进程 |
---|---|---|
hadoop-master | 10.111.131.65 | NameNode and JobTracker |
hadoop-slave | 10.111.131.67 | DataNode and TaskTracker |
集群内节点的hostname不能重复
把节点信息加入master和slave的/etc/hosts
为操作系统添加组hadoop,用户hadoop,后续操作以及开发都以hadoop登录操作
安装jdk1.8
安装和配置ssh
sudo apt-get install ssh openssh-server
配置master到slave节点ssh免密码登录
在master上执行
ssh-keygen -t rsa
全部采用默认参数,直接回车,在~/.ssh/下生成密钥
把~/.ssh/id_rsa.pub的内容加入slave节点的~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@hadoop-slave:/home/hadoop/
登录slave节点,执行
sudo mkdir -p ~/.ssh
cat /home/hadoop/id_rsa.pub >> ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
修改sshd配置文件
sudo vi /etc/ssh/sshd_config
相关配置如下
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
重启sshd
service sshd restart
测试是否配置成功
ssh hadoop@hadoop-slave
如不输入密码直接登录则表示配置成功
配置slave到master节点ssh免密码登录
在slave上执行
ssh-keygen -t rsa
全部采用默认参数,直接回车,在~/.ssh/下生成密钥
把~/.ssh/id_rsa.pub的内容加入master节点的~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub hadoop@hadoop-master:/home/hadoop/
登录master节点,执行
sudo mkdir -p ~/.ssh
cat /home/hadoop/id_rsa.pub >> ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
修改sshd配置文件
sudo vi /etc/ssh/sshd_config
相关配置如下
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
重启sshd
service sshd restart
测试是否配置成功
ssh hadoop@hadoop-master
如不输入密码直接登录则表示配置成功
Hadoop的安装和配置
master节点
下载Hadoop包并解压到指定目录:
sudo mkdir -p /home/hadoop/hadoop
cd /home/hadoop/hadoop
sudo tar -xzvf hadoop-2.6.1.tar.gz
修改~/hadoop/hadoop-2.6.1/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/java/jdk1.8.0_131
JAVA_HOME要用绝对路径,不能写成${JAVA_HOME}
修改~/hadoop/hadoop-2.6.1/etc/hadoop/core-site.xml
把下列内容加入configuration节点之间
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop/hadoop-2.6.1/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-master:9000</value>
</property>
修改~/hadoop/hadoop-2.6.1/etc/hadoop/hdfs-site.xml
把下列内容加入configuration节点之间
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop/hadoop-2.6.1/dfs/name</value>
<description>Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop/hadoop-2.6.1/dfs/data</value>
<description>Comma separated list of paths on the local filesystem of a DataNode where it should store its blocks.</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
修改~/hadoop/hadoop-2.6.1/etc/hadoop/mapred-site.xml
sudo cp mapred-site.xml.template mapred-site.xml
把下列内容加入configuration节点之间
<property>
<name>mapred.job.tracker</name>
<value>hadoop-master:9001</value>
<description>Host or IP and port of JobTracker.</description>
</property>
修改~/hadoop/hadoop-2.6.1/etc/hadoop/masters
把master加入进去
hadoop-master
修改~/hadoop/hadoop-2.6.1/etc/hadoop/slaves
把slave加入进去
hadoop-slave
修改hadoop目录权限
sudo chmod 777 ~/hadoop/hadoop-2.6.1
至此master节点hadoop配置已完成
slave节点
把master配置好的hadoop文件夹复制到所有slave节点的相同位置
scp -r ~/hadoop/hadoop-2.6.1 hadoop@hadoop-slave:/home/hadoop/hadoop/hadoop-2.6.1
启动hadoop
在master节点上
格式化hdfs的namenode
cd /home/hadoop/hadoop/hadoop-2.6.1
bin/hdfs namenode -format
启动集群
sbin/start-dfs.sh
结果验证
若启动成功,在命令行输入
jps
会输出类似信息
4418 NameNode
5405 Jps
4606 SecondaryNameNode
在浏览器地址栏输入
http://10.111.131.65:50070/
可通过UI查看集群信息,也可验证集群是否部署成功。
关闭hdfs集群的命令
sbin/stop-dfs.sh