我这里是下载的 hadoop-2.10,从北京理工大学开源软件镜像,官网下载你懂得…
地址: http://mirror.bit.edu.cn/apache/hadoop/
下载完成后解压, tar -xzvf hadoop-2.10.0.tar.gz
,这里我将hadoop直接放在加目录下。
伪分布配置 |
配置文件路径在 hadoop目录/etc/hadoop
中
hadooop-env.sh 中25行左右,配置 JAVA_HOME
# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
core-site.xml
<configuration>
<property>
<name>fs.defaultFSname>
<value>hdfs://zachary-pc:9000value>
property>
<property>
<name>io.file.buffer.sizename>
<value>131072value>
property>
<property>
<name>hadoop.tmp.dirname>
<value>/home/zachary/hadoop-2.10.0/tmpvalue>
property>
configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>/home/zachary/hadoop-2.10.0/namevalue>
property>
<property>
<name>dfs.blocksizename>
<value>268435456value>
property>
<property>
<name>dfs.namenode.handler.countname>
<value>100value>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>/home/zachary/hadoop-2.10.0/datavalue>
property>
<property>
<name>dfs.replicationname>
<value>1value>
property>
configuration>
mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.namename>
<value>yarnvalue>
property>
configuration>
yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostnamename>
<value>zahcary-pcvalue>
property>
<property>
<name>yarn.nodemanager.aux-servicesname>
<value>mapreduce_shufflevalue>
property>
configuration>
格式化namenode,在 hadoop目录/bin
,命令:hdfs namenode -format
。
启动命令在 hadoop目录/sbin
下,
启动hadoop:start-all.sh
关闭hadoop:stop-all.sh
启动HDFS start-dfs.sh
启动YARN start-yarn.sh
启动NameNode hadoop-daemon.sh start namenode
启动DataNode hadoop-daemon.sh start datanode
启动ResourceManager yarn-daemon.sh start resourcemanager
启动NodeManager yarn-daemon.sh start nodemanager
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/E:/my_java_jar/maven_repository/org/mybatis/mybatis/3.4.5/mybatis-3.4.5.jar) to method java.lang.Class.checkPackageAccess(java.lang.SecurityManager,java.lang.ClassLoader,boolean)
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.Reflector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
警告非法反射访问错误
,我这里将jdk-13
换成jdk-8
解决了问题
~/hadoop-2.10.0 ❯❯❯ jps
5153 Jps
4564 NodeManager
4280 SecondaryNameNode
3993 NameNode
4090 DataNode
4462 ResourceManager
命令行输入jps
,有以下6个进程就是成功启动了
通过浏览器输入:http://ip:50070/
,登入HDFS管理界面
http://ip:8088/
,节点管理
命令行输入:ssh-keygen -t rsa
生成公钥密钥对,一直按回车直到生成结束。
执行结束后两个文件 id_rsa
和 id_rsa.pub
其中前者为私钥,后者为公钥,文件位置在当前用户家目录的 .ssh
隐藏文件夹下。
然后命令行输入:cat id_rsa.pub >> authorized_keys
ssh: connect to host zachary-pc port 22: Connection refused
我这里是因为没有开启sshd服务
,启动命令 service sshd restart
或者 systemctl start sshd.service
在上面中,启动hadoop要在hadoop所在目录。
我们可以同过配置环境变量,使hadoop可以全局启动。
/etc/profile
中添加:
export HADOOP_HOME=/home/zachary/hadoop-2.10.0 # hadoop所在目录
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
重新编译 profile
,命令 :source /etc/profile
Permission denied: user=dr.who, access=READ_EXECUTE, inode="/tmp":root:super
缺失权限; 解决办法:执行 hdfs dfs -chmod -R 755 /tmp
分布配置 |
在 /etc/hosts
配置主机名,每一台服务器一样,类似:
192.168.10.1 master
192.168.10.2 slave_1
192.168.10.3 slave_2
将上面配置的公钥复制到从属服务器,命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave_1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave_2
修改 core-site.xml :
<property>
<name>fs.defaultFSname>
<value>hdfs://master:9000value>
property>
启动命令同上,只需在主服务器启动即可。
jps
命令查看,从属服务器有一下进程即启动成功:
~/hadoop-2.10.0 ❯❯❯ jps
4545 NodeManager
4371 DataNode
4678 Jps