Hadoop2.9.2集群环境搭建

这篇文章主要是讲Hadoop2.9.2集群环境的搭建,其他关于Hadoop相关的一些知识可以从网络上去查看。

1.机器准备

    我这里集群环境是由4台机器组成,其中一台作为NameNode,其他3台作为DataNode。如果使用虚拟机的话,可以先配置好一台机器,另外3台使用虚拟机的克隆方法直接克隆即可。

1.1 IP配置

hadoop集群中我们把所有的机器都设置为静态的ip,网络设置方法:

vi /etc/sysconfig/network-scripts/ifcfg-XXX (备注XXX指的是具体的网卡名字)文件中添加以下属性

BOOTPROTO=static  # 设置为静态ip

IPADDR=192.168.0.101 # 具体的ip地址 看自己情况

NETMASK=255.255.255.0 # 子网掩码

GATEWAY=192.168.0.1 # 网关地址 看自己路由器情况

DNS1=192.168.0.1 # 域名解析器1 看自己路由器情况

DNS2=114.114.114.114 #备用域名解析器2

ONBOOT=yes # 设置为自动启用该网卡

1.2 域名配置(所有机器都需要配置)

ip配置好之后,为了方便使用,我们可以给每台机器都设置一个方便记忆的域名。

使用命令vi /etc/hosts编辑该文件,添加以下内容

192.168.0.101 namenode.bigdata.com  # 前面写机器的ip 后面自己定义一个域名

192.168.0.102 datanode1.bigdata.com

192.168.0.103 datanode2.bigdata.com

192.168.0.104 datanode3.bigdata.com

配置好之后,每台机器都可以通过 ping 域名测试一下是否能够互通。

ping namenode.bigdata.com

ping datanode1.bigdata.com

ping datanode2.bigdata.com

ping datanode3.bigdata.com

1.3 免密登录配置(所有机器都需要配置)

    因为hadoop集群中,我们启动集群时,会使用远程的方式访问别的集群中的机器,为了方便使用,我们可以设置免密的远程登录功能。

    这里使用RSA的加密,RSA会生成两个秘钥串,一个是私钥保存在id_rsa文件中,另外一个是公钥保存在id_rsa.pub文件中,私钥自己保留,把公钥发送到别的机器的authorized_keys文件中,别的机器远程访问该机器时,会携带公钥一起过来,公钥就会和私钥进行配对,如果能配对成功,就运行其登录。

a. 新建一个hadoop用户用于免密登录的

useradd hadoop

passwd hadoop 设置密码

切换用户

su - hadoop

b. 创建公钥和私钥  保存的路径在 ~/.ssh目录下 (~表示当前登录用户的home目录)

ssh-keygen -t rsa

生成两个文件

id_rsa 私钥

 id_rsa.pub 公钥

c. 把所有机器的公钥都保存在一个认证文件authorized_keys中

authorized_keys认证文件中保存了所有机器的公钥。

认证文件也保存在~/.ssh目录下

先在一台机器上操作 namenode.bigdata.com

在hadoop用户的home目录下执行以下命令:

可以输入cd 回车进入当前登录的用户的home目录

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

将远程机器的公钥一起输入到当前机器authorized_keys文件中

 ssh hadoop@datanode1.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh hadoop@datanode2.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

ssh hadoop@datanode3.bigdata.com cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

d. 把 namenode.bigdata.com机器中的认证文件 分发到其他的三台机器中

 scp .ssh/authorized_keys hadoop@datanode1.bigdata.com:~/.ssh/authorized_keys

scp .ssh/authorized_keys hadoop@datanode2.bigdata.com:~/.ssh/authorized_keys

scp .ssh/authorized_keys hadoop@datanode3.bigdata.com:~/.ssh/authorized_keys

 f. 将机器名添加至可信任的机器列表中

 还是先在namenode.bigdata.com机器上操作 ,然后将文件分发到其他3台机器中

ssh hostname

例如:

 shh localhost

ssh namenode.bigdata.com

ssh datanode1.bigdata.com

ssh datanode2.bigdata.com

ssh datanode3.bigdata.com

分发:

scp .ssh/known_hosts hadoop@datanode1.bigdata.com:~/.ssh/known_hosts

scp .ssh/known_hosts hadoop@datanode2.bigdata.com:~/.ssh/known_hosts

scp .ssh/known_hosts hadoop@datanode3.bigdata.com:~/.ssh/known_hosts


d. 确认文件权限

 .ssh 700

.ssh/authorized_keys 600

e. 修改配置文件  需要切换至root登录

vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

2. 安装环境 root用户(所有机器都要安装)

 2.1 jdk环境

yum 安装

yum install -y java-1.8.0-openjdk-devel.x86_64

2.2 hadoop 安装

先安装 yum install -y wget

wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz

在线将后面路径中的文件下载到本地 

解压hadoop至 /usr/local目录下

tar -xvf hadoop-2.9.2.tar.gz -C /usr/local

2.3 配置环境变量

vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

export HADOOP_HOME=/usr/local/hadoop-2.9.2

 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

 vi /usr/local/hadoop-2.9.2/etc/hadoop/hadoop-env.sh

source /etc/profile 使环境变量生效

添加

 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

3. 修改hadoop的配置文件

使用root账户修改hadoop的文件的所有者

chown -R hadoop:hadoop /usr/local/hadoop-2.9.2

切换至hadoop用户

su - hadoop

配置文件的目录:/usr/local/hadoop-2.9.2/etc/hadoop

修改以下几个配置文件

core-site.xml 配置集群的核心配置文件


<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://namenode.bigdata.com:9000</value>

    </property>

    <property>

        <name>hadoop.tmp.dir</name>

        <value>file:/usr/local/hadoop-2.9.2/tmp</value>

    </property>

</configuration>

 hdfs-site.xml:配置HDFS的信息


<configuration>

    <property>

       <name>dfs.namenode.name.dir</name>

       <value>file:/usr/local/hadoop-2.9.2/data/namespace</value>

       <final>true</final>

       <description>Path on the local filesystem where the NameNode stores</description>

    </property>

    <property>

       <name>dfs.datanode.data.dir</name>

       <value>/usr/local/hadoop-2.9.2/data/dataspace</value>

       <final>true</final>

       <description>Path on the local filesystem where the DataNode stores Data</description>

    </property>

    <property>

       <name>dfs.namenode.secondary.http-address</name>

       <value>namenode.bigdata.com:9100</value>

        <final>true</final>

        <description>The secondary namenode http server address and port</description>

    </property>

    <property>

       <name>dfs.webhdfs.enabled</name>

       <value>true</value>

       <final>true</final>

       <description>Enable WebHDFS (REST API) in Namenodes and Datanodes</description>

    </property>

    <property>

        <name>dfs.permissions</name>

        <value>false</value>

        <final>true</final>

        <description>Disable permission checking in HDFS</description>

    </property>

    <property>

       <name>dfs.replication</name>

       <value>3</value>

        <final>true</final>

        <description>Default block replication</description>

    </property>

</configuration>

 mapred-site.xml 配置MapReduce


<configuration>

    <property>

       <name>mapreduce.framework.name</name>

        <value>yarn</value>

        <final>true</final>

        <description>The runtime framework for executing MapReduce jobs</description>

    </property>

</configuration>

yarn-site.xml 配置yarn


<configuration>

    <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>datanode1.bigdata.com:9001</value>

        <final>true</final>

        <description>The address of the scheduler interface</description>

    </property>

    <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>datanode1.bigdata.com:9002</value>

        <final>true</final>

    </property>

    <property>

       <name>yarn.resourcemanager.address</name>

        <value>datanode1.bigdata.com:9003</value>

        <final>true</final>

        <description>The address of the applications manager interface in the RM</description>

    </property>

    <property>

       <name>yarn.resourcemanager.admin.address</name>

        <value>datanode1.bigdata.com:9004</value>

        <final>true</final>

        <description>The address of the RM admin interface</description>

    </property>

    <property>

       <name>yarn.resourcemanager.webapp.address</name>

        <value>datanode1.bigdata.com:9005</value>

        <final>true</final>

        <description>The http address of the RM web application</description>

    </property>

    <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

        <final>true</final>

    </property>

</configuration>

slaves:添加所有的数据结点的host


datanode1.bigdata.com

datanode2.bigdata.com

datanode3.bigdata.com

先配置好一台机器

分发至其他机器

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode1.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode2.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

scp core-site.xml hdfs-site.xml mapred-site.xml slaves yarn-site.xml hadoop@datanode3.bigdata.com:/usr/local/hadoop-2.9.2/etc/hadoop

4. 启动集群

 4.1 格式化 在namenode主节点上操作 只需操作一次

这步操作就类似于你重装系统时,必须要先格式化是一个意思。格式化会清空HDFS上的所有文件的。

hdfs namenode -format hadoop_cluster

4.2 启动集群 hadoop用户启动

任意结点都可以

开启 start-dfs.sh

关闭集群 stop-dfs.sh

4.3 启动yarn 需要在yarn的resourcemanager机器上启动

开启 start-yarn.sh

关闭stop-yarn.sh

启动之后可以通过jps命令查看进程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354