Hadoop测试环境安装记录
发布日期:2021-11-04 22:04:12
浏览次数:6
分类:技术文章
本文共 9781 字,大约阅读时间需要 32 分钟。
测试机:10.1.1.1
1、测试环境勘查
1)硬件
a、CPU
命令: cat /proc/cpuinfo
命令: cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
命令: cat /proc/cpuinfo | grep physical.id | uniq -c
命令: getconf LONG_BIT
命令: cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
结果:1*4核 2GHZ 支持64位
b、内存
命令: cat /proc/meminfo
结果:4GB
c、硬盘
命令:dmesg | grep hd
结果:
d、网卡
命令: dmesg | grep -i eth
结果:2块1000M
e、机器型号
命令: dmidecode | grep "Product Name"
结果:1950
e、分区情况
命令:fdisk -l
结果:
命令:df -h
结果:
2)操作系统
a、内核版本
命令: uname -a
结果:2.6.18-194.e15
b、发行版本
命令: cat /etc/issue
结果:CentOS 5.5
2、安装配置任务
1)jdk安装
a、 版本:jdk1.7.0_17 linux 64位,安装包:jdk-7u17-linux-x64.gz
b、安装目录:/usr/java/jdk1.7.0_17
c、安装步骤
a)将jdk-7u17-linux-x64.gz复制到/usr/java/
b) tar zxvf jdk-7u17-linux-x64.gz
c)删除jdk-7u17-linux-x64.gz,释放空间
rm jdk-7u17-linux-x64.gz
d、设置java环境变量
a)打开profile
#vi /etc/profile
b)添加java环境变量
export JAVA_HOME=/usr/java/jdk1.7.0_17
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin
c)使配置生效
#source /etc/profile
d)更新 alternatives,选择JDK版本
#update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_17/bin/java 60
#update-alternatives --config java
e)进入 /usr/bin/目录
#cd /usr/bin
#ln -s -f /usr/java/jdk1.7.0_17/jre/bin/java
#ln -s -f /usr/java/jdk1.7.0_17/bin/javac
f)验证
#java -version
2)hadoop安装
a、版本:hadoop-0.20.2-cdh3u3
b、安装目录:/usr/local/hadoop-0.20.2-cdh3u3
c、安装步骤
a)将 hadoop-0.20.2-cdh3u3 复制到/usr/local/
b) tar zxvf hadoop-0.20.2-cdh3u3.tar.gz
c)删除hadoop-0.20.2-cdh3u3.tar.gz,释放空间
rm hadoop-0.20.2-cdh3u3.tar.gz
d、设置hadoop环境变量
a)打开profile
#vi /etc/profile
b)添加java环境变量
export HADOOP_HOME=/usr/local/hadoop-0.20.2-cdh3u3
export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
export PATH=$PATH:$HADOOP_HOME/bin
c)使配置生效
#source /etc/profile
3)ant安装
a、版本:apache-ant-1.8.3-bin.tar.gz
b、安装目录:/usr/local/apache-ant-1.8.3
c、安装步骤
a)将 apache-ant-1.8.3-bin.tar.gz 复制到/usr/local/
b) tar zxvf apache-ant-1.8.3-bin.tar.gz
c)删除 apache-ant-1.8.3-bin.tar.gz ,释放空间
d、配置环境变量
a) #vi /etc/profile
b)添加
export ANT_HOME=/usr/local/apache-ant-1.8.3
export PATH=$PATH:$ANT_HOME/bin
c)使配置生效
#source /etc/profile
e、验证 ant -version
4)lzo安装
a、安装包说明
lzo-2.06.tar.gz------------------------------lzo压缩算法
kevinweil-hadoop-lzo-6bb1b7f.tar.gz----hadoop调用lzo的native库和jar
lzop-1.03.tar.gz----------------------------linux lzo工具
b、安装步骤
a)安装gcc
yum -y install gcc gcc-c++ autoconf automake
b)安装lzo
将 lzo-2.06.tar.gz复制到/usr/local
解压: tar zxvf lzo-2.06.tar.gz
编译:cd lzo-2.06
./configure --enable-shared
make
make install
拷贝/usr/local/lib目录下的lzo库文件到/usr/lib(32位平台),或/usr/lib64(64位平台)
cp /usr/local/lib/liblzo2.* /usr/lib64/
c)编译安装 hadoop lzo 本地库及jar
将 kevinweil-hadoop-lzo-6bb1b7f.tar.gz 复制到/usr/local
解压:tar zxvf kevinweil-hadoop-lzo-6bb1b7f.tar.gz
编译:cd kevinweil-hadoop-lzo-6bb1b7f
export CFLAGS=-m64
export CXXFLAGS=-m64
export ANT_OPTS="-Dhttp.proxyHost=221.6.15.156 -Dhttp.proxyPort=82"
ant compile-native tar
把编码/解码器以及native库拷贝到$HADOOP_HOME/lib目录下:
cp build/hadoop-lzo-0.4.15.jar $HADOOP_HOME/lib
cp build/native/Linux-amd64-64/lib/* $HADOOP_HOME/lib/native/Linux-amd64-64/
native库拷贝到/usr/lib64/
cp build/native/Linux-amd64-64/lib/* /usr/lib64/
问题:在jdk1.7.0下可能无法编译成功。
由于需要访问repo2.maven.org,需要设置代理 export ANT_OPTS="-Dhttp.proxyHost= 221.6.15.156 -Dhttp.proxyPort=82"
http代理主机可以从网上查找
c)安装 lzop
将 lzop-1.03.tar.gz 复制到/usr/local
解压:tar -zxvf lzop-1.03.tar.gz
编译:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
cd lzop-1.03
./configure
make
make install
命令:
压缩 lzop -9 /usr/local/soft/lzo/test.log
解压 lzop -d /usr/local/soft/lzo/test.log.lzo
测试文件完整性 lzop -t /usr/local/soft/lzo/test.log
3、hadoop配置任务
1)linux系统配置
a、主机名:hadooptest,注意主机名不能有下划线,否则启动hadoop会报错
参考命令:
修改hostname:#hostname hadooptest
修改hostname:#vi /etc/sysconfig/network
hostname=hadooptest
增加host: #vi /etc/hosts
10.1.1.1 hadooptest hadooptest
重启网卡: #/etc/init.d/network restart
b、vi /etc/hosts
10.1.1.1 hadoop_test hadoop_test
删除127.0.0.1的映射
c、修改openfiles为最大
查看: ulimit -a
修改: echo 65535 > /proc/sys/fs/file-max
vi /etc/security/limits.conf
增加 * - nofile 65535
vi /etc/sysctl.conf
增加fs.file-max = 65535
d、增加hadoop用户
groupadd hadoop
useradd hadoop -G hadoop
e、创建hadoop使用的目录
#mkdir /data0/hadoop
#mkdir /data0/hadoop/data
#mkdir /data0/hadoop/data/hdfs
#mkdir /data0/hadoop/data/mapred
#mkdir /data0/hadoop/logs
#mkdir /data0/hadoop/tmp
f、修改目录权限
#chown hadoop:hadoop /usr/local/hadoop-0.20.2-cdh3u3 -R
#chown hadoop:hadoop /data0/hadoop -R
g、配置ssh
su - hadoop
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2)hadoop伪分布模式配置
a、${HADOOP_HOME}/conf/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_17
export HADOOP_LOG_DIR=/data0/hadoop/logs
b、${HADOOP_HOME}/conf/core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--=== global properties ===-->
<property>
<name>hadoop.tmp.dir</name>
<value>/data0/hadoop/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!--=== logging properties ===-->
<property>
<name>hadoop.logfile.size</name>
<value>10000000</value>
<description>The max size of each log file</description>
</property>
<property>
<name>hadoop.logfile.count</name>
<value>10</value>
<description>The max number of log files</description>
</property>
<!--=== file system properties ===-->
<property>
<name>fs.default.name</name>
<value>hdfs://hadooptest:9000/</value>
</property>
<!-- recycle -->
<property>
<name>fs.trash.interval</name>
<value>4320</value>
<description>Number of minutes between trash checkpoints. If zero, the trash feature is disabled.</description>
</property>
<!-- secondarynamenode-->
<property>
<name>fs.checkpoint.dir</name>
<value>/data0/hadoop/data/hdfs/namesecondary</value>
</property>
<property>
<name>fs.checkpoint.period</name>
<value>1800</value>
<description>The number of seconds between two periodic checkpoints.</description>
</property>
<property>
<name>fs.checkpoint.size</name>
<value>33554432</value>
</property>
</configuration>
c、${HADOOP_HOME}/conf/hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- namenode -->
<property>
<name>dfs.name.dir</name>
<value>/data0/hadoop/data/hdfs/namenode</value>
</property>
<!-- datanode -->
<property>
<name>dfs.data.dir</name>
<value>/data0/hadoop/data/hdfs/datanode</value>
</property>
<property>
<name>dfs.datanode.du.reserved</name>
<value>1073741824</value>
<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.
</description>
</property>
<!-- permissions-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
d、${HADOOP_HOME}/conf/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.system.dir</name>
<value>/data0/hadoop/data/mapred/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/data0/hadoop/data/mapred/local</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hadooptest:9001</value>
</property>
<property>
<name>mapred.job.reuse.jvm.num.tasks</name>
<value>-1</value>
</property>
<!-- max map/reduce -->
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>1</value>
<final>true</final>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>1</value>
<final>true</final>
</property>
</configuration>
e、${HADOOP_HOME}/conf/masters
10.1.1.1
f、${HADOOP_HOME}/conf/slaves
10.1.1.1
g、增加lzo的支持
a)在core-site.xml中增加
<!--=== i/o properties ===-->
<!-- config lzo-->
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
<description>A list of the compression codec classes that can be used for compression/decompression.
</description>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
b) map输出启用lzo,在mapred-site.xml中增加
<!--about lzo -->
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapred.child.env</name>
<value>JAVA_LIBRARY_PATH=/usr/local/hadoop-0.20.2-cdh3u3/lib/native/Linux-amd64-64</value>
</property>
<!-- map out use lzo-->
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
4、验证hadoop配置
a、首先需要Format namenode
在namenode节点运行:hadoop namenode -format
b、启动hadoop各组件
a) 启动:
方法1:start-all.sh 需要ssh支持,需要配置masters和slaves文件
方法2:
hadoop-daemon.sh start namenode &
hadoop-daemon.sh start datanode &
hadoop-daemon.sh start jobtracker &
hadoop-daemon.sh start tasktracker &
b)停止:
方法1: stop-all.sh 与start-all.sh对应
方法2:
hadoop-daemon.sh stop namenode &
hadoop-daemon.sh stop datanode &
hadoop-daemon.sh stop jobtracker &
hadoop-daemon.sh stop tasktracker &
c、http://hadooptest:50070/dfshealth.jsp
http://hadooptest:50030/
d、运行WordCount示例
hadoop fs -mkdir hdfs://hadooptest:9000/input
hadoop fs -copyFromLocal /usr/local/hadoop-0.20.2-cdh3u3/conf/* hdfs://hadooptest:9000/input
hadoop jar /usr/local/hadoop-0.20.2-cdh3u3/hadoop-examples-0.20.2-cdh3u3.jar wordcount
hdfs://hadooptest:9000/ input hdfs://hadooptest:9000/ output
hadoop fs -cat hdfs://hadooptest:9000/output/*
5、遇到的问题
a、
问题:由于主机名带下划线'_'导致namenode不能启动
现象:查看namenode的日志,抛出java.io.IOException: Incomplete HDFS URI, no host: hdfs://hadoop_test:9000
解决:修改主机名为hadooptest
b、
问题:hadoop fs -ls 列出的是本机目录而非HDFS上的目录
解决:vi /etc/profile增加export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
6、测试集群信息
host:10.1.1.1 hadooptest
namenode:10.1.1.1 :9000
jobtracker:10.1.1.1 :9001
转载地址:https://blog.csdn.net/xiaochawan/article/details/8733094 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年03月26日 08时41分50秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
005_变量的引用与赋值
2021-06-30
006_关于变量定义的状态
2021-06-30
007_shell中把变量重置为null
2021-06-30
008_shell创建只读量
2021-06-30
009_shell中从标准输入信息
2021-06-30
010_bash脚本的参数传递
2021-06-30
011_命令行参数的左移
2021-06-30
012_bash中的if判断条件
2021-06-30
013_bash中的加法
2021-06-30
021_Excel的条件格式
2021-06-30
022_Excel空白值批量填充默认值
2021-06-30
023_emacs git-gutter+报错解决
2021-06-30
024_spacemacs支持org-pomodoro的声音提示
2021-06-30
025_everything搜索使用体验
2021-06-30
026_好用的windows小工具clover
2021-06-30
027-Mac触摸板实现窗口移动
2021-06-30
028_AUTOSAR RTE学习笔记-1
2021-06-30
029_AUTOSAR VFB学习笔记-2
2021-06-30
030_AUTOSAR软件组件学习笔记
2021-06-30
031_AUTOSAR学习笔记_BSW
2021-06-30