Hadoop 2.7.3安装与配置

原创
2017/04/13 16:03
阅读数 115

一、JDK的安装与配置

(1)、自行前往Oracle官网下载JDK

(2)、下载后解压到相关路径,配置环境变量:

vi /etc/profile

添加如下配置

export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JAVA_BIN=$JAVA_HOME/bin
export JAVA_LIB=$JAVA_HOME/lib
export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar
export PATH=$PATH:$JAVA_HOME/bin

(3)、刷新配置

source /etc/profile

二、配置SSH

sudo apt-get install ssh
sudo apt-get install rsync

(1)、用户主目录(cd ~),ls -a查看文件,其中一个为“.ssh”,该文件价是存放密钥的。生成的密钥都会放到这个文件夹中。
(2)、命令生成密钥: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa (使用rsa加密方式生成密钥)回车后,会提示三次输入信息,我们直接回车即可。
(3)、将生成的公钥id_rsa.pub 内容追加到authorized_keys,执行命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

验证:
执行命令:ssh localhost(主机名) 无错误提示则配置成功

三、hadoop的相关配置
(1)、官方的下载地址链接:Hadoop下载地址

(2)、下载后解压路径为/usr/hadoop/hadoop-2.7.3

(3)、配置hadoop

第一个:hadoop-env.sh

vim hadoop-env.sh

第27行中

export JAVA_HOME=/usr/jdk1.8.0_101

第二个:core-site.xml

<!-- 制定HDFS的老大(NameNode)的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://localhost:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:/usr/hadoop/hadoop-2.7.3/tmp</value>
</property>

第三个:hdfs-site.xml

<!-- 指定HDFS副本的数量 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

第四个:mapred-site.xml

mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr运行在yarn上 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

第五个:yarn-site.xml

<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>localhost</value>
</property>
<!-- reducer获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

(4)、配置hadoop的环境变量

vi /etc/profile

添加如下配置

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.3
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

执行指令 source /etc/profile

(5)、格式化namenode(是对namenode进行初始化)

hdfs namenode -format 或 hadoop namenode -format

(6)、安装完成后的验证

验证环境是否配置好:hadoop version

hadoop version

验证Java环境:java -version

java -version

验证节点是否可以启动:

start-all.sh jps

jps

有六项表示安装成功,否则请查看相应的日志文件,找出问题并重新启动

验证网页端是否正常:

http://192.168.3.97:8088/cluster可以正常查看

四、安装过程中遇到的问题及解决方法

(1)、启动不了Namenode进程,出现IllegalArgumentException异常
hdfs-site.xml 文件中将以下内容:

<property>  
    <name>dfs.namenode.name.dir</name>  
    <value>file://${hadoop.tmp.dir}/dfs/name</value>  
</property>  
<property>  
    <name>dfs.datanode.data.dir</name>  
    <value>file://${hadoop.tmp.dir}/dfs/data</value>  
</property>

修改为:

<property>  
    <name>dfs.namenode.name.dir</name>  
    <value>file:/home/hdusr/hadoop-2.2.0/tmp/dfs/name</value>
</property>  
<property>  
    <name>dfs.datanode.data.dir</name>  
    <value>file:/home/hdusr/hadoop-2.2.0/tmp/dfs/data</value>
</property> 

即使用绝对地址代替,如果没有上面的项,则直接添加即可

(2)、nodemanager启动失败,日志中错误如下:

java.lang.IllegalArgumentException: The ServiceName: mapreduce.shuffle set in yarn.nodemanager.aux-services is invalid.The valid service name should only contain a-zA-Z0-9_ and can not start with numbers

根据提示,Hadoop中命名规则是数字、字母或者下划线,其他字符会出现错误,修改重新启动即可

(3)、安装Hadoop启动之后总有警告:Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable

原因:
解决思路一
解决思路二

Apache提供的hadoop本地库是32位的,而在64位的服务器上就会有问题,因此需要自己编译64位的版本。
查看当前是多少位的方法为:

file /usr/hadoop/hadoop-2.7.3/lib/native/libhadoop.so.1.0.0

去网站:http://dl.bintray.com/sequenceiq/sequenceiq-bin/ 下载对应的编译版本,并将准备好的64位的lib包解压到已经安装好的hadoop安装目录的lib/native 和 lib目录下

我在安装的过程中遇到这个问题,并没有重新编译源代码,虽然这样肯定可行,但是太麻烦,我将Hadoop根目录下etc/hadoop/hadoop-env.sh中的下如下内容注释掉:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"   

然后修改该内容为:

export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部