hadoop详细配置

详见fenghaootong-github

hadoop详细配置

java JDK配置

  • 下载JDK
  • 解压jdk到/usr/local/目录下
  • 配置环境变量

节点规划

主机名称IP地址功能
hadoop1192.168.75.111NameNode、DataNode、resourcemanager、nodemanager
hadoop2192.168.75.112DataNode、nodemanager
hadoop3192.168.75.113DataNode、nodemanager

创建虚拟机配置网络

  • 手动配置DHCP
  • 修改域名,在/etc/sysconfig/network中添加HOSTNAME=hadoop1
  • 把域名添加到/etc/hosts中
192.168.75.111 hadoop1 www.hadoop1.com
  • 修改/etc/sysconfig/network-scripts/ifcfg-ens33文件
    • 添加DNS和网关一样
    • ONBOOT=yes
安装nginx
tar zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure && make && make install
 tar zxvf openssl-1.1.1.tar.gz
cd openssl-fips-1.1.1
./config && make && make install
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure && make && make install
tar zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
 ./configure && make && make install

单机版hadoop配置

  • 下载hadoop
  • 解压压缩包到/usr/local/目录
  • 配置环境变量
  • 修改hadoop/etc/hadoop/hadoop-env.sh文件中的JAVA环境变量为JDK路径
  • 测试
    which hadoop
    hadoop version
$ mkdir /home/htfeng/data/input
$ cp hadoop/etc/hadoop/*.xml /home/htfeng/data/input
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar grep /home/htfeng/data/input /home/htfeng/data/output 'dfs[a-z.]+'
$ cat /home/htfeng/data/output/*
$ hdfs dfs -ls /

克隆虚拟机

  • 修改网卡信息(忽略)
vi /etc/udev/rules.d/70-persistent-ipoib.rules 
  • 修改主机名
vi /etc/sysconfig/network
  • 修改ip信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改ip、硬件地址和UUID
  • 修改映射
vi /etc/hosts  

192.168.75.112 hadoop2 www.hadoop2.com

集群配置

  • 配置JDK
  • 配置hadoop
  • 配置hadoop-env.sh
  • 配置hadoop-core-site.xml
  • 配置hadoop-hdfs-site.xml
  • 配置hadoop-mapred-site.xml
  • 配置hadoop-yarn-site.xml
  • 配置slave
  • 发送hadoop文件到所有机子上

配置core-site.xml

配置hadoop-hdfs-site.xml

配置hadoop-mapred-site.xml

配置hadoop-yarn-site.xml

配置slave

发送hadoop文件到所有机子上

scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/

启动之前在namenode服务器上格式化,只需一次即可

  • 关闭防火墙
systemctl stop firewalld.service
hadoop namenode -format

全启动:start-all.sh
模块启动:
start-dfs.sh
start-yarn.sh
单个进程启动
hadoop-daemon.sh start/stop namenode
hadoop-daemons.sh start/stop datanode
yarn-daemon.sh start/stop namenode
yarn-daemons.sh start/stop datanode
mr-jobhistory-daemon.sh start/stop historyserver

netstat -tnpl:查看启动端口

  • 启动start-dfs.sh测试
http://192.168.75.111:50070
  • 上传和下载文件(测试hdfs)
hdfs dfs -put ./README.txt /
  • 启动start-yarn.sh跑一个mapreduce作业
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /README.txt /out/00

免密登录

ssh-keygen -t rsa
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3

HDFS shell

hdfs的shell

命令和shell命令基本一致

hdfs dfs -

Usage: hadoop fs [generic options]
    [-appendToFile <localsrc> ... <dst>]
    [-cat [-ignoreCrc] <src> ...]
    [-checksum <src> ...]
    [-chgrp [-R] GROUP PATH...]
    [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
...
hdfs dfs -ls /   
hadoop fs - /  
hdfs dfs -ls -R / #递归查看  
hdfs dfs -mkdir -p /  #递归创建
hdfs dfs -touchz  /test/te.txt
hdfs dfs -put ./if.sh /if.sh  # 本地目录上传到hdfs文件目录
hdfs dfs -get /if.sh /home/htfeng  #从hdfs文件目录下载
hdfs dfs -du -s / #统计目录大小

window中安装maven

  • 下载maven
  • 解压并复制到一个目录
  • 配置环境变量
  • 配置maven,修改settings.xml文件,指定本地仓库位置H:\hadoop\mvnrepositrymaven
  • 和java的编辑工具整合(eclipse,idea,myeclipse等)

maven项目测试

hadoop核心协议RPC(远程过程调用协议)

例子

  • 建一个rpc的包,然后创建下面三个java脚本,具体代码
    • hello.java
    • RPCServer.java
    • RPCClient.java

zookeeper

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/htfeng/zkdata/
clientPort=2181
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888

在每个服务器上面创建myid,内容为server.X中的X

mkdir /home/htfeng/zkdata
vi /home/htfeng/zkdata/myid

zookeeper测试

HDFS的HA

规划

主机名称IP地址功能
hadoop1192.168.75.111NameNode、DataNode、jouranlnode、quroumPeerMain、zkf
hadoop2192.168.75.112DataNode、jouranlnode、quroumPeerMain、zkf
hadoop3192.168.75.113DataNode、jouranlnode、quroumPeerMain

在配置HA之前,要对之前的配置做一个备份

mv /usr/local/hadoop-2.8.4/ /usr/local/hadoop-2.8.4_bak
HA的配置
  • 解压下载的hadoop,到/usr/local/目录下

在/usr/local/hadoop-2.8.4/etc/hadoop/下
- 配置hadoop-env.sh
- 配置hadoop-core-site.xml
- 配置hadoop-hdfs-site.xml
- 配置slave
- 发送hadoop文件到所有机子上
- hadoop2也作为namenode免密登陆

配置hadoop-env.sh

配置hadoop-core-site.xml

配置hadoop-hdfs-site.xml

配置slaves

发送hadoop文件到所有机子上

scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/

hadoop2也作为namenode免密登陆

  • 在hadoop2主机上
ssh-keygen -t rsa
ssh-copy-id hadoop2
ssh-copy-id hadoop1
ssh-copy-id hadoop3

按步骤依次执行下面程序

  • 启动zk
  • 启动journalnode服务(单个启动、多个进程启动)
hadoop-daemon.sh start journalnode
hadoop-daemons.sh start journalnode
  • 挑选两个namenode中的一台进行格式化,然后并且启动
hdfs namenode -format
hadoop-daemon.sh start namenode
  • 在另一台namenode的机器上拉去元数据(也可以复制)
hdfs namenode -bootstrapStandby
  • 格式化zk
hdfs zkfc -formatZK
  • 启动
start-dfs.sh

会有五个进程,查看是否全部启动
查看webUI是否正(http://192.168.75.111:50070,http://192.168.75.112:50070)
在hdfs中的读写文件
然后关闭一个namenode失败,查看是否自动切换

kill -9 [namenode pid]
hadoop-daemon.sh start namenode

Yarn的HA

规划

主机名称IP地址功能
hadoop1192.168.75.111resourcemanager、nodemanager、quroumPeerMain
hadoop2192.168.75.112nodemanager、quroumPeerMain
hadoop3192.168.75.113nodemanager、quroumPeerMain
HA的配置
  • HA基础
  • 配置yarn-site.xml
  • 配置mapred-site.xml
  • 远程发送
  • 直接启动
  • 测试

配置yarn-site.xml

配置mapred-site.xml

远程发送

scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop2:/usr/local/hadoop-2.8.4/etc/hadoop/

scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop3:/usr/local/hadoop-2.8.4/etc/hadoop/

直接启动

#hadoop1
start-yarn.sh
#hadoop2
yarn-daemon.sh start resourcemanager

测试

yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /words /out/00
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值