一、服务器访问环境
hadoop服务器4台主机,均使用ubuntu18-live-server版本,
本地localhost免密登录
ssh localhost步骤
1、ssh-keygen -t rsa
免密码登录
使用下面的命令即可免密码登录localhost
2、ssh-copy-id localhost
但是到了这里执行ssh localhost的时候依然提示我输入密码。我仔细分析了原因,一般来讲失败的原因有两个。
服务器之间免密登录
1、根据路径复制公钥到免密登录的主机
scp id_rsa.pub 账号@hostip:/rootpath/.ssh/zkhd1
2、复制公钥到authorized_key
cat zkhd1 >>authorized_keys
也可用ssh-copy-id -i ~/.ssh/id_rsa.pub root@spark1
所有文件放置在/opt/sgb内
1、先授权4台主机opt所有权限 sudo chmod 777 /opt
2、第一台主机操作 cd /opt
3、第一台主机操作 mkdir sgb
hosts文件配置
注意注意注意
注释掉 #127.0.1.1 zkhd1 否则通过器名本机外机器不能访问服务
四台主机内网名称设置
192.168.2.161 zkhd1 192.168.2.162 zkhd2 192.168.2.163 zkhd3 192.168.2.164 zkhd4
二、java/hadoop环境搭建、以下先配置一台主机
1、解压hadoop-2.6.5.tar.gz jdk-7u67-linux-x64.tar.gz文件
tar xf hadoop-2.6.5.tar.gz
tar xf jdk-7u67-linux-x64.tar.gz
2、配置环境变量
sudo vi /etc/profile
配置以下参数
export JAVA_HOME=/opt/sgb/jdk1.7.0_67 export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
source /etc/profile
输入命令行下查看配置是否生效
hdfs
java
三、hadoop伪分布式
hadoop-env.sh
yarn-env.sh
mapred-env.sh
export JAVA_HOME=/opt/sgb/jdk1.7.0_67
hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://zkhd1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/dd</value> </property> </configuration>
格式化
$ bin/hdfs namenode -format
启动服务
$ sbin/start-dfs.sh
查看进程
$ jps
NameNode
DataNode
SecondaryNameNode
新建文件夹
$ bin/hdfs dfs -mkdir /user
上传文件
$ bin/hdfs dfs -put etc/hadoop input
运行任务
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar grep input output 'dfs[a-z.]+'
下载运行结果
$ bin/hdfs dfs -get output output
关闭服务
$ sbin/stop-dfs.sh
三、分布式配置
1、备份目前的hadoop目录文件夹至hadoop-2.6.5-bk,开发可以使用伪分布式测试
cp -rf /opt/sgb/hadoop-2.6.5 /opt/sgb/hadoop-2.6.5-bk
2、修改slaves 配置datanode从节点、zkhd1不需要配置
zkhd2
zkhd3
zkhd4
3、修改hdfs-site.xml配置secondnamenode,副本数2
<property> <name>dfs.namenode.secondary.http-address</name> <value>zkhd2:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property>
4、删除已格式化节点/opt/dd
rm -rf /opt/dd
5、分发服务器
A、分发sgb文件夹 包含java、hadoop目录
scp -rf sgb skhd2:/opt/
scp -rf sgb skhd3:/opt/
scp -rf sgb skhd4:/opt/
B、分发配置文件,每台机器均要添加
sudo vi /etc/profile
配置以下参数
export JAVA_HOME=/opt/sgb/jdk1.7.0_67 export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin
source /etc/profile
输入命令行下查看配置是否生效
hdfs
java
6、主服务器格式化
$ bin/hdfs namenode -format
启动服务
$ sbin/start-dfs.sh
至此本地集群方式的hadoop hdfs可以使用
四、高可用hadoop集群改造
hosts NameNode-1 NameNode-2 DataNode ZK ZKFC JNN zkhd1 有 有 有 zkhd2 有 有 有 有 有 zkhd3 有 有 有 zkhd4 有 有
1、zookeeper配置
1.1、解压zookeeper到/opt/sgb文件夹
tar xf zookeeper-3.4.6.tar.gz
1.2、修改/zookeeper-3.4.6/conf/zoo.cfg
dataDir=/opt/sgb/zk
server.1=zkhd2:2888:3888
server.2=zkhd3:2888:3888
server.3=zkhd4:2888:3888
1.3、在/opt/sgb/zk路径执行以下命令,id根据服务器id做调整
mkdir zk
echo 1 > myid
zkhd2上执行echo 2 > myid
zkhd3上执行 echo 3 > myid
1.4、环境变量配置 sudo vi /etc/profile
export JAVA_HOME=/opt/sgb/jdk1.7.0_67
export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH
export ZOOKEEPER_HOME=/opt/sgb/zookeeper-3.4.6
export ZOOBINDIR=$ZOOKEEPER_HOME/bin
export PATH=$ZOOBINDIR:$PATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2、hadoop配置修改
2.1、hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.data.dir</name> <value>/opt/sgb/ha/data</value> <final>true</final> </property> <property> <name>dfs.name.dir</name> <value>/opt/sgb/ha/name</value> <final>true</final> </property> //////////////////////////namenode配置 <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>zkhd1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>zkhd2:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>zkhd1:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>zkhd2:50070</value> </property> ///////////////////////////jnn配置 <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://zkhd1:8485;zkhd2:8485;zkhd3:8485/mycluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/opt/sgb/jn</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> ///////////////////////免密登录 <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_rsa</value> </property> ///////////////////////集群自动恢复 <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>
============================================================================================
2.2、 core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/sgb/ha</value> </property> ////////////////////////zookeeper集群配置 <property> <name>ha.zookeeper.quorum</name> <value>zkhd2:2181,zkhd3:2181,zkhd4:2181</value> </property> </configuration>
3、集群分发
sudo scp -r sgb hadoop@zkhd2:/opt/
sudo scp -r sgb hadoop@zkhd3:/opt/
sudo scp -r sgb hadoop@zkhd4:/opt/
配置文件分发
export JAVA_HOME=/opt/sgb/jdk1.7.0_67
export JRE_HOME=/opt/sgb/jdk1.7.0_67/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_PREFIX=/opt/sgb/hadoop-2.6.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$PATH
export ZOOKEEPER_HOME=/opt/sgb/zookeeper-3.4.6
export ZOOBINDIR=$ZOOKEEPER_HOME/bin
export PATH=$ZOOBINDIR:$PATH
4、zookeepr配置zkhd2:zkhd3:zkhd4启动zookeeper集群
zkServer.sh start || zkServer.sh status
5、按qjournal://zkhd1:8485;zkhd2:8485;zkhd3:8485/mycluster配置依次执行,启动journalnode
./sbin/hadoop-daemon.sh start journalnode
6、主namenode 执行格式化
hdfs namenode -format
7、启动主节点 ./sbin/hadoop-deamon.sh start namenode
8、同步副节点 hdfs namenode -bootstrapStandby
9、注册hdfs到zookee,执行 hdfs zkfc -formatZK
10、启动集群 start-dfs.sh
11、其他操作
stop-dfs.sh && start-dfs.sh || hadoop-daemon.sh start zkfc
------------------------------------------------------------------------------------------------------------------
mapreduce集群
nn-1 nn-2 dn zk zkfc jnn rs nm
1 * * *
2 * * * * * *
3 * * * * *
4 * * * *
1、配置文件修改mapred-site.xml:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2、配置文件修改etc/hadoop/yarn-site.xml:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster1</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>zkhd3</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>zkhd4</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>zkhd2:2181,zkhd3:2181,zkhd4:2181</value>
</property>
</configuration>
3、分发
scp mapred-site.xml yarn-site.xml zkhd2:`pwd`
scp mapred-site.xml yarn-site.xml zkhd3:`pwd`
scp mapred-site.xml yarn-site.xml zkhd4:`pwd`
4、启动服务
$ sbin/start-yarn.sh //nodemanager
$ yarn-deamon.sh start resourcemanager // resourcemanager
$ sbin/stop-yarn.sh
hadoop jar hadoop-mapreduce-examples.jar wordcount /user/test/txt /wordout
------------------------------------------------------
集群重启
1、2/3/4 zkServer start
2、1 start-all.sh
3、3/4 yarn-daemon.sh start resourcemanager/nodemanager
-----------------------------------------------------
eclipse hadoop访问异常:
org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE
相关推荐
平原型生活垃圾填埋场扩容措施研究及应用_刘志刚.pdf
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
Wallpaper Engine 是一款广受欢迎的动态壁纸软件,允许用户将各种动态、交互式壁纸应用到桌面上。其丰富的创意工坊内容让用户可以轻松下载和分享个性化的壁纸。而“一键提取”功能则是 Wallpaper Engine 中一个非常实用的工具,能够帮助用户快速提取和保存壁纸资源,方便后续使用或分享。
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
这是一份非常有意义的实习报告
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
爱华AIWA HS-J9磁带随身听维修服务手册 说明书电路原理图PCB图
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
房屋租赁合同[示范文本].doc
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
单片机 入门学习视频教程 自学资料
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
auto_gptq-0.5.1.tar.gz
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
结构体 struct关键字用来定义结构体