2019-11-05 Hadoop集群搭建

最近在学习大数据,在自己本地装了三个虚拟机,学习搭建hadoop集群。记录下过程,方便日后查看。

1.准备工作

  VMware-workstation-full-12.1.0,Centos 7_x64镜像,jdk_1.8.0_linux_x64,hadoop_2.7.7.

虚拟机安装步骤参考:https://www.cnblogs.com/tony-hyn/p/9677902.html

jdk刚开始从Oracle官网下载,结果使用tar -zxvf 解压时一直报错,后来查阅资料,使用wget 方法直接下载到linux中.

 参考资料:https://blog.csdn.net/u011365831/article/details/79301188

hadoop下载地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

使用tar -zxvf 解压hadoop时也报错,将tar.gz后缀修改为.tar,再次解压搞定。

2.搭建集群

2.1 建议在安装系统镜像时顺便配置下网络,修改下hostname.或者单独修改每台机器的hostname

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=Mage1

2.2 在命令行输入: vi /etc/hosts

添加3台服务器的节点名信息

192.168.126.133 node1

192.168.126.134   node2

192.168.126.135   node3

2.3 关闭防火墙

查看防火墙状态

firewall-cmd --state

停止firewall

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

2.4 时间同步

命令行输入:yum install ntp 下载ntp插件 ,

下载完成后 命令行输入:ntpdate -u ntp1.aliyun.com

2.5 配置ssh无密码访问

使用root用户创建hadoop用户并分配到hadoop组,如下图所示以test用户为例:


将test用户赋予root权限: 修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行

## Allow root to run any commands anywhere

root     ALL=(ALL)   ALL

test      ALL=(ALL)   ALL 

修改完毕,现在可以用test 帐号登录,然后用命令 sudo ,即可获得root权限进行操作。

在每个节点上分别执行:ssh-keygen -t rsa 一直按回车直到生成结束

执行结束之后每个节点上的/hadoop/.ssh/目录下生成了两个文件 id_rsa 和 id_rsa.pub

其中前者为私钥,后者为公钥

在主节点上执行:

命令行输入:cp id_rsa.pub authorized_keys

将子节点的公钥拷贝到主节点并添加进authorized_keys

将两个子节点的公钥拷贝到主节点上

分别在两个子节点上执行:

scp /hadoop/.ssh/id_rsa.pub   hadoop@node1:/hadoop/.ssh/id_rsa_node2.pub

scp /hadoop.ssh/id_rsa.pub    hadoop@node1:/hadoop/.ssh/id_rsa_node3.pub

然后在主节点上,将拷贝过来的两个公钥合并到authorized_keys文件中去

主节点上执行:

cat id_rsa_node2.pub>> authorized_keys

cat id_rsa_node3.pub>> authorized_keys

将主节点的authorized_keys文件分别替换子节点的authorized_keys文件

主节点上用scp命令将authorized_keys文件拷贝到子节点的相应位置

scp authorized_keys   hadoop@node2:/hadoop/.ssh/

scp authorized_keys   hadoop@node3:/hadoop/.ssh/

2.6 配置jdk

配置环境变量, 编辑~/.bash_profile文件:

vi   ~/.bash_profile

在文件末尾添加以下代码:

export JAVA_HOME=实际路径

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib

source  ~/.bash_profile,使环境变量生效

2.7 安装配置hadoop

配置环境变量, 编辑~/.bash_profile文件:

vi   ~/.bash_profile

在文件末尾添加以下代码:

export HADOOP_HOME=实际路径

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

source  ~/.bash_profile,使环境变量生效

配置hadoop配置文件

需要配置的文件的位置为 hadoop路径/etc/hadoop,需要修改的有以下几个文件:

hadoop-env.sh

yarn-env.sh

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

slaves

其中hadoop-env.sh和yarn-env.sh里面都要添加jdk的环境变量

修改hadoop-env.sh


修改yarn-env.sh


修改core-site.xml(加粗斜体部分需要按照实际修改,提前创建所需目录)

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://node1:9000</value>

        </property>

        <property>

                <name>io.file.buffer.size</name>

                <value>131072</value>

        </property>

        <property>

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

                <value>file:/home/hadoop/app/hadoop-2.7.7/temp</value>

        </property>

        <property>

                <name>hadoop.proxyuser.root.hosts</name>

                <value>*</value>

        </property>

        <property>

                <name>hadoop.proxyuser.root.groups</name>

                <value>*</value>

        </property>

</configuration>


修改hdfs-site.xml (加粗斜体部分需要按照实际修改, 提前创建所需目录 )

<configuration>

        <property>

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

                <value>node1:9001</value>

        </property>

        <property>

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

                <value>file:/home/hadoop/app/hadoop-2.7.7/namenode</value>

        </property>

        <property>

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

                <value>file:/home/hadoop/app/hadoop-2.7.7/data</value>

        </property>

        <property>

                <name>dfs.replication</name>

                <value>2</value>

        </property>

        <property>

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

                <value>true</value>

        </property>

        <property>

                <name>dfs.permissions</name>

                <value>false</value>

        </property>

        <property>

                <name>dfs.web.ugi</name>

                <value>supergroup</value>

        </property>

</configuration>

注意要将mapred-site.xml.template重命名为 .xml的文件  mv mapred-site.xml.template mapred-site.xml,并修改

(加粗斜体部分需要按照实际修改)

<configuration>

        <property>

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

                <value>yarn</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.address</name>

                <value>node1:10020</value>

        </property>

        <property>

                <name>mapreduce.jobhistory.webapp.address</name>

                <value>node1:19888</value>

        </property>

</configuration>

修改yarn-site.xml  (加粗斜体部分需要按照实际修改)

<configuration>

        <property>

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

                <value>mapreduce_shuffle</value>

        </property>

        <property>

                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

                <value>org.apache.hadoop.mapred.ShuffleHandler</value>

        </property>

        <property>

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

                <value>node1:8032</value>

        </property>

        <property>

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

                <value>node1:8030</value>

        </property>

        <property>

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

                <value>node1:8031</value>

        </property>

        <property>

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

                <value>node1:8033</value>

        </property>

        <property>

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

                <value>node1:8088</value>

        </property>

</configuration>

修改slaves

node1

node2

node3

将hadoop与环境变量scp 到其他主机

格式化主节点的namenode,进入hadoop目录然后执行:

./bin/hadoop namenode -format

3 启动hadoop

start-all.sh

主节点以及从节点进程

主节点进程


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

推荐阅读更多精彩内容