Hadoop分布式文件存储系统需要ssh 免密登录支撑
创建三个同名同密码的用户s
具体步骤详见之前的博客
然后配置Hadoop集群
1.ROOT用户下解压Hadoop
授权给用户
chown -R s /usr/hadoop
2.创建hdfs相关文件
创建存储hadoop数据文件的目录: mkdir /usr/local/src/hadoopdir
存储临时文件,如pid:mkdir /usr/local/src/hadoopdir/tmp
创建dfs系统使用的dfs系统名称hdfs-site.xml使用:
mkdir /usr/local/src/hadoopdir/dfs/name
创建dfs系统使用的数据文件hdfs-site.xml文件使用:
mkdir /usr/local/src/hadoopdir/dfs/data
授权给s: chown -R s /usr/local/src/hadoopdir
3.配置环境变量
ROOT用户下
vim /etc/profile 添加如图:
保存退出后更新:source /etc/profile
修改{Hadoop}/etc/hadoop/hadoop-env.sh
export JAVA_HOME=跟/etc/profile中的Javahome一样
防止Hadoop读不出来
最后验证:Hadoop version
4.配置Hadoop文件内容
总共要修改四个文件
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
5.Master虚拟机修改slaves文件
添加Slave1
Slave2
6.切换为s用户搭建集群(要是root用户运行了但是没有做ssh免密登录在切回s用户就来不及了反正当时拍了快照)
格式hadoop文件:hadoop namenode -format (最后出现“util.ExitUtil: Exiting with status 0”,表示成功)
发送dfs内容给Slave1:scp -r /usr/local/src/hadoopdir/dfs/* Slave1:/usr/local/src/hadoopdir/dfs
发给dfs内容给Slave2:scp -r /usr/local/src/hadoopdir/dfs/* Slave2:/usr/local/src/hadoopdir/dfs
发送hadoop文件给数据节点:scp -r /usr/local/src/hadoop/hadoop-2.6.5/* Slave1:/usr/local/src/hadoop/hadoop-2.6.5/ scp -r /usr/local/src/hadoop/hadoop-2.6.5/* Slave2:/usr/local/src/hadoop/hadoop-2.6.5/
/usr/local/src/hadoopdir/tmp
7.启动集群
在{Hadoop}文件夹下./sbin/start-all.sh
Master的jps
Slave的jsp
离开安全模式(master): hadoop dfsadmin safemode leave
查看结果:hadoop dfsadmin -report
登录网页查看:http://Master:50070 (查看live node) 查看yarn环境(http://Master/8088)
错误:Exception in thread "main" org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist:
这个提示了找不到文件,所以解决步骤如下:
1)确认下集群上的HDFS系统上有没有这个文件,没有的话用命令 hdfs dfs -mkdir -p XXXX 创建文件
2)用hdfs dfs -ls 确认下文件的存在,然后和自己输入的参数比较一下,看看有没有拼写错误
3)确认路径是否真的正确,因为hdfs上可能新建文件夹的时候无意识的都是用的相对路径,所以自己没
确认正确的路径
比如自己认为的路径:hdfs://localhost:9000/input
实际上这个路径是错误的 输入 hdfs dfs -ls /
drwxr-xr-x - root supergroup 0 2017-02-05 21:47 /user
发现实际上绝对路径应该是 hdfs://localhost:9000/user/hadoop/input
core-site.xml <property> <name>fs.defaultFS</name> <value>hdfs://Master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/src/hadoopdir/tmp/</value> <description>A base for other temporary directories.</description> </property> <property> <name>hadoop.proxyuser.hadoop.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> |
hdfs-site.xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:///usr/local/src/hadoopdir/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:///usr/local/src/hadoopdir/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> </configuration> |
mapred-site.xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>Master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>Master:19888</value> </property> <property> <name>mapreduce.jobtracker.http.address</name> <value>Master:50030</value> </property> <property> <name>mapred.job.tracker</name> <value>Master:9001</value> </property> </configuration> |
yarn-site.xml <configuration>
<!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>Master</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>Master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>Master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>Master:8031</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>Master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>Master:8088</value> </property> </configuration> |