0%

Hadoop1.X伪分布式安装

安装模式

单机模式

安装简单,几乎不用作任何配置,但仅限于调试用途;

伪分布模式

在单节点上同时启动NameNode、DataNode、JobTracker、TaskTracker、Secondary Namenode等5个进程,模拟分布式运行的各个节点;

完全分布式模式

正常的Hadoop集群,由多个各司其职的节点构成

实验环境

创建安装用户(sunld),所有的组件和jdk放到目前/app下,并且授权如下:
chown –R sunld:sunld /app

设置网络

IP地址: 192.168.42.8
子网掩码: 255.255.255.0
DNS: 221.12.1.227 (需要根据所在地设置DNS服务器)
Domain: 221.12.33.227

效果如下:

设置机器名(重启后生效)

设置host映射文件

1
sudo vi /etc/hosts

使用ping命令验证配置是否正确

关闭防火墙

1
2
sudo service iptables status
sudo chkconfig iptables off

关闭Selinux

  1. 使用getenforce命令查看是否关闭
  2. 修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled,执行该命令后重启机器生效

安装jdk

首先在官网现在安装包,创建安装目录,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
sudo mkdir /app
sudo chown -R sunld:sunld /app
mkdir /app/lib

tar -zxf jdk-7u55-linux-x64.tar.gz
mv jdk1.7.0_55/ /app/lib
ll /app/lib

配置环境变量:sudo vi /etc/profile
export JAVA_HOME=/app/lib/jdk1.7.0_55
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

验证

1
2
source /etc/profile
java -version

更新OpenSSL

1
yum update openssl

SSH无密码验证配置

  1. 使用sudo vi /etc/ssh/sshd_config,打开sshd_config配置文件,开放三个配置
    • RSAAuthentication yes
    • PubkeyAuthentication yes
    • AuthorizedKeysFile .ssh/authorized_keys
  2. 配置后重启服务:sudo service sshd restart
  3. 使用shiyanlou用户登录使用如下命令生成私钥和公钥;ssh-keygen -t rsa
  1. 进入/home/shiyanlou/.ssh目录把公钥命名为authorized_keys,使用命令如下:cp id_rsa.pub authorized_keys
  2. 使用如下设置authorized_keys读写权限:sudo chmod 400 authorized_keys
  3. 测试ssh免密码登录是否生效

Hadoop变量配置

下载安装包

1
2
3
tar -xzf hadoop-1.1.2-bin.tar.gz
rm -rf /app/hadoop-1.1.2
mv hadoop-1.1.2 /app

创建子目录

1
2
3
4
5
6
cd /app/hadoop-1.1.2
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
ls

把hdfs/data设置为755,否则DataNode会启动失败
chmod -R 755 data

配置hadoop-env.sh

  1. 进入hadoop-1.1.2/conf目录,打开配置文件hadoop-env.sh
1
2
cd /app/hadoop-1.1.2/conf
vi hadoop-env.sh
  1. 加入配置内容,设置了hadoop中jdk和hadoop/bin路径
1
2
export JAVA_HOME=/usr/lib/java/jdk1.7.0_55
export PATH=$PATH:/app/hadoop-1.1.2/bin
  1. 编译配置文件hadoop-env.sh,并确认生效
1
2
source hadoop-env.sh
hadoop version

配置core-site.xml

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-1.1.2/tmp</value>
</property>
</configuration>

配置hdfs-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/app/hadoop-1.1.2/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/app/hadoop-1.1.2/hdfs/data</value>
</property>
</configuration>

配置mapred-site.xml

1
2
3
4
5
6
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoop:9001</value>
</property>
</configuration>

配置masters和slaves文件

  1. vi masters
  2. vi slaves
  3. 输入hadoop(节点名称)

格式化namenode

在hadoop1机器上使用如下命令进行格式化namenode
hadoop namenode -format

启动hadoop

1
2
cd /app/hadoop-1.1.2/bin
./start-all.sh

用jps检验各后台进程是否成功启动