eth公钥
㈠ dfszkfailovercontroller 是什么进程
前期准备
1.修改Linux主机名,每台都得配置
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop-server1
2.修改IP /etc/sysconfig/network-scripts/ifcfg-eth0
3.修改主机名和IP的映射关系
vim /etc/hosts
192.168.146.181 hadoop-server1
192.168.146.182 hadoop-server2
192.168.146.183 hadoop-server3
192.168.146.184 hadoop-server4
192.168.146.185 hadoop-server5
######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
/etc/hosts里面要配置的是内网IP地址和主机名的映射关系
4.关闭防火墙
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#查看防火墙开机启动状态
chkconfig iptables --list
#关闭防火墙开机启动
chkconfig iptables off
前4步用root用户操作,操作完后重启机器
5.ssh免登陆hadoop用户操作
#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh--id hadoop-server2
6.安装JDK,配置环境变量等root用户操作
vim /etc/proflie
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
集群规划:
主机名 IP 安装软件 运行进程
hadoop-server1 192.168.146.181:jdk、hadoop
namenode resourcemanage
DFSZKFailoverController(zkfc)
hadoop-server2 192.168.146.182:jdk、hadoop
namenode resourcemanage
DFSZKFailoverController(zkfc)
hadoop-server3 192.168.146.183:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
hadoop-server4 192.168.146.184:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
hadoop-server5 192.168.146.185:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
安装步骤:
1.安装配置zooekeeper集群(在hadoop-server3上)
1.1解压
tar -zxvf zookeeper-3.4.5.tar.gz -C /home/hadoop/app/
1.2修改配置
cd /home/hadoop/app/zookeeper-3.4.5/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改:dataDir=/home/hadoop/app/zookeeper-3.4.5/data
在最后添加:
server.1=hadoop-server3:2888:3888
server.2=hadoop-server4:2888:3888
server.3=hadoop-server5:2888:3888
保存退出
然后创建一个tmp文件夹
mkdir /home/hadoop/app/zookeeper-3.4.5/data
再创建一个空文件
touch /home/hadoop/app/zookeeper-3.4.5/data/myid
最后向该文件写入ID
echo 1 > /home/hadoop/app/zookeeper-3.4.5/data/myid
1.3将配置好的zookeeper拷贝到其他节点
scp -r /home/hadoop/app/zookeeper-3.4.5/ weekend06:/home/hadoop/app/
scp -r /home/hadoop/app/zookeeper-3.4.5/ weekend07:/home/hadoop/app/
注意:修改hadoop-server4、hadoop-server5对应/home/hadoop/app/zookeeper-3.4.5/data/myid内容
hadoop-server4:
echo 2 > /home/hadoop/app/zookeeper-3.4.5/data/myid
hadoop-server5:
echo 3 > /home/hadoop/app/zookeeper-3.4.5/data/myid
2.安装配置hadoop集群(在hadoop-server1上操作)
2.1解压
tar -zxvf hadoop-2.4.1.tar.gz -C /weekend/
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
#将hadoop添加到环境变量中
vim /etc/profile
export JAVA_HOME=/hadoop/home/app/jdk1.7.0_55
export HADOOP_HOME=/home/hadoop/app/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
cd /home/hadoop/app/hadoop-2.4.1/etc/hadoop
2.2.1修改hadoo-env.sh
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_55
2.2.2修改core-site.xml
<configuration>
<!-- 指定hdfs的nameservice为ns1 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1/</value>
</property>
<!-- 指定hadoop临时目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/hadoop-2.4.1/tmp</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop-server3:2181,hadoop-server3:2181,hadoop-server3:2181</value>
</property>
</configuration>
2.2.3修改hdfs-site.xml
<configuration>
<!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- ns1下面有两个NameNode,分别是nn1,nn2 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>nn1,nn2</value>
</property>
<!-- nn1的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>hadoop-server1:9000</value>
</property>
<!-- nn1的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>hadoop-server1:50070</value>
</property>
<!-- nn2的RPC通信地址 -->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>weekend02:9000</value>
</property>
<!-- nn2的http通信地址 -->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>hadoop-server2:50070</value>
</property>
<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop-server3:8485;hadoop-server4:8485;hadoop-server5:8485/ns1</value>
</property>
<!-- 指定JournalNode在本地磁盘存放数据的位置 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/app/hadoop-2.4.1/journaldata</value>
</property>
<!-- 开启NameNode失败自动切换 -->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.</value>
</property>
<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<!-- 使用sshfence隔离机制时需要ssh免登陆 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- 配置sshfence隔离机制超时时间 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
2.2.4修改mapred-site.xml
<configuration>
<!-- 指定mr框架为yarn方式 -->
<property>
<name>maprece.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.2.5修改yarn-site.xml
<configuration>
<!-- 开启RM高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定RM的cluster id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 指定RM的名字 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 分别指定RM的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop-server1</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop-server2</value>
</property>
<!-- 指定zk集群地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop-server3:2181,hadoop-server4:2181,hadoop-server5:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>maprece_shuffle</value>
</property>
</configuration>
2.2.6修改slaves(slaves是指定子节点的位置)
hadoop-server3
hadoop-server4
hadoop-server5
㈡ 钱包地址的钱怎么转出来
首先需要跟大家来科普一下,这里的钱包其实并不是广义上的钱包,而是属于区块链当中的一个定义,它并不是用来放钱的,而是用来装秘钥的。在区块链上,只有你有了密钥,然后再配合全包的地址,就可以将里边的虚拟货币给提取出来,然后进行使用。所以钱包地址以及密钥是非常重要的,而他们两个往往是打包在一块儿了。
第一、钱包概念首先,我们来理解钱包,需要澄清的是,钱包其实并不是装钱的,而是装密钥(私钥和公钥)的工具,有了密钥就可以拥有相应地址上的数字货币的支配权。私钥:用户使用私钥进行签名交易,从而证明拥有该交易的输出权,其交易信息并不是存储在该钱包内,而是存储在区块链中。公钥:用来生成地址,储存交易,信息由私钥通过非对称加密算法生成。钱包地址:是一个以双字母开头(代表币种)的42位16进制哈希值字符串。ETH的地址是以0x开头的42位16进制哈希值字符串。如果将钱包比作银行卡,那么钱包地址就是银行卡号。
第二、怎么使用钱包目前市场上的数字钱包有很多,
像imToken、myetherwallet、Kcash、parity、Metamask、Jaxx等,选择一个你喜欢的钱包。建议选择imToken这里也是用imToken举例,:在应用市场下载一个imToken的APP点击“创建钱包”,给钱包取名字和密码。千万千万注意:自己记住密码,imtoken不会记住你的密码,忘记密码不能被找回!!所以忘记密码就等于丢失了钱包里的所有货币!!最好手抄下来并妥善保存,以防止网络传输及黑客攻击等造成丢失。这个非常非常重要,切记点击创建钱包后,钱包创建完成接下来我们要备份钱包,钱包备份是为了在程序被删除或手机被盗等等情况下恢复钱包设置用的。
有两种方式:备份助记词或备份keystore。助记词是随机生成的12个单词,你把这个拷贝出来放到安全的地方,再按顺序抄写一份放在安全的地方,你可以把这助记词理解为私钥的另一种形式,依据这个可以恢复钱包。比如你不小心把imtoken应用删除了,或者手机不见了,可以用这个助记词把钱包恢复。而keystore是类似上图的一串。大家可以备份这个keystore,删除钱包后,用这个keystore将钱包恢复。几次练习,就可以把钱包玩熟了。至此,钱包完成创建,在自己的钱包页,点击地址栏右侧会得到自己钱包的地址。(三)从交易所提币到钱包我们以交易所gate.io为例,演示下怎么把ETH提币到钱包里面。登录gate.io,点击ETH,提现出来这个界面,里面的红框位置就是要转的钱包地址。(四)、钱包之间转账进入钱包后选择金额区域:会显示转账页面:可以自己输入账号,也可以用右上角的扫一扫:按下一步后输入密码即可转账
㈢ 如何创建私链
创建创世配置文件:
首先需要创建一个“创世”json配置文件,此文件描述了创世区块的一些参数。下面就是文件中的内容:
{
"coinbase": "",
"config": {
"homesteadBlock": 5
},
"difficulty": "0x20000",
"extraData": "0x",
"gasLimit": "0x2FEFD8",
"mixhash": "",
"nonce": "0x0",
"parentHash": "000000000000000000000000",
"timestamp": "0x00",
"alloc": {
"":
{
"balance":""
}
}
}12345678910111213141516171819
将上面这段代码复制到一个文本文件里并起名为genesis.json
创世!:
为了不和主链的数据冲突,这里建议建立自己的私链数据文件夹。在我的电脑上在E盘建了一个EthDBSpace作为以太坊实验工作区,并在里面创建了一个PrivChain文件夹作为我的第一个私链的数据存放文件夹
这里为了方便管理将genesis.json放在了EthDBSpace文件夹下
打开Windows命令行
键入如下命令
geth --datadir "E:\EthDBSpace\PrivChain" init "E:\EthDBSpace\genesis.json"1
–datadir 选项用来指定我们私链的数据目录。在我的电脑上是E:\EthDBSpace\PrivChain
init 命令为创世命令,后面紧跟着我们的创世配置文件路径。
点击回车后执行结果如下
此时创世完成!
创建账户:
为了在私链上做实验,我们还需要在私链上建立自己的账户
Windows命令行键入
geth --datadir "E:\EthDBSpace\PrivChain" console1
我们由于已经创世成功所以第二次进入客户端时我们不用再次指定genesis.json文件路径,而是直接–datadir 指明私链数据路径即可。
console命令用来开启geth的命令行。
点击回车后,客户端会先经过一阵初始化。在命令提示符出现后,说明已经进入geth console
在geth命令行中键入
personal.newAccount('Your Password')1
personal.newAccount 函数用来创建账户,其中参数为账户密码
点击回车后会出现
账户创建成功后会在命令下方以绿色字符列明创建账户的地址,也即账户的公钥
我们可以先查下账户余额,在geth命令行中键入:
my=eth.accounts[0]
eth.getBalance(my)12
my=eth.accounts[0],此句的目的是将我们刚创建的账户地址赋值给my变量。这样可以简化后续账户地址输入。其中eth.accounts记录了本机上所有账户地址。由于我们第一次创建账户,所以目前电脑上只有一个账户。所以这里我们用eth.accounts[0]提取第一个账户地址。eth.getBalance函数用来获得账户余额,参数填入账户地址。这里的my变量记录的就是第一个账户的地址。
希望我的回答可以帮到您哦