centOS7环境下安装hadoop2.6

centOS 7 环境下安装Hadoop2.6

本文采用模拟分布式(自己创建了俩个虚拟机进行模拟)体验安装Hadoop的过程。

参考文章:
渣渣的夏天——CentOS 7.6 安装 Hadoop2.6.0
羽风之歌——CentOS 7.0 hadoop 2.6 安装与配置
程序媛想事儿——一步步教你Hadoop多节点集群安装配置

一、环境及所需软件

1.环境

我使用的操作系统是centOS 7 ,运行在VMWare15 pro虚拟机上。
开启了两个虚拟机,一台作为NameNode。另一台作为DataNode。
对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS(Hadoop Distributed Filesystem)集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。

2.软件

把压缩包添加到虚拟机中的方式有很多。我是选择了在虚拟机中下载。
选择了2.6.0版本的Hadoop1.7.0_80的jdk。下载jdk需要oracle账号,没有就注册一下就好。
Hadoop-2.6.0.tar.gz
jdk-7u80-linux-i586.tar.gz

二、前期准备

没有特别说明,本文的操作即是在NameNode这台虚拟机的root用户下的操作。

1.解压缩软件

(1)将下载好的Hadoop放在/home/hadoop-2.6下。放在什么目录下,这个自己随便,只要在配置环境变量时注意就好了。

创建 /home/hadoop-2.6 文件夹

mkdir /home/hadoop-2.6

转到 /home/hadoop-2.6 文件夹下

cd /home/hadoop-2.6

将hadoop压缩包复制到该文件夹之下

#linux默认下载到用户的download文件夹之下,注意自己的文件路径,yyq是我的用户名
cp /home/yyq/下载/hadoop-2.6.0.tar.gz /home/hadoop-2.6

解压缩

tar -zxvf hadoop-2.6.0.tar.gz

(2)相似的步骤,把jdk放在 /home/jdk 文件夹下解压缩

mkdir /home/jdk
cd /home/hadoop-2.6
cp /home/yyq/下载/jdk-7u80-linux-i586.tar.gz /home/jdk
tar -zxvf jdk-7u80-linux-i586.tar.gz

2.配置环境变量

编辑配置文件

vi ~/.bash_profile

在文末添加以下配置,注意环境变量的路径,根据自己的路径来写:

#export PATH
export JAVA_HOME=/home/jdk/jdk1.7.0_80
export JAVA_JRE=/home/jdk/jdk1.7.0_80/jre
export HADOOP_HOME=/home/hadoop-2.6/hadoop-2.6.0

# path
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH=$JAVA_HOME/bin:$PATH

更新配置

source ~/.bash_profile

3.开启NameNode与DataNode之间的ssh免密登录

3.1 为什么要开启ssh免密登录

Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来启动和停止各个DataNode上的各种守护进程的。这就必须在节点之间执行指令的时候是不需要输入密码的形式,故我们需要配置SSH运用无密码公钥认证的形式,这样NameNode使用SSH无密码登录并启动DataName进程,同样原理,DataNode上也能使用SSH无密码登录到 NameNode。

3.2 ssh免密登录的原理

SSH之所以能够保证安全,原因在于它采用了公钥加密。过程如下:
①远程主机收到用户的登录请求,把自己的公钥发给用户。
②用户使用这个公钥,将登录密码加密后,发送回来。
③远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

3.3 实现

(1)修改主机名
主机名的主要作用就是可以不用记比如 129.45.36.1 这样的的地址,主机名就是网络IP的一个别名,叫什么不重要。但是为了方便,我们还是修改下。

将NameNode的主机名修改为NameNode,输入命令

vi /etc/hostname

#把其中的内容替换为“NameNode”,并保存退出。

去到DataNode虚拟机里,按照相同的步骤进行操作,修改主机名为DataNode1。

vi /etc/hostname #在DataNode1的root用户下。

#把其中的内容替换为“NameNode”,并保存退出。

(2)配置IP地址和其对应主机名

修改NameNode和DataNode的 /etc/hosts 文件,都是root用户

vi  /etc/hosts

#在文件中添加以下内容,IP地址需要跟自己的虚拟机相匹配,这个要自己查,一定要一定好IP地址与主机名的关系。
192.168.140.146  DataNode1
192.168.140.145  NameNode

(3)设置秘钥

NameNode虚拟机中

ssh-keygen -t rsa   # 输入后按三次 enter 键即可

DataNode虚拟机中

#DataNode的root用户
ssh-keygen -t rsa   

输入后按三次 enter 键即可,生成的密钥会自动保存在 /root/.ssh 文件夹之下。然后将公钥交给NameNode。

#DataNode的root用户
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode1

NameNode虚拟机中
将生成的密钥添加到authorized_keys文件中

cd /root/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.Datanode1 >> authorized_keys

修改 authorized_keys 文件的权限,非常重要!!!必须是这个权限,不能高也不能低

chmod 644 authorized_keys  

将 authorized_keys 文件也传一份到DataNode,这样DataNode也可以对NameNode进行免密登录。

scp ~/.ssh/authorized_keys root@Datanode1:/root/.ssh/authorized_keys

3.4 测试连接,并关闭防火墙

 #如果不需要输入密码,那么NameNode对DataNode的免密ssh已经实现
ssh Datanode1

#关闭DataNode的防火墙
systemctl stop firewalld 

#如果不需要输入密码,那么DataNode对NameNode的免密ssh已经实现
ssh Namenode

#关闭NameNode的防火墙
systemctl stop firewalld
exit
exit

三、配置Hadoop

1.准备工作

切换目录

cd $HADOOP_HOME

建立文件夹

mkdir namenode
mkdir datanode

切换目录

cd etc/hadoop/

2. 配置公共属性 core-site.xml

vi core-site.xml
<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://Namenode:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                #value一定要跟自己虚拟机的地址相对应
                <value>/home/hadoop-2.6/hadoop-2.6.0/tmp/hadoop-${user.name}</value>
        </property>
</configuration>

3. 配置 hdfs-site.xml

vi hdfs-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                #value一定要跟自己虚拟机的地址相对应
                <value>/home/hadoop-2.6/hadoop-2.6.0/namenode/name_1</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                #value一定要跟自己虚拟机的地址相对应
                <value>/home/hadoop-2.6/hadoop-2.6.0/datanode/data_1</value>
        </property>
</configuration>

4. 配置MapReduce mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>Namenode:9001</value>
        </property>
</configuration>

5. 配置 hadoop-env.sh

vi hadoop-env.sh
# 在末行添加,路径要对
export JAVA_HOME=/home/jdk/jdk1.7.0_80

6. 配置 slaves

vi slaves
Datanode1

7. 配置DataNode

把文件复制到DataNode上去。

scp -r /home/hadoop-2.6/ root@Datanode1:/home/hadoop-2.6
scp -r /home/jdk/ root@Datanode1:/home/jdk

注意还要配置DataNode的环境变量,详情见本文的 “二、2.”。

四、验证Hadoop是否配置成功

运行Hadoop

cd $HADOOP_HOME
cd etc/hadoop
# 仅第一次启动需要格式化,之后直接切换到该目录下输入启动命令即可,多次格式化会出错
hdfs namenode -format
# 启动
start-dfs.sh
# 关闭
# stop-dfs.sh

启动成功,且没有错误的照片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值