赞
踩
本笔记是个人参照林子雨老师教学文档进行撰写,详细请看厦门大学数据库实验室观看
个人搭建hadoop平台实用的环境:Ubuntu 14.04 64位 *3、JDK1.8、Hadoop 2.6.5 (apache)
第一次需要设置root用户密码
root用户开机启动
在文件中添加下图红框内容:
user-session=ubuntu
greeter-show-manual-login=true
all-guest=false
保存后重启机器。使用root用户和密码登录即可
在vmware下创建三台Ubuntu 14.04 64位 的虚拟机,一个Master,2个Slave。三台虚拟机在同一网段,相互ping通。
虚拟机名进行修改:# vim /etc/hostname (vim自行下载)
ip映射:# vim /etc/hosts (主机名对应主机ip)
第一步:进入/etc/apt/目录
cd /etc/apt
第二步:在修改前先对 sources.list文件进行备份
sudo cp sources.list sources.list.bak
第三步:修改sources.list文件,更换成阿里云源
sudo vim sources.list
各版本源请看
第四步:更新源
apt-get update
1、第一步下载ssh :
apt-get install openssh-server
安装后,可以使用如下命令登陆本机:
ssh localhost
2、第二步配置SSH无密码登陆:
首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
注意:这里在master上配置
- exit # 退出刚才的 ssh localhost
- cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
- ssh-keygen -t rsa # 会有提示,都按回车就可以
-
- ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
- #复制slave1密钥,如果有slave2,改成slave2再执行一次,会输入各个节点密码
3、第三步设置Root远程登录:
gedit /etc/ssh/sshd_config
修改其28行的内容为
#PermitRootLogin prohibit-password
PermitRootLogin yes
1、安装JDK
sudo apt-get install default-jre default-jdk
2、配置环境变量
vim ~/.bashrc
在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出:
export JAVA_HOME=/usr/lib/jvm/default-java
接下来,要让环境变量立即生效,请执行如下代码:
source ~/.bashrc
3、验证环境是否成功
- echo $JAVA_HOME # 检验变量值
- java -version
1、下载hadoop
hadoop下载地址:https://mirrors.cnnic.cn/apache/hadoop/common/
这里我使用的是2.6.5,下载完成后,传到master中
2、解压hadoop
- sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local # 解压到/usr/local中
- cd /usr/local/
- sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
- sudo chown -R hadoop ./hadoop # 修改文件权限
3、检查
Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
- cd /usr/local/hadoop
- ./bin/hadoop version
一、配置PATH变量
首先执行 vim ~/.bashrc
在第一行加入,路径根据自己解压缩后的hadoop的bin和sbin配置,方便之后的命令书写
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
如图:
之后source ~/.bashrc
使配置生效。
二、配置集群环境
集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5个配置文件,更多设置项可点击查看官方说明,这里仅设置了正常启动所必须的设置项: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
1、文件 slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,分布式配置可以保留 localhost,也可以删掉,让 Master 节点仅作为 NameNode 使用。
本教程让 Master 节点仅作为 NameNode 使用,因此将文件中原来的 localhost 删除,只添加两行内容:slave1、slave2。这里的1和2是节点数,若增加节点,添加slave3.
有几个节点就配置几个,不然没配置的节点出不来相关进程
2、文件 core-site.xml 改为下面的配置:(注意第四行master是你映射的主机名,以下master都是如此)
- <configuration>
- <property>
- <name>fs.defaultFS</name>
- <value>hdfs://master:9000</value>
- </property>
- <property>
- <name>hadoop.tmp.dir</name>
- <value>file:/usr/local/hadoop/tmp</value>
- <description>Abase for other temporary directories.</description>
- </property>
- </configuration>
3、文件 hdfs-site.xml,dfs.replication 一般设为 3
- <configuration>
- <property>
- <name>dfs.namenode.secondary.http-address</name>
- <value>master:50090</value>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:/usr/local/hadoop/tmp/dfs/name</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:/usr/local/hadoop/tmp/dfs/data</value>
- </property>
- </configuration>
4、文件 mapred-site.xml (可能需要先重命名,默认文件名为 mapred-site.xml.template),然后配置修改如下:
- <configuration>
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>master:10020</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>master:19888</value>
- </property>
- </configuration>
5、文件 yarn-site.xml:
- <configuration>
- <property>
- <name>yarn.resourcemanager.hostname</name>
- <value>master</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- </configuration>
6、配置好后,将 master 上的 /usr/local/Hadoop 文件夹复制到各个节点上。
现将master中配置好的hadoop进行压缩:
tar -zcf ~/hadoop.master.tar.gz ./hadoop
然后使用scp命令将压缩后的hadoop传到slave1…等其他节点中
scp ./hadoop.master.tar.gz Slave1:/home/hadoop
此时主节点master的hadoop已经完成,接下来在从节点上进行解压master传过来的hadoop(找到传过来的hadoop路径解压)
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
此时从节点hadoop也算完成,下面进行hadoop启动
1、首次启动需要先在 master 节点执行 NameNode 的格式化:
hdfs namenode -format # 首次运行需要执行初始化,之后不需要
2、接着可以启动 hadoop 了,启动需要在 master 节点上进行:
start-all.sh
3、通过命令 jps
可以查看各个节点所启动的进程。正确的话,在 master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode 进程
4、在 Slave1 节点可以看到 DataNode 和 NodeManager 进程
5、验证集群
缺少任一进程都表示出错。另外还需要在 master 节点上通过命令 hdfs dfsadmin -report
查看 DataNode 是否正常启动,如果 Live datanodes 不为 0 ,则说明集群启动成功。
也可以通过 Web 页面看到查看 DataNode 和 NameNode 的状态:http://master:50070/。如果不成功,可以通过启动日志排查原因。
此时hadoop集群算是搭建完成,下面就可以进行一些分布式实例了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。