没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Hadoop HDFS 安装和管理
1. HDFS安装
1.1. 环境准备
由于相对hdfs 的客户端存在相对路径问题,参见《Hadoop HDFS开发参考》
见 http://www.linuxidc.com/Linux/2012-01/50713.htm
,我们修改了hadoop-0.18.1 的源码并进
行了重新编译,代码为forlink-hadoop.tar.gz。
HDFS中,节点分为Namenode 和Datanode,其中Namenode只有一个(可以通过《Hadoop
HDFS系统双机热备方案》 (见 http://www.linuxidc.com/Linux/2012-01/50714.ht
m) 配置两
台,但同时只能有一台提供服务),Datanode可以有多台。
主机 IP 地址 配置
ost2 (Namenode 的主节点) eth0: 192.168.188.202
eth1: 10.0.0.202 (HA 心跳使
用地址)
eth0:0: 192.168.188.201(虚拟
IP)
容量:80G
接口标准:IDE
转速:7200rpm
缓存容量:2M
平均寻道时间:9ms
传输标准:ATA 133
ost3(Namenode 的从节点) eth0: 192.168.188.203
eth1: 10.0.0.203 (HA 心跳使
用地址)
eth0:0: 192.168.188.201(虚拟
IP)
容量:80G
接口标准:IDE
转速:7200rpm
缓存容量:2M
平均寻道时间:9ms
传输标准:ATA 133
ost4(Datanode) eth0: 192.168.188.204
容量:80G
接口标准:IDE
转速:7200rpm
缓存容量:2M
平均寻道时间:9ms
传输标准:ATA 133
1、修改主机名
在所有节点都要执行此操作,在 202 上:
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ost2
在 203 上为
HOSTNAME=ost3
在 204 上为
HOSTNAME=ost4
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
2、创建 hdfs 用户
Hadoop 要求所有机器上 hadoop 的部署目录结构要相同,并且都有一个相同的用户名的
帐户。在所有节点上创建 hdfs 用户:
用户名 hdfs,口令 hdfs,主目录是/home/hdfs。
3、添加节点到/etc/hosts(在所有节点上执行此操作,其中 192.168.188.201 是虚拟 IP)
127.0.0.1 localhost.localdomain localhost
192.168.188.201 ostvip
192.168.188.203 ost3
192.168.188.202 ost2
192.168.188.204 ost4
10.0.0.202 ost2
10.0.0.203 ost3
可以在 ost2 修改,然后拷贝到其他节点(需 root 权限)
scp /etc/hosts ost3:/etc/hosts
scp /etc/hosts ost4:/etc/hosts
1.2. HDFS部署(ost2 上)
1、以 hdfs 用户登录,在主目录下创建子目录 hdfsinstall
2、在 hdfsinstall 目录下解压缩文件,将解压到 hadoop-0.18.1 目录
tar xvzf forlink-hadoop.tar.gz
3、创建链接
ln -s hadoop-0.18.1 hadoop
4、创建配置目录
mkdir /home/hdfs/hdfsinstall/hadoop-config
5、将 /home/hdfs/hdfsinstall/hadoop/conf/目录中的文件拷贝到 hadoop-config 目录中
6、指定环境变量$HADOOP_CONF_DIR
在/home/hdfs/.bash_profile 中添加
HADOOP_CONF_DIR=/home/hdfs/hdfsinstall/hadoop-config/
export HADOOP_CONF_DIR
7、下载 jdk-1_5_x-rc-linux-i586.bin。
8、运行
./ jdk-1_5_x-rc-linux-i586.bin
安装完毕,JDK 安装在/home/hdfs/hdfsinstall/jdk1.5.0_16 目录下
9、创建链接:ln –s jdk1.5.0_16 jdk
10、设置环境变量(写入 hdfs 用户的.bash_profile 中)
JAVA_HOME=/home/hdfs/hdfsinstall/jdk
export JAVA_HOME
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export PATH
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export CLASSPATH
11、创建子目录 filesystem
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
cd /home/hdfs/hdfsinstall
mkdir filesystem
1.3. Hadoop配置
cd $HADOOP_CONF_DIR,进入/home/hdfs/hdfsinstall/hadoop-config 目录
1、masters 文件(这里指定虚拟 ip 作为名字节点,指定 Secondary Namenode)
192.168.188.201
2、slaves 文件(指定数据节点)
192.168.188.204
3、修改 hadoop-env.sh
export JAVA_HOME=/home/hdfs/hdfsinstall/jdk
4、hadoop-site.xml
在 hadoop-site.xml 里面定义我们需要的项,其值会覆盖 hadoop-default.xml 中的默认值:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value> hdfs://192.168.188.201:9000 </value>
<description> namenode 的配置,机器名加端口 </description>
</property>
<!-- map/reduce properties -->
<property>
<name>mapred.job.tracker</name>
<value> hdfs://192.168.188.201:9001 </value>
<description> JobTracker 的配置,机器名加端口
</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value> /mnt/drbd/hdfs/tmp </value>
<description> Hadoop 的默认临时路径,这里设置在双机的共享位置</description>
</property>
<property>
<name>dfs.name.dir</name>
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
<value> /mnt/drbd/hdfs/name</value>
<description>存储名字节点信息的位置,这里设置在双机的共享位置
</description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hdfs/hdfsinstall/filesystem/data</value>
<description>存储文件系统数据的位置,在每个数据节点上。
</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>数据需要备份的数量,默认是 3
</description>
</property>
<property>
<name>dfs.permissions.supergroup</name>
<value>hdfs</value>
<value>liang</value>
<description>super-users,可以添加多个用户</description>
</property>
</configuration>
2、修改 hadoop-env.sh
export JAVA_HOME=/home/hdfs/hdfsinstall/jdk
1.4. 创建目录(ost2)
1 root 执行
chmod 777 /mnt/drbd
2 创建 hdfs 目录(hdfs 用户)
mkdir /mnt/drbd/hdfs
3 创建临时目录(hdfs 用户)
mkdir /mnt/drbd/hdfs/tmp
4 创建名字节点元数据目录
mkdir /mnt/drbd/hdfs/name(hdfs 用户)
5 创建数据节点目录(所有节点上)(hdfs 用户)
mkdir /home/hdfs/hdfsinstall/filesystem/data
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
1.5. 数据节点存活性和副本配置
每个数据节点周期性地向名字节点发送心跳信号。网络割裂可能导致一部分数据节点
跟名字节点失去联系。名字节点通过心跳信号的缺失来检测这一情况,并将这些近期不再发
送心跳信号数据节点标记为宕机,不会再将新的 IO 请求发给它们。任何存储在宕机数据节
点上的数据将不再有效。数据节点的宕机可能会引起一些数据块的副本系数低于指定值,名
字节点不断地检测这些需要复制的数据块,一旦发现就启动复制操作。在下列情况下,可能
需要重新复制:某个数据节点节点失效,某个副本遭到损坏,数据节点上的硬盘错误,或者
文件的副本系数增大。
副本数默认配置为 3,即每个文件在三个节点上保存副本,文件的副本数配置在
hadoop-site.xml 中:
<property>
<name>dfs.replication</name>
<value>2</value>
<description>数据需要备份的数量,默认是 3
</description>
</property>
<property>
如果把副本数配置为 1,当数据节点发生故障后,该数据节点上保存的数据将丢失。如
果副本数配置为 2,某个数据节点发生故障并不会影响数据可用性,但如果希望继续保存两
个拷贝,需要执行 bin/start-balancer.sh 来实现平衡,可以把这个脚本定时自动执行。
1.6. 拷贝配置到数据节点
将 hadoop 的整体环境从 namenode 拷贝到数据节点上去,这里是 ost4
scp -r /home/hdfs/hdfsinstall/ ost4:/home/hdfs/
1.7. 日志配置
1 名字节点日志
Hadoop 中,名字节点会产生 hadoop-hdfs-namenode-ost2.log 和
hadoop-hdfs-secondarynamenode-ost2.log 日志,其中 ost2 为节点名,hdfs 为超级用户名。名
字节点的日志由运行在 ost2 上的进程写入。
由于名字节点采用了 ha 方式部署,因此需要把名字节点的日志保存在共享位置。即对
于 ost2,修改 hadoop-env.sh,把日志保存在 drbd 盘上:
export HADOOP_LOG_DIR=/mnt/drbd/hdfs/logs
备注:
由于 ost2 和 ost3 采用了 heartbeat 实现 HA 部署,要求两台机器有不同的主机名,而 hdfs
根据主机名创建日志,因此在设备切换时,会产生不同的日志,如
hadoop-hdfs-namenode-ost2.log 和 hadoop-hdfs-namenode-ost3.log,但不影响系统正常运行。
2 数据节点日志
www.linuxidc.com
Linux公社(LinuxIDC.com) 是包括Ubuntu,Fedora,SUSE技术,最新IT资讯等Linux专业类网站。
剩余20页未读,继续阅读
资源评论
fangdexsdn
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功