由于最近在做一个小比赛,,需要搭建数据处理平台,,由于数据量比较大,因此选择了Hadoop,本人并不是很熟悉这个平台,,因此搭建过程中遇到了许多问题,,所以想记录一下,以后可能会用到。
搭建过程并不困难,由于手上没有服务器,在虚拟机中搭建,本次搭建系统环境是ubuntu 14.04LTS,hadoop的版本是2.7.3
- 首先在ubuntu上安装java环境,我选择的是jdk1.8,jdk可以直接在官网下载,下载完成后上传到ubuntu上
由于个人喜好,,我将它解压到usr文件夹下
`cp java* /usr/`
`sudo tar -xzf java*`
`move java* java`
然后添加环境变量,sudo vim /etc/profile
,在文件末尾追加一下几行:
`#java`
`export JAVA_HOME=/usr/java`
`export JRE_HOME=/usr/java/jre`
`export CLASSPATH=$JAVA_HOME/lib`
`export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin`
- 然后下载hadoop2.7.3的压缩包,并将其解压到usr文件夹下,
然后添加环境变量,同上追加一下几行:
`#hadoop`
`export HADOOP_HOME=/usr/hadoop`
`export PATH=$PATH:$HADOOP_HOME/sbin`
`export PATH=$PATH:$HADOOP_HOME/bin`
- 到这里准备工作几乎完成了,下面需要配置ssh免密码登录,
先生成密钥ssh-keygen -t rsa
,一路回车,然后
`cd ~/.ssh`
cat id_rsa.pub >> ~/.ssh/authorized_keys
`chmod 600 authorized_keys`
- 添加一个用户组和用户来管理hadoop,首先添加一个用户组,
groupadd hadoop
useradd hadoop -g hadoop
passeord hadoop
输入两次密码,到这里就完成了用户和组的添加 - 此时需要配置hadoop环境,先创建dfs的文件夹,切换到hadoop用户,然后在hadoop文件夹下添加dfs/name,dfs/data,/tmp
修改hadoop文件的属性
切换到/usr/hadoop/etc/hadoop
1) 配置文件:hadoop-env.sh(文件都在/usr/hadoop/etc/hadoop中)
修改JAVA_HOME值(export JAVA_HOME=/usr/java)2) 配置文件:yarn-env.sh
修改JAVA_HOME值(export JAVA_HOME=/usr/java)3) 配置文件:core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/hadoop/tmp</value> <description>Abase for other temporary directories.</description> </property> </configuration>
4)配置文件:hdfs-site.xml
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/hadoop/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/hadoop/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration>
5) 配置文件:mapred-site.xml
先创建然后编辑
cp 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>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>
6) 配置文件: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>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
- 到了这里基本完成了单机的配置,现在可以克隆虚拟机,,完成后修改hosts文件和主机名
ip分别是 192.168.137.150 151 152,hostname分别是master1 node1 node2,打开hosts文件配置ip和主机对应,然后修改/usr/hadoop/etc/hadoop/slaves 添加内容
node1
node2
- 完成配置,进行测试
启动hadoophdfs namenode -format
sbin/start-all.sh
sbin/mr-jobhistory-daemon.sh start