原文地址:http://blog.csdn.net/meng___xia/article/details/54617959
在上一篇环境安装完成的基础上进行Hadoop的安装和配置。
3.7Hadoop安装
需要在3台服务器上都安装 Hadoop。首先通过sftp将下载下来的二进制的 Hadoop包上传到Master,
将Hadoop 压缩包 hadoop-2.6.3.tar.gz移动到/usr/local/program/目录下,使用tar zxvf hadoop-2.6.3.tar.gz 解压缩。
进入 /usr/local/program/hadoop-2.6.3/etc/hadoop查看配置文件如下
3.7.1 Hadoop环境变量配置
1、首先将Hadoop的安装路径配置到环境变量中
vi /etc/profile
export JAVA_HOME=/usr/local/program/jdk1.7.0_80
export JRE_HOME=/usr/local/program/jdk1.7.0_80/jre
export CLASS_PATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export HADOOP_HOME=/usr/local/program/hadoop-2.6.3
export HADOOP_CONF_DIR=/usr/local/program/hadoop-2.6.3/etc/hadoop
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
保存退出后source /etc/profile 使改动生效。
2、并把jdk的环境变量加入到Hadoop的环境变量中
vi /usr/local/program/hadoop-2.6.3/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/program/jdk1.7.0_80
保存退出。
vi /usr/local/program/hadoop-2.6.3/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/local/program/jdk1.7.0_80
保存退出。
3、Hadoop version 验证效果
3.7.2 Hadoop 文件配置
首先在Master先配置,然后分发到各个slave上
1、core-site.xml
主要是配置HDFS的地址和端口号
文件名 | core-site.xml | |
参数名称 | 属性值 | 备注 |
fs.defaultFS | hdfs://bigdata1:9000 | 接收Client连接的RPC端口,用于获取文件系统metadata信息。 |
hadoop.tmp.dir | /usr/local/program/hadoop-2.6.3/tmp | 需要事先在目录下创建tmp文件,如没有配置hadoop.tmp.dir参数,此时系统默认的临时目录为:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被干掉,必须重新执行format才行,否则会出错。 |
hadoop.proxyuser.hadoop.hosts | * | |
hadoop.proxyuser.hadoop.groups | * |
<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>/usr/local/program/hadoop-2.6.3/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
2、 hdfs.xml
修改Hadoop中HDFS的配置,配置的备份方式默认为3。 replication 是数据副本数量,默认为3,salve少于3台就会报错 .
文件名 | hdfs.xml | |
参数名称 | 属性值 | 备注 |
dfs.namenode.secondary.http-address | master:9001 | secondary name node web 监听端口 |
dfs.namenode.name.dir | file:/usr/local/program/hadoop-2.6.3/name | data node的数据目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
dfs.namenode.data.dir | file:/usr/local/program/hadoop-2.6.3/data | Determines where on the local filesystem the DFS name node should store the name table(fsimage). If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. name node的元数据保存,以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉 |
dfs.replication | 1 | 一个文件上传到hdfs上的副本数。 |
dfs.webhdfs.enabled | TRUE | 默认访问namenode的hdfs使用50070端口,访问datanode的webhdfs使用50075端口。访问文件、文件夹信息使用namenode的IP和50070端口,访问文件内容或者进行打开、上传、修改、下载等操作使用datanode的IP和50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有的webhdfs操作,就需要在所有的datanode上都设置hefs-site.xml中的dfs.webhdfs.enabled为true |
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/program/hadoop-2.6.3/name</value>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/usr/local/program/hadoop-2.6.3/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
3、 mapred-site.xml
文件名 | mapred-site.xml | |
参数名称 | 属性值 | 备注 |
mapreduce.framework.name | yarn | 选择调度方式 |
mapreduce.jobhistory.address | master:10020 | MapReduce JobHistory Server地址 |
mapreduce.jobhistory.webapp.address | master:19888 | MapReduce JobHistory Server Web UI地址 |
<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>
4、
yarn-site.xml
文件名 | yarn-site.xml | |
参数名称 | 属性值 | 备注 |
yarn.nodemanager.aux-services | mapreduce_shuffle | yarn提供了一个yarn.nodemanager.aux-services的配置项,通过该配置,用户可以自定义一些服务,例如Map-Reduce的shuffle功能就是采用这种方式实现的。 |
yarn.nodemanager.aux-services.mapreduce.shuffle.class | org.apache.hadoop.mapred.ShuffleHandler | 为了能够运行MapReduce程序,需要让各个NodeManager在启动时加载shuffle server,shuffle server实际上是Jetty/Netty Server,Reduce Task通过该server从各个NodeManager上远程拷贝Map Task产生的中间结果 |
yarn.resourcemanager.scheduler.address | master:18030 | 参数解释:ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。 |
yarn.resourcemanager.resource-tracker.address | master:18031 | 参数解释:ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等。 |
yarn.resourcemanager.address | master:18032 | ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等。 |
yarn.resourcemanager.admin.address | master:18033 | ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等。 |
yarn.resourcemanager.webapp.address | master:18088 | ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。 |
<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:18032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
5、修改
master和
slaves文件
vi master
Master
保存退出
vi slaves
Slave01
Slave02
保存退出
6、分发配置好的安装文件
scp -r hadoop-2.6.3 root@Slave01:/usr/local/program/
scp -r hadoop-2.6.3
root
@
Slave02
:/usr/local/program/
7、
格式化
namenode
在Master上进入目录/usr/local/program/hadoop-2.6.3/bin中执行
./hdfs namenode -format
8、验证是否成功
cd /usr/local/program/hadoop-2.6.3/sbin/
./start-dfs.sh
./start-yarn.sh
1、在服务器上输入jps,出现标红的进程
2、Hadoop Web界面(HDFS)
http://192.168.50.230:50070/dfshealth.html#tab-overview
3、Yarn资源管理界面
http://192.168.50.230:18088/cluster
4、测试上传文件到hdfs上
mkdir test1
cat > test1/cst_test1
hello world!
lt's a lovely day!
5、运行 Wordcount示例
进入/usr/local/program/hadoop-2.6.3/目录下
执行bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.3.jar wordcount /test1 /out1