Hadoop集群2.X安装配置

来源:互联网 发布:hadoop windows 编辑:程序博客网 时间:2024/05/21 21:48

Hadoop三种运行方式:单节点方式(单台)、单机伪分布方式(一个节点的集群)与完全分布式(多台组成集群)

下面以hadoop完全分布式为例,

Hadoop 集群的安装配置大致为如下流程:

假设需要搭建1 Master,1 Slave

1.网络配置

2.安装JDK

3.创建专门用户hadoop,配置ssh免登录

4.Master安装hadoop文件,修改配置文件,拷贝到其他Slave机器上

5.启动haoop


具体过程

1.网络配置

root身份

(1)先将虚拟机的网络模式选为NAT, VirturalBox 中为桥接模式,MAC地址保证不同

(2)修改主机名

在 Ubuntu/CentOS 7 中修改/etc/hostname

CentOS 6.x 系统,则是修改 /etc/sysconfig/network 文件,改为 HOSTNAME=Master

对应的另外一台机器,相应的改为HOSTNAME=Slave1

(3)修改IP

/etc/sysconfig/network-scripts/ifcfg-eth0,

Master 为IPADDR="192.168.1.101" 

Slave1为IPADDR="192.168.1.102"

(4)关闭防火墙

service iptables stop

chkconfig iptables off

(5)重启linux

reboot


2.安装JDK

root 身份

(1)解压jdk
#创建文件夹
mkdir /home/hadoop/app
#解压
tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app

(2)将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile



3.创建专门用户hadoop,配置ssh免登录

root 身份

useradd hadoop (创建用户)

passwd hadoop (设置密码,为简单起见,3台机器上的hadoop密码最好设置成一样,比如hadoop123)

为了方便,建议将hadoop加入root用户组,操作方法:

先以root身份登录,然后输入

usermod -g root hadoop ,执行完后hadoop即归属于root组了,可以再输入

id hadoop 查看输出验证一下,如果看到类似下面的输出:

uid=502(hadoop) gid=0(root) 组=0(root)

就表示OK了 

配置ssh免登录

先在master上,生成公钥、私钥对

以hadoop身份登录到系统

cd (进入个人主目录,默认为/home/hadoop)

ssh-keygen -t rsa -P '' (注:最后是二个单引号)

即:以rsa算法,生成公钥、私钥对,-P ''表示空密码。该命令运行完后,会在个人主目录下生成.ssh目录,里面会有二个文件id_rsa(私钥) ,id_rsa.pub(公钥)

导入公钥

cat .ssh/id_rsa.pub >> .ssh/authorized_keys

执行完以后,可以在本机上测试下,用ssh连接自己,即:ssh localhost (或ssh master),如果不幸还是提示要输入密码,说明还没起作用,还有一个关键的操作

chmod 600 .ssh/authorized_keys (修改文件权限,否则不起作用)

然后再测试下 ssh localhost ,如果不需要输入密码,就连接成功,表示ok,一台机器已经搞定了。

 在其它机器上生成公钥、密钥,并将公钥文件复制到master

a) 以hadoop身份登录其它机器 Slave1执行 ssh-keygen -t rsa -P '' 生成公钥、密钥

b) 然后用scp命令,把公钥文件发放给Master(即:刚才已经搞定的那台机器)

slave1上:

scp .ssh/id_rsa.pub hadoop@master:/home/hadoop/id_rsa_01.pub

这二行执行完后,回到master中,查看下/home/hadoop目录,应该有二个新文件id_rsa_01.pub、id_rsa_02.pub,然后在master上,导入这二个公钥

cat id_rsa_01.pub >> .ssh/authorized_keys

这样,master这台机器上,就有所有3台机器的公钥了。

将master上的“最全”公钥,复制到其它机器

a) 继续保持在master上,

scp .ssh/authorized_keys hadoop@Slave1:/home/hadoop/.ssh/authorized_keys

b) 修改其它机器上authorized_keys文件的权限

slave1机器上,均执行命令

chmod 600 .ssh/authorized_keys

验证

在每个虚拟机上,均用 ssh 其它机器的hostname 验证下,如果能正常无密码连接成功,表示ok


4.Master安装hadoop文件,修改配置文件,拷贝到其他Slave机器上

(1)先上传hadoop的安装包到服务器上去/home/hadoop/

注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

(2)需要修改8个配置文件

etc/hadoop/hadoop-env.sh,etc/hadoop/yarn-env.sh,core-site.xml,core-site.xml,hdfs-site.xml,mapred-site.xml ,yarn-site.xml,slaves

vi etc/hadoop/hadoop-env.sh (及 vi etc/hadoop/yarn-env.sh)

export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585


core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6/tmp</value>
</property>


hdfs-site.xml   
<!-- 指定HDFS副本的数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>    
<property>
<name>dfs.secondary.http.address</name>
<value>192.168.1.101:50090</value>
</property>


mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>


slaves (伪分布式可以不用配置)

添加Slave1


5.启动hadoop

(1)将hadoop添加到环境变量

vi /etc/proflie
export HADOOP_HOME=/home/hadoop/hadoop-2.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

(2)格式化namenode(是对namenode进行初始化)
hdfs namenode -format (hadoop namenode -format)

(3)启动hadoop
先启动HDFS

sbin/start-dfs.sh

再启动YARN
sbin/start-yarn.sh

(4)验证是否成功

http://192.168.1.101:50070 (HDFS管理界面)
http://192.168.1.101:8088 (MR管理界面)

使用jps命令验证
NameNode
SecondaryNameNode
NodeManager
ResourceManager
DataNode















 



原创粉丝点击