小兔包子:我能不能自己也弄套大数据环境啊?
大兔包子:可以啊,本机上弄套虚拟机,或者申请个云服务器,阿里,腾讯,华为都可以,便宜的很。但问题你也没数据,搭完也没意义啊。
小兔包子:你不说大数据就是从大量数据中分析出有价值的内容么,那就从网上爬点数据,自己分析玩呗。
大兔包子:分析只是一方面,而且哪那么容易爬数据,你还会爬虫?
小兔包子:不会啊,不有你呢么。
大兔包子:~~~,那要是我也不会呢?
小兔包子:学去啊。(这叫一个理所当然啊)
大兔包子:得嘞你呢,那咱今儿先把环境弄上?
小兔包子:准。
要弄大数据环境,个人电脑上就真的是玩玩而已,一开始建议还是弄套虚拟机就可以了,弄个单节点的伪分布集群;电脑配置好点的可以考虑后期多开几个虚拟机,弄个完全分布式;或者比较有兴趣的可以按照大兔包子上面说的,自己上网申请几台云服务器。后面两种有机会我们后面再说,今天就还是先说最简单的吧,小兔包子的第一套大数据环境,走起。
说到大数据环境,现在用的最多的应该就是Hadoop了,不管企业还是个人,这个应该是跑不了的。
问,要把Hadoop搭建成拢共分几步?(大象放冰箱的梗现在回想起来都好多年了,还真是暴露年龄~~~)
1、虚拟机搭建
2、Linux安装
3、网络基本配置
4、JDK安装
5、SSH配置
6、安装Hadoop
7、修改Hadoop配置文件
8、启动集群
答,拢共分8步
小兔包子:这么多,感觉好复杂啊。
大兔包子:我这不分的比较细,感觉专业点么。要简单的话就两步,安Linux,安Hadoop,完事。
小兔包子:那算了,还是八步的吧。
前两步,请参照大兔包子叨叨叨--Linux篇(三、四、五),哈哈
第三步:修改网络基本配置
这里主要改的是指主机名,因为考虑到万一后期我们还会搭建多机的完全分布式呢,所以主机名也起的稍微有意义点。
修改主机名为master
# vi /etc/sysconfig/network
通过指令修改主机名
# hostname master
修改hosts文件,添加主机名与ip地址(本机ip为192.168.7.101)映射关系
# vi /etc/hosts
这里我将主机名修改为master,这样之后如果做完全分布式,我们可以以这台为主节点,其他为从节点,至于Hadoop主从关系什么的后面我们再聊。
第四步:安装JDK
这里我们使用jdk-8u144-linux-x64.tar.gz来进行安装,先将对应jdk的tar包放在/root目录下。相关软件分享地址见文章尾部。
将JDK解压至/usr/local目录下
# tar -xvzf jdk-8u144-linux-x64.tar.gz -C /usr/local/
后面的-C就是指要解压到指定目录,去到/usr/local目录下,创建jdk1.8.0_144目录的软连接jdk,为啥要键软连接?这样名好记啊。
# cd /usr/local
# ln -s jdk1.8.0_144/ jdk
修改源jdk目录权限
# chown -R root:root jdk1.8.0_144
修改profile文件,将JDK加入PATH环境变量
# vi /etc/profile
#添加下面两句到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL上面
export JAVA_HOME=/usr/local/jdk
PATH=$JAVA_HOME/bin:$PATH
加载profile以使配置生效:
# source /etc/profile
测试JDK是否正常工作:
第五步:SSH配置
为什么要配置SSH,主要为了远程访问免密啊,你想啊,你一个集群,互相访问时都需要输入密码,这叫什么事啊,所以要配置SSH,安全还免密,多好。
SSH不清楚的可以理解为,以前回家你要输密码,烦人,现在改高级点的,咱们弄个卡机和门禁卡,然后你可以把门禁卡发给所有想来的人,都直接刷卡就成,卡多了不好管理,所有咱们还得弄个卡包,就这样。
生成密钥对:
# ssh-keygen -t rsa
问你生成的公钥/私钥(门禁卡/卡机)放哪,默认放在当前用户家目录的.ssh中,默认即可,所以直接回车
让咱们设置密码,门禁的密码,如果输入了那就是又用门禁又的输密码,所以我们什么都不输入,直接回车,因为我就是不想输密码。
输入相同的密码,刚才就没设置,所以也是直接回车,这样门禁就弄好了。
进入.ssh目录,复制密钥:
# cd /root/.ssh
id_rsa私钥(卡机),id_rsa.pub公钥(门禁卡)
卡机和门禁卡都有了,剩下的就是卡包了
# cp id_rsa.pub authorized_keys
authorized_keys卡包
确认SSH连接免密码成功:
# ssh master
第一次会询问,确认下,打yes然后回车,成功登陆,没需要密码。
小兔包子:我不就一台机器么,我自己登陆我自己还得配SSH啊?
大兔包子:恩,虽然咱们是一台机器,但伪分布式就是指集群只有一台,自己又是主节点,又是从节点,所以自己(主节点)登录自己(从节点),也需要配置SSH
第六步:安装Hadoop
这里我们用的是hadoop-2.6.4.tar.gz,同样还是先把hadoop的tar包放在/root下。
将hadoop软件解压至/usr/local目录下
# tar -xvzf hadoop-2.6.4.tar.gz -C /usr/local
到/usr/local下,给hadoop-2.6.4目录创建软连接hadoop
# cd /usr/local
# ln -s hadoop-2.6.4 hadoop
修改hadoop源目录权限
# chown -R root:root hadoop-2.6.4
修改profile文件,将Hadoop执行路径加入PATH环境变量中
# vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin:$PATH
Hadoop2版本中将执行程序分别放在安装目录/bin和安装目录/sbin里面了,所以要写两个路径。
加载profile以使配置生效:
# source /etc/profile
第七步:修改Hadoop配置文件
在集群能启动之前,需要按照自己的环境修改一些基本配置文件。
切换至Hadoop配置目录,Hadoop所有配置文件均在此:
# cd /usr/local/hadoop/etc/hadoop
首先修改两个环境变量文件
修改hadoop-env.sh文件,指定JDK
# vi hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
修改yarn-env.sh文件,指定JDK
# vi yarn-env.sh
JAVA_HOME=$JAVA_HOME --在此句下面添加
JAVA_HOME=/usr/local/jdk
修改core-site.xml核心参数文件:
# vi core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop2/tmp/</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
修改hdfs-site.xml分布式文件系统配置文件
# vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
修改mapred-site.xml分布式计算框架配置文件,没有这个文件需要先从默认文件中拷贝一个出来
# cp mapred-site.xml.template mapred-site.xml
# vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
</configuration>
修改yarn-site.xml资源管理层配置文件
# vi yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
修改slaves从节点文件
# vi slaves
master
修改log4j.properties日志属性配置文件
# vi log4j.properties
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
小兔包子:我的妈呀,这么多,蒙了蒙了。
大兔包子:这还多啊,没事,先搭起来,别管都是什么意思,都是干嘛的,修改的都是什么意思,咱们后面说,要不搭建就太慢了,就快好了,加油,最后一步了。
第八步:启动集群
格式化namenode
# hdfs namenode -format
注意:格式化成功后会在/root目录中出现hadoop2目录,且过程中都是INFO级别的日志。仅需成功格式化一次即可,若失败可以重新格式化,成功了的话,之后出问题,也不需要在再次格式化
启动hdfs
# start-dfs.sh
查看相关进程
# jps
至此只要见到这几个进程(前面进程号不一样很正常),则伪集群Hadoop安装成功(HDFS部分)。
测试hdfs功能,在hdfs中创建目录并查询
# hdfs dfs -mkdir /root
# hdfs dfs -ls /
注意:这个/root就是集群文件系统HDFS中的目录结构了,而并非是我们Linux文件系统里的/root了。
小兔包子:然后怎么弄?
大兔包子:饭要一口一口吃,别急,既然HDFS已经成功了,咱就先把这个HDFS是什么给他弄明白,然后再说后面。。。未完待续
软件分享地址:https://pan.baidu.com/s/1iUEjgrx5fgLPSzJi32GyLQ 密码:32x9
大兔包子出品的伪集群搭建文档:https://pan.baidu.com/s/1sdv6zkyAx4Zn0krbi1ERjg 密码:06uq
版权说明:本文为博主myfelix1925原创,转载请注明出处。https://blog.csdn.net/myfelix1925/article/details/81360004