Hadoop -- softwbc 发布于:2017年11月21日 浏览量:3663  |

一、=============================== CentOS 6.4 x64 源码编译安装 ===============================
1、准备工作:

1
java -version

安装maven
---------------------------------------------

安装protobuf(protobuf-2.5.0.tar.gz):
从https://code.google.com/p/protobuf/downloads/list(要能访问google.com)下载protobuf-2.5.0.tar.gz

解包

1
tar -zxf protobuf-2.5.0.tar.gz

进入目

1
cd protobuf-2.5.0

假如 你希望编译成功后输出的目录 为 /home/work /protobuf/ 则输入如下两条命令:

1
./configure --prefix=/home/work/protobuf/
1
make && make install

编译成功后将export PATH= /home/work/protobuf/bin:$PATH加入到环境变量中
最后输入  protoc --version命令,如显示libprotoc 2.5.0则安装成功
---------------------------------------------

从官网下载hadoop-2.7.1-src.tar.gz源码包

1
tar -zxvf hadoop-2.7.1-src.tar.gz
1
2
3
4
5
cd hadoop-2.7.1-src
 
mvn package -Pdist,native,docs -DskipTests -Dtar
 
/home/hadoop/hadoop-2.7.1-src/hadoop-dist/target

asdfas
=================================SSH免密码登陆(Centos6.4)==================================
(1)CentOS默认没有启动ssh无密登录,去掉/etc/ssh/sshd_config其中2行的注释,每台服务器都要设置,
#RSAAuthentication yes
#PubkeyAuthentication yes
(2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
(3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
cat id_rsa.pub>> authorized_keys
ssh root@192.168.0.183 cat ~/.ssh/id_rsa.pub>> authorized_keys
ssh root@192.168.0.184 cat ~/.ssh/id_rsa.pub>> authorized_keys
(4)把Master服务器的authorized_keys、known_hosts复制到Slave服务器的/root/.ssh目录
(5)完成,ssh root@192.168.0.183、ssh root@192.168.0.184就不需要输入密码了
=====
4、安装Hadoop2.7,只在Master服务器解压,再复制到Slave服务器
(1)下载“hadoop-2.7.0.tar.gz”,放到/home/hadoop目录下
(2)解压,输入命令,tar -xzvf hadoop-2.7.0.tar.gz
(3)在/opt/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name
5、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.0.182:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>


6、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的hdfs-site.xml
<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.0.182:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>


7、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.0.182:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.0.182:19888</value>
    </property>
</configuration>


8、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.0.182:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.0.182:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.0.182:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.0.182:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.0.182:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>768</value>
    </property>
</configuration>


9、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下hadoop-env.sh、yarn-env.sh的JAVA_HOME,不设置的话,启动不了,
export JAVA_HOME=/home/java/jdk1.7.0_79




10、配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的slaves,删除默认的localhost,增加2个从节点,
192.168.0.183
192.168.0.184


11、将配置好的Hadoop复制到各个节点对应位置上,通过scp传送,
scp -r /home/hadoop 192.168.0.183:/home/
scp -r /home/hadoop 192.168.0.184:/home/


12、在Master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.7.0目录
(1)初始化,输入命令,bin/hdfs namenode -format
(2)全部启动sbin/start-all.sh,也可以分开sbin/start-dfs.sh、sbin/start-yarn.sh
(3)停止的话,输入命令,sbin/stop-all.sh
(4)输入命令,jps,可以看到相关信息


13、Web访问,要先开放端口或者直接关闭防火墙
(1)输入命令,systemctl stop firewalld.service
(2)浏览器打开http://192.168.0.182:8088/
(3)浏览器打开http://192.168.0.182:50070/


14、安装完成。这只是大数据应用的开始,之后的工作就是,结合自己的情况,编写程序调用Hadoop的接口,发挥hdfs、mapreduce的作用。

=====

1、使用MAVEN 
<dependency>
<groupId> org.apache.hadoop</groupId >
<artifactId> hadoop-client </artifactId>
<version> 2.7.1</ version>
</dependency>


2、错误:
ls: `.\\\': No such file or directory

1
hadoop fs -ls /


3、

org.apache.hadoop.security.AccessControlException: Permission denied

sulution:added this entry to conf/hdfs-site.xml

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>


4、

Exception in thread "main" org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user could only be replicated to 0 nodes instead of minReplication (=1).  There are 0 datanode(s) running and no node(s) are excluded in this operation.

at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1550)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3110)

at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3034)

at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:723)

at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)

at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)

at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)

at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)

at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)

at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)

at java.security.AccessController.doPrivileged(Native Method)

at javax.security.auth.Subject.doAs(Subject.java:415)

at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)

at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)

dataNode上日志:

2015-07-18 03:05:10,418 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool BP-1069186616-127.0.0.1-1437447521521 (Datanode Uuid null) service to /172.18.24.222:9000 beginning handshake with NN

2015-07-18 03:05:10,422 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool BP-1069186616-127.0.0.1-1437447521521 (Datanode Uuid null) service to /172.18.24.222:9000 Datanode denied communication with namenode because hostname cannot be resolved (ip=172.18.24.212, hostname=172.18.24.212): DatanodeRegistration(0.0.0.0:50010, datanodeUuid=cd6f1d14-d1f6-4ab9-b087-99e0d6111b80, infoPort=50075, infoSecurePort=0, ipcPort=50020, storageInfo=lv=-56;cid=CID-b3e58f7c-c8bc-4d7f-af29-7d05eedd629d;nsid=254144239;c=0)

        at org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:863)

        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:4529)

        at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:1279)

        at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:95)

        at org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:28539)

        at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)

        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)

        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)

        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)

        at java.security.AccessController.doPrivileged(Native Method)

        at javax.security.auth.Subject.doAs(Subject.java:415)

        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)

        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)
修改namenode上的/etc/hosts文件,加上新datanode的ip配置,问题解决
172.18.24.212 myDataNodeHostName


所有slave节点添加3的配置,重新配置slave节点core-site.xml(使用namenode上的配置覆盖)
重启
////
另外,不影响功能的日志报错

2015-07-21 11:10:50 DEBUG org.apache.hadoop.util.Shell:321 - Failed to detect a valid hadoop home directory

java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.

at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:303)

at org.apache.hadoop.util.Shell.<clinit>(Shell.java:328)

at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)

at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2807)

at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2802)

at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2668)

at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)

at com.xinhuanet.hadoop.hadoop.App.main(App.java:24)

2015-07-21 11:10:50 ERROR org.apache.hadoop.util.Shell:374 - Failed to locate the winutils binary in the hadoop binary path

java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:356)

at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:371)

at org.apache.hadoop.util.Shell.<clinit>(Shell.java:364)

at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:80)

at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2807)

at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2802)

at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2668)

at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)

at com.xinhuanet.hadoop.hadoop.App.main(App.java:24)


cd /home/hadoop/hadoop-2.7.1-src/hadoop-dist/target
下载hadoop-2.7.1.tar.gz 


===========

评论|回复
暂无评论

关于我们 |  广告服务 |  联系我们 |  网站声明

Copyright © 2015 - 2016 DISPACE.NET |  使用帮助 |  关于我们 |  投诉建议

京ICP备13033209号-2