Tag Archives: hadoop

Hadoop CGroup 设置

hadoop 2.8 CGroup的设置,CentOS7 默认的CGroup位置在/sys/fs/cgroup/cpu 等,如果Hadoop不设置自动mount,而是使用默认mount位置的话,会mount到/sys/fs/cgroup/cpu/hadoop-yarn,所以如果要在Hadoop2.8版本请做以下操作:

假设以Hadoop用户启动YARN:
mkdir -p /sys/fs/cgroup/cpu/hadoop-yarn
chown -R hadoop:hadoop /sys/fs/cgroup/cpu/hadoop-yarn

修改如下配置:
yarn.nodemanager.container-executor.class   org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor
yarn.nodemanager.linux-container-executor.resources-handler.class  org.apache.hadoop.yarn.server.nodemanager.util.CgroupsLCEResourcesHandler
yarn.nodemanager.linux-container-executor.group hadoop

然后重启Node Manager就可以了

NameNode元数据恢复流程

最近在为用户解决问题的时候发现的,个别用户删除了namenode standby的所有元数据,为了恢复数据可以做以下操作:
1.停止任务
2.namenode 进入safemode

hdfs dfsadmin -safemode enter

3.nameonde存储元数据

hdfs dfsadmin -saveNamespace

4.备份active元数据

备份 /mnt/disk1/hdfs 下所有数据

5.拷贝active数据到standby
将/mnt/disk1/hdfs 数据拷贝到standby
6.重启standby
7.重启成功后,退出safemode

hdfs dfsadmin -safemode leave

8.恢复任务

Hadoop Native库安装文档

我们常用的Hadoop native一般是LZO和Snappy,下面说明一下这两个Native库的安装。
一、首先是Snappy
(一)、源码部分
1、下载Snappy的源码,地址是[snappy](http://google.github.io/snappy/),最新版本是1.1.3。
2、下载到服务器上后进行源码编译

./configure -prefix=/usr/local/snappy
make && make install

3、随后所有的库文件生成到/usr/local/snappy目录下

cp -nd /usr/local/snappy/lib/* /lib64
ldconfig

把所有的动态链接库文件拷贝到/lib64下,保留软链接,并使之生效.
(二)Hadoop snappy
Hadoop snappy已经很早前就merge到trunk代码中,所以编译起来比较简单。在hadoop的源码目录,执行

mvn package -Pdist -Pnative -DskipTests -Drequire.snappy

native动态链接库目录在hadoop-dist/target/hadoop-2.4.0/lib/native下面,包含了snappy等等。

二、LZO
(一)、源码部分
1、下载lzo源码

 wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz

2、解压后编译

./configure --enable-shared --prefix /usr/local/lzo
make && make install

3、随后所有的库文件生成到/usr/local/lzo目录下

cp -nd /usr/local/snappy/lzo/* /lib64
ldconfig

把所有的动态链接库文件拷贝到/lib64下,保留软链接,并使之生效.
(二)、Hadoop LZO部分
1、下载
Hadoop LZO需要单独编译,不与Hadoop源码一起编译,下载地址在[Hadoop lzo](https://github.com/twitter/hadoop-lzo)
2、编译

C_INCLUDE_PATH=/usr/local/lzo/include
LIBRARY_PATH=/usr/local/lzo/lib
mvn clean package -DskipTests

3、在target里面有所需要的jar包,同时native库在target/native/Linux-amd64-64/lib下面

cp -nd target/native/Linux-amd64-64/lib $HADOOP_HOME/lib/native
cp hadoop-lzo-*.jar  $HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/
cp hadoop-lzo-*.jar %HADOOP_HOME/share/hadoop/tools/lib/
cp hadoop-lzo-*.jar %HADOOP_HOME/share/hadoop/common/lib/