(Hadoop入门系列一)Hadoop集群搭建

来源:互联网 发布:淘宝导航尺寸是多少 编辑:程序博客网 时间:2024/06/05 07:05

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

0 0
原创粉丝点击