一、环境准备
CentOS Linux release 7.5.1804 (Core) 系统下
安装
创建文件夹
$ cd /home/centos $ mkdir software $ mkdir module
将安装包导入software文件夹
$ cd software # 然后把文件拖进去即可
这里使用的安装包是
/home/centos/software/hadoop-3.1.3.tar.gz
/home/centos/software/jdk-8u212-linux-x64.tar.gz
$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C ../module $ tar -zxvf hadoop-3.1.3.tar.gz -C ../module
配置环境变量
$ cd /etc/profile.d/ $ vim my_env.sh
为了不污染系统变量,我们自己创建一个环境变量的脚本,配置内容如下
#JAVA_HOME,PATH # export 提升为全局变量,如果你的路径和我不同,记得这里要使用自己的路径哦 export JAVA_HOME=/home/centos/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin #HADOOP_HOME export HADOOP_HOME=/home/centos/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
然后保存退出(这里不会的话可以看下vim基础使用,不再赘述了)。
我们source一下,使环境变量生效
$ source /etc/profile
测试一下,看看是否成功
$ hadoop version
$ java
出现以上界面就是没问题了,如果还没成功可以做以下两项检查:
- 去java和hadoop的安装目录下的bin目录,分别运行,看是否成功。如果不成功,说明安装包解压缩有问题,软件本身就没安装成功。删掉重新安装。
- 如果运行成功了,说明是环境变量没有配置成功。那么可以检查一下环境变量的路径设置,如果没问题的话,那重启试试~
ssh免密
虽然是伪集群,但是本机连接本机的时候还是会需要密码的,所以要设置一下ssh免密
$ ssh-keygen -t rsa
出现提示就不停的按回车即可,生成完秘钥后
$ ssh-copy-id 本机hostname
配置host文件
vi /etc/hosts #这里我保留的配置为,其中master配置的是腾讯云的内网, 如果配置外网会导致eclipse客户端连不上hadoop ::1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 172.16.0.3 master 127.0.0.1 localhost
修改主机名
vi /etc/sysconfig/network #修改HOSTNAME为master HOSTNAME=master
修改hostname
$ hostnamectl --static set-hostname master
关闭防火墙
$ systemctl disable firewalld #永久
二、配置hadoop
配置文件
进入hadoop的配置文件专区,所有配置文件都在这个文件夹
$ cd /home/centos/module/hadoop-3.1.3/etc/hadoop
我们要配置的文件主要有
core-site.xml
- fs.defaultFS是本机的访问路径;
- hadoop.tmp.dir是数据的保存路径
- 内网地址不知道的去腾讯云网站上查一下
hdfs-site.xml
- dfs.replication是指数据的副本数,默认是3
- 我们设置为1,因为是伪集群嘛
yarn-site.xml
mapred-site.xml
hadoop-env.sh
- expert JAVA_HOME=你的jdk安装路径
那接下来就按照步骤操作吧!
$ vim core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://腾讯云内网ip地址:9820</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/centos/module/hadoop-3.1.3/data/tmp</value> </property> <!-- 通过web界面操作hdfs的权限 --> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> <!-- 后面hive的兼容性配置 --> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration>
$ vim hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>腾讯云内网ip地址:9868</value> </property> </configuration>
$ vim hadoop-env.sh
export JAVA_HOME=/home/centos/module/jdk1.8.0_212
$ vim yarn-site.xml
<configuration> <!-- Reducer获取数据的方式--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定YARN的ResourceManager的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <!-- 环境变量通过从NodeManagers的容器继承的环境属性,对于mapreduce应用程序,除了默认值 hadoop op_mapred_home应该被添加外。属性值 还有如下--> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <!-- 解决Yarn在执行程序遇到超出虚拟内存限制,Container被kill --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <!-- 后面hive的兼容性配置 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!-- 开启日志聚集 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 访问路径--> <property> <name>yarn.log.server.url</name> <value>http://172.17.0.13:19888/jobhistory/logs</value> </property> <!-- 保存的时间7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property> </configuration>
配置历史服务器
$ vim mapred-site.xml
<!-- 历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>腾讯云内网ip:10020</value> </property> <!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>腾讯云内网ip:19888</value> </property>
初始化
第一次启动需要格式化NameNode,后面就不需要啦
$ hdfs namenode -format
初始化后,可以看到hadoop安装文件夹中,出现了data和logs两个文件夹,这样就是初始化成功了
接下来看下启动集群
$ start-dfs.sh
启动完毕,没有异常信息,查看一下进程
[root@VM_0_13_centos hadoop]# jps 20032 Jps 30900 DataNode 31355 SecondaryNameNode 30559 NameNode
全部启动成功~!
一键启动
上面都没问题后,可以做一个脚本一键启动集群,在bin目录下新建
$ vim mycluster
添加如下内容
#!/bin/bash case $1 in "start") #dfs yarn history start-dfs.sh start-yarn.sh mapred --daemon start historyserver ;; "stop") # dfs yarn history stop-dfs.sh stop-yarn.sh mapred --daemon stop historyserver ;; *) echo "args is error! please input start or stop" ;; esac
配置脚本的权限
$ chmod u+x mycluster
使用脚本启动
$ mycluster start $ jps 23680 NodeManager 24129 JobHistoryServer 22417 DataNode 24420 Jps 22023 NameNode 23384 ResourceManager 22891 SecondaryNameNode
三、查看hdfs
配置安全组规则
在进行以下操作前,现在安全组规则中的协议端口中,加入以下要使用的端口
端口号:
- Namenode ports: 9870
- Secondary NN ports: 9868
- JobHistory:19888
hadoop web页面
在浏览器输入:腾讯云公网地址:端口号
,即可进入对应的web界面
这是我们发现Secondary NameNode的界面显示不太正常,这是由于hadoop3中dfs-dust.js的时间函数使用有误。我们手动改正一下。
首先关闭集群
$ mycluster stop
修改文件
$ vim /home/centos/module/hadoop-3.1.3/share/hadoop/hdfs/webapps/static/dfs-dust.js
约61行的位置,如图所示,更改为:
return new Date(Number(v)).toLocaleString();
此时我们再启动集群
$ mycluster start
可以看到Secondary NameNode的web界面已经正常了
测试hdfs
那我们来上传文件玩一玩吧
在hadoop目录下新建一个文件夹
$ mkdir temdatas
进入文件夹,新建一个测试文件
$ vim text.txt
内容随便写吧,写好保存,我们开始上传文件
$ hdfs dfs -put text.txt /
查看一下web页面,上传成功了~
再尝试把这个文件down下来
$ hdfs dfs -get /text.txt ./text1.txt
成功~
至此hadoop集群搭建完毕,可以自己耍一些好玩的事啦~!
WordCount案例实操
在web端新建文件夹 input
在其中上传一个自己写的各种单词的文件,做单词统计
#或者自己在vim中写好上传也可 $ hdfs dfs -put wordcount.txt /input
然后测试一下wordcount案例,注意输出文件夹不能存在
$ hadoop jar /home/centos/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
运行完之后,我们看一下结果
#拉取hdfs文件 [root@master mydata]# hdfs dfs -get /output ./ #查看结果 [root@master output]# cat part-r-00000 a 2 b 3 c 2 d 1 e 1 f 1
至此,你已经可以自由的玩耍hadoop啦。
当然,如果你已经尝试了的话,会发现,还有一个小问题没有解决,就是在web端点击文件查看head或tail时,会发生无法查看的情况,download也是不可以的。这个在虚拟机安装时并没有发生过,我还在研究怎么回事。如果有大神知道怎么回事,可以留言说一下哈
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]